几种RPC的对比

Tars:

Tars 是由腾讯出品的强大高性能RPC开发框架,配套一体化的运营管理,通过伸缩调度,实现运维半托管服务,目前支持C++,JAVA,PHP,Nodejs,Golang等语言。Tars最强大的地方在于在分布式的环境中的优势,以及多语言的支持,现在很多的RPC框架并不支持PHP语言,Tars很好的支持了PHP的RPC框架。腾讯内部也一直都在使用,主要使用的是C++的框架,新推出的是基于GOlang的RPC框架。本人尝试去搭建Tars基于GOlang的RPC服务,首先编写客户端和服务的的代码是很容易的,安装官方的语法规定写出相应的代码框架,然后使用tars2go工具转换成go语言。Tars的基础服务都是用C++写的。官方的搭建文档非常的简单,没有实用性,网上很多热心的爱好者给了更详细的搭建方法,这里推荐博客:https://blog.csdn.net/m0_37973394/article/details/86591838。搭建过程是艰难的,进行了测试之后发现这个后端的网页管理做的不是很完善,存在一些bug。我在测试的时候服务经常起不来,也是不知道为什么。但是相信强大的腾讯团队后面会做的越来越好。

 

motan-go

 

code地址:https://github.com/weibocom/motan-go.git,按照官方的描述如下:

Motan是一套高性能、易于使用的分布式远程服务调用(RPC)框架。 Motan-go是motan的golang语言实现。

功能

  • 提供golang client、server以及agent与其他语言通过motan2协议进行通信。
  • 支持集成consul、zookeeper等配置服务组件,提供集群环境的服务发现及治理能力。
  • 支持动态自定义负载均衡、跨机房流量调整等高级服务调度能力。
  • 基于高并发、高负载场景进行优化,保障生产环境下RPC服务高可用。
  • agent支持双向代理,通过agent可以使其他解释型语言(例如PHP)快速提供、访问motan服务。
  • agent支持强大的扩展机制,能够提供完整服务治理功能

motan-go支持集群调用,使用的是zookeeper分布式应用程序协调服务。目前不支持consul,使用agent实现和其他语言的互通,和go之间不需要代理。 在github上的例子和现在的代码是不匹配的,我在使用的时候是有问题的,但是在其源码的main目录下有想要的server和client的例子可以直接运行成功。

motan-go支持服务器的发现和卸载,注册中心和服务间使用心跳来包活。

夸语言使用simple序列号方式。

motan-go和腾讯的Tars进行对比优缺点如下:

RPC框架

是否支持分布式

是否需要中间文件

是否支持PHP

是否支持后台管理

是否需要代理

  

motan-go

  

Tars

  

 

rpcx

github地址:https://github.com/smallnest/rpcx

从某种程度上说这个和motan是相似的,但是rpcx没有代理,同样使用zookeeper,etcd,consul等作为注册中心,目前motan只支持zookeeper其他不支持,rpcx支持的比较多,rpcx还有一套服务的UI系统,这个功能和Tars是差不多,但是比Tars的简单。rpcx同样具有高性能,实现分布式管理,负载均衡的功能。但是从代码的完善程度上来说,rpcx更加的成熟和完善,文档也是相当的完善,例子也是非常的多,个人感觉是一个跨语言的不错选择,支持php, python, c/c++, node.js, c#等,数据的传输格式也支持的比较多:raw slice of bytes, JSON, Protobuf and MessagePack。

转载于:https://my.oschina.net/u/1013544/blog/3022145

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值