请教python与java之间rpc通信,rabbitmq相关。

我有一套系统,内部模块间rpc互相调用,都是python语言开发的,用rabbitmq来实现。但是消息的序列化用的python
平台才有pickle包。现在想接入java语言开发的模块,但是java平台的序列化肯定不是pickle,这怎么解决。

阅读 6.9k
4 个回答

用Google的protobuf

  1. JSON 简单粗暴

  2. msgPack格式, 支持广泛, 类似 JSON , 但是效率更高

  3. Thrift 全家桶, 爽爽爽

  4. protobuf + gRpc

以我个人偏好, 推荐Thrift, 该做好的都做好了, 让你专注在代码逻辑上

显然, 正常人是不会用pickle的, 这种格式只能在Python的世界才能玩得转( 而且还有版本兼容问题 ). 然而现在一个稍微大点的项目, 几种语言开发真的太常见了( 标配 ), pickle 哪有用武之地( 也就当个玩具耍耍 )

不同语言之间做数据交换,可以用以下几个技术
protobuf,thrift,avro,zeroc ice。
这些都可以将数据序列化成二进制。效率比json传输高多了

新手上路,请多包涵

protobuf,thrift都可以。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题