Все, что я хочу сделать, это сделать некоторые вызовы RPC через сокеты. У меня есть сервер, который работает с jython 2.5. Мне нужно сделать некоторые вызовы с внешнего сервера, на котором запущен Django на CPython. Я бил головой о стену, получая любую форму IPC.
Список вещей, которые я пробовал:
- Apache Thrift не имеет реальных релизов, а всего лишь моментальных снимков. Я хотел бы использовать что-то стабильное.
- JSON-RPC интересен, и он должен иметь возможность запускать сокеты, но на практике большинство implementations работает только над 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.