让rpcx支持python细节分析之服务调用

血红的双手。 提交于 2020-08-09 07:54:41

0x1

这段时间在线上系统上正式用上了rpcx作为微服务框架,逐渐代替之前使用的go-micro,主要是考虑到简洁性(go-micro要写proto),性能,配套(rpcx有一个服务治理的UI),fork了个项目二次开发,加入了一些需要的功能特性

网关: https://github.com/halokid/rpcx-gateway

框架: https://github.com/halokid/rpcx

0x2 关于支持python的技术细节

目前python假如rpcx当中,由于时间人手问题,想快速切换原有的服务到rpcx框架,并没有从rpc协议上去支持,目前的做法是python服务还是用原有的jsonrpc来做,但是在服务注册阶段会按照rpcx的注册方式来注册,无缝集成到rpcx-ui当中,python服务的流程如下:

如图所示,相同语言的调用是直接走RPC的, 不同语言的调用是通过网关来统一调用,一般跨语言的服务调用都是用目前访问量不太大的应用来做,多了一次http的转发,性能会比直接调用差一些。其中直接调用的话go的采用msgpack(可定制,默认支持4种)作为默认的解编码工具,ptyhon是用json,所以性能方面go肯定比py要快,从这个层面来说,但是py胜在快速开发。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!