Todo lo que quiero hacer es hacer algunas llamadas RPC sobre sockets. Tengo un servidor que hace cosas backendish ejecutando jython 2.5. Necesito hacer algunas llamadas desde un servidor frontend ejecutando Django en CPython. He estado golpeándome la cabeza contra la pared y estoy poniendo en marcha cualquier forma de IPC.fast-ish python/jython IPC?
La lista de cosas que he intentado:
- Apache Thrift no tiene ningún liberaciones reales, sólo instantáneas. Me gustaría usar algo estable.
- JSON-RPC es interesante, y debería ser capaz de ejecutar sockets, pero en la práctica la mayoría de los implementations solo parecen funcionar a través de HTTP. La sobrecarga HTTP es exactamente lo que trato de evitar.
- Protocol Buffers es realmente solo un protocolo de serialización. Por lo que veo, protobuf proporciona generación de interfaz para RPC, pero solo es la interfaz. En realidad, escribir todo el código de conexión depende del usuario. Si voy a quedar atrapado usando sockets, solo usaré JSON para la serialización. Es más simple y faster.
- Pyro no funciona correctamente con Jython como servidor. Algún tipo de problema de tiempo de espera del socket. He enviado un mensaje a la lista de correo.
- pysage ¡Yay para el mensaje que pasa! Solo requiere Python 2.6 o el módulo de procesamiento (que ha compilado extensiones). Jython es la versión 2.5 y no permite extensiones compiladas.
- Candygram es una alternativa interesante a pysage, pero hasta donde puedo decir que no se ha mantenido. Ni siquiera lo he probado con Jython. Alguna experiencia con eso?
- Twisted Perspective Broker Twisted no funciona en Jython.
Sé que sería muy fácil hacer esto con XML-RPC, lo que me pone aún más de mal humor. Quiero evitar la sobrecarga de HTTP, pero al mismo tiempo, realmente no quiero ensuciarme con sockets para implementar mi propio protocolo. Lo haré mal si lo hago.
¿Alguna idea? Probablemente voy a llorar durante unos 20 minutos y luego simplemente usar XML-RPC.
por cierto, acabo de encontrar esta solución a mi pregunta: http://bert-rpc.org/ – Kobold