Вот мой набор требований: я ищу RPC-фреймворк, такой как thrift, avro, protobuf (при добавлении к нему сервисов), который поддерживает:
- Простой и интуитивно понятный IDL. Нет серийных номеров, нет ручного управления версиями, просто ... avro - хороший пример для этого.
- Работает с Java и Python
- Поддерживает как быстрый двоичный код, так и стиль отдыха на основе HTTP. Я хотел бы иметь возможность использовать его как для взаимодействия между бэкэндом (java-java или python-java), так и для взаимодействия между внешним интерфейсом и бэкэндом (javascript to java).
- Остальная поддержка должна включать & param = значение ввода в виде запросов get / post (настраивается для каждого запроса) и вывода в трех возможных форматах: json, jsonp, XML.
- Компактный, быстрый, обратно совместимый, простой в обновлении и т.д ...
- Предоставляет некоторые приятные интерфейсы мониторинга, такие как: JMX, отчеты о состоянии веб-страницы (например, количество входящих пакетов, количество пакетов, частота ошибок и т. Д.)
- Ops friendly ... не нужно останавливать весь сайт, чтобы выпускать новые версии
- Синхронизация и асинхронная связь
... приветствуются другие вкусности ...
Есть ли что-нибудь там?
До сих пор я смотрел на Thrift и Avro, и они оба хороши в некотором смысле, но не проверяйте весь мой список.
Спасибо