odin-doc

Odin Develop Document

View project on GitHub

功能对比


目前, rpc框架主要沿着两条路线发展,一个是目标为了跨语言,服务端可以用不同的语言实现,客户端也可以用不同的语言实现,不同的语言实现的客户端和服务器端可以互相调用。要支持不同的语言,需要基于那种语言实现相同协议的框架,其中比较典型的是 grpc,基于同一个IDL,可以生成不同语言的代码,并且语言的支持也非常的多

另一个rpc框架发展的目标是支持服务治理,主要的精力放在服务发现、路由、容错处理等方面,主要围绕一个语言开发,可能也有一些第三方语言曲折的实现服务的调用和服务的实现,这其中的代表,也是比较早的开源的框架就是阿里巴巴的dubbo

主流框架功能对比如下:

功能 Montan rpcx gRpc Thrift Dubbo
开发语言 Java Go 跨语言 跨语言 Java
服务治理 × ×
多序列化支持 × ×
注册中心支持 × ×
管理中心 × ×
上手难度
社区活跃度

最终选用rpcx框架,主要基于以下几个优点:

  • Go语言开发,性能优异,适用于高并发场景下
  • 完善的服务治理功能
  • 集成多种服务注册中心
  • 协议简单、框架层面可进行定制化开发