A primera vista, mirando los documentos API de Evernote [1] exponen sus servidores Thrift a través de HTTP, lo que ayudaría a evitar algunos trucos que de otra manera confundirían algo como TBinaryProtocol en un TSocket.
Poner un servidor HTTP / proxy delante de Thrift puede ayudar con
- limitar el tamaño de los datos pasados a un servidor.
- los tiempos de espera de almacenamiento en búfer / proxy completos primero, por lo que no puede dejar una conexión con un mensaje incompleto que se cuelga para siempre, ya que TNonblockingServer mantiene un hilo por conexión [inactiva].
Eso no evita los problemas codificados en los propios mensajes de Thrift, pero mirando un correo electrónico [2] Seth Hitchings enviado a la lista de correo, también evita activamente algunos problemas conocidos en el servidor:
“nuestro lado del servidor realiza algunas comprobaciones para limitar el tamaño máximo de mensaje, establece una profundidad máxima de omisión, verifica los parámetros requeridos, etc.”
[1] http://www.evernote.com/about/de…
[2] http://mail-archives.apache.org/…