Все, что я хочу сделать, это сделать несколько вызовов RPC через сокеты. У меня есть сервер, который делает бэкенд-вещи под управлением Jython 2.5. Мне нужно сделать несколько звонков с внешнего сервера под управлением Django на CPython. Я бился головой о стену, заставляя работать IPC в любой форме.
Список вещей, которые я пробовал:
- Apache Thrift не имеет реальных выпусков, только снимки. Я хотел бы использовать что-то стабильное.
- JSON-RPC интересен, и он должен быть способен работать через сокеты, но на практике большинство реализаций работают только по HTTP. HTTP-издержки - это именно то, чего я пытаюсь избежать.
- Буферы протокола на самом деле является только протоколом сериализации. Из того, что я собираю, protobuf обеспечивает генерацию интерфейса для RPC, но это только интерфейс. На самом деле написание всего кода подключения зависит от пользователя. Если я собираюсь застрять с использованием сокетов, я просто буду использовать JSON для сериализации. Это проще и быстрее .
- Pyro не работает должным образом с Jython в качестве сервера. Некоторая проблема времени ожидания сокета. Я отправил сообщение в список рассылки.
- pysage Yay для передачи сообщений! Только для этого требуется Python 2.6 или модуль обработки (который имеет скомпилированные расширения). Jython версии 2.5 и не позволяет скомпилированные расширения.
- Candygram - интересная альтернатива pysage, но, насколько я могу судить, она не поддерживается. Я даже не пробовал это с Jython. Есть опыт?
- Twisted Perspective Broker Twisted не работает в Jython.
Я знаю, что было бы несложно сделать это с XML-RPC, что делает меня еще более раздражительным. Я хочу избежать издержек HTTP, но в то же время я действительно не хочу разбираться с сокетами для реализации моего собственного протокола. Я сделаю это неправильно, если я сделаю.
Есть идеи? Я, вероятно, заплачу около 20 минут, а затем просто использую XML-RPC.