Tars:php
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。我在测试的时候服务常常起不来,也是不知道为何。可是相信强大的腾讯团队后面会作的愈来愈好。node
motan-gopython
code地址:https://github.com/weibocom/motan-go.git,按照官方的描述以下:c++
Motan是一套高性能、易于使用的分布式远程服务调用(RPC)框架。 Motan-go是motan的golang语言实现。git
功能github
motan-go支持集群调用,使用的是zookeeper分布式应用程序协调服务。目前不支持consul,使用agent实现和其余语言的互通,和go之间不须要代理。 在github上的例子和如今的代码是不匹配的,我在使用的时候是有问题的,可是在其源码的main目录下有想要的server和client的例子能够直接运行成功。golang
motan-go支持服务器的发现和卸载,注册中心和服务间使用心跳来包活。c#
夸语言使用simple序列号方式。后端
motan-go和腾讯的Tars进行对比优缺点以下:服务器
RPC框架 |
是否支持分布式 |
是否须要中间文件 |
是否支持PHP |
是否支持后台管理 |
是否须要代理 |
||
motan-go |
是 |
否 |
是 |
否 |
是 |
||
Tars |
是 |
是 |
是 |
是 |
否 |
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。