rpc grpc(微服务有哪些设计原则)

案例 2019-12-03 19:07:01

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

JSON 简单粗暴

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

Thrift 全家桶, 爽爽爽

protobuf + gRpc

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

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


Python与Java如何构建通信?请给出一个学习方向。
1、python提供restful接口,java直接调用restful api即可;
2、rpc通信,现成框架例如grpc。 java 和python都支持。
3、消息队列,python计算结果存到消息队列,java端订阅处理即可。相当于引入一个中间代理角色。
思路大概就上面的方式,根据实际场景进行技术选型。
RPC协议的端口是多少?
  RPC协议没有默认端口,它是动态获取端口的。

  RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
  RPC 代理运行在IIS计算机上。它接受来自Internet 的RPC
请求,在这些请求上执行认证,检验和访问检查,如果请求通过所有的测试,RPC 代理将请求转发给执行真正处理的RPC 服务器。通过RPC over
HTTP,RPC客户端不和服务器直接通信,它们使用RPC 代理作为中间件。