用于 java/python 的 RPC,具有 REST 支持、HTML 监控和其他功能
这是我的一组要求:我正在寻找一个 RPC 框架,例如 thrift、avro、protobuf(向其添加服务时),它支持:
- 简单直观的 IDL。没有序列号,没有手动版本控制,简单...... avro 就是一个很好的例子。
- 使用 Java 和 Python
- 支持快速二进制协议以及基于 HTTP 的 Restful 风格。我希望能够将它用于后端到后端通信(java-java 或 python-java)以及前端到后端通信(javascript 到 java)。
- 其余支持需要包括 ¶m=value 输入作为 get/post 请求(可根据请求配置)并以三种可能的格式输出:json、jsonp、XML。
- 紧凑、快速、向后兼容、易于升级等...
- 提供一些不错的监控接口,例如:JMX、网页状态报告(例如数据包输入、数据包输出、错误率等)
- 操作友好...无需采取整个网站发布新版本
- 同步和异步通信
...欢迎其他好东西...
有什么东西吗?
到目前为止,我已经研究了 thrift 和 avro,它们在某些方面都很好,但不要检查我的所有列表。
谢谢
Here's my set of requirements: I'm looking for an RPC framework such as thrift, avro, protobuf (when adding services to it) which supports:
- Easy and intuitive IDL. No serial numbers, no manual versioning, simple... avro is a good example for this.
- Works with Java and Python
- Supports both fast binary prorocol, as well as HTTP based restful style. I'd like to be able to use it for both backend-to-backend communication (java-java or python-java) as well as frontend-to-backend communication (javascript to java).
- The rest support needs to include ¶m=value input as get/post requests (configurable per request) and output in three possible formats: json, jsonp, XML.
- Compact, fast, backward compatible, easy to upgrade etc...
- Provides some nice monitoring interfaces such as: JMX, web page status reports (e.g. packets in, packets out, error rate etc)
- Ops friendly... no need to take the whole site down to release new versions
- Both sync and asyc communication
... other goodies are welcome...
Is there something out there?
So far I've looked at thrift and avro and they are both nice in some ways, but don't check all my list.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个相当艰巨的任务 - 一些要求可以通过以下方式满足:
Avro、Thrift、Protobuff 和来自 Zero C 的 ICE。ICE
可能是性能最好的。
That's a pretty tall order - some of the requirements are met by:
Avro, Thrift, Protobuff and ICE from Zero C.
ICE is probably the most performant.