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

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胜在快速开发。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章