Все, что я хочу сделать, это сделать RPC-вызовы через сокеты. У меня есть сервер, который работает с jython 2.5. Мне нужно сделать некоторые вызовы с внешнего сервера, на котором запущен Django на CPython. Я бил головой о стену, получая любую форму IPC.fast-ish python/jython IPC?
Список вещей, которые я пробовал:
- Apache Thrift не имеет каких-либо фактических выбросов, только снимки. Я бы хотел использовать что-то стабильное.
- JSON-RPC интересен, и он должен иметь возможность запускать сокеты, но на практике большинство из implementations, похоже, работают только через HTTP. Накладные расходы HTTP - это именно то, чего я пытаюсь избежать.
- Protocol Buffers действительно только протокол сериализации. Из того, что я собираю, protobuf обеспечивает создание интерфейса для RPC, но это только интерфейс. Фактически запись всего кода подключения зависит от пользователя. Если я собираюсь застрять с помощью сокетов, я просто использую JSON для сериализации. Это проще и faster.
- Pyro не работает должным образом с Jython в качестве сервера. Некоторая проблема с тайм-аутом сокета. Я отправил сообщение в список рассылки.
- pysage Yay для сообщение передача! Только для него требуется python 2.6 или модуль обработки (который имеет скомпилированные расширения). Jython - версия 2.5 и не позволяет скомпилировать расширения.
- Candygram - интересная альтернатива pysage, но, насколько я могу судить, она не подкреплена. Я даже не пробовал это с Jython. Любой опыт с ним?
- Twisted Perspective Broker Twisted не работает на Jython.
Я знаю, что это было бы неплохо сделать это с помощью XML-RPC, что делает меня еще более капризным. Я хочу, чтобы избежать накладных расходов на HTTP, но в то же время я действительно не хочу спускаться и грязно с сокетами для реализации моего собственного протокола. Я сделаю это неправильно, если я это сделаю.
Любые идеи? Я, вероятно, буду плакать около 20 минут, а затем просто использую XML-RPC.
Кстати, я только что нашел это решение на мой вопрос: http://bert-rpc.org/ – Kobold