与svrkit的区别
larrymeng opened this issue · 2 comments
我看之前的分享是用svrkit 做rpc的,如:
微信后台主要使用C++。后台服务使用Svrkit框架搭建,服务之间通过同步RPC进行通讯。
Svrkit是另一个广硏后台就已经存在的高性能RPC框架,当时尚未广泛使用,但在微信后台却大放异彩。作为微信后台基础设施中最重要的一部分,Svrkit这几年一直不断在进化。我们使用Svrkit构建了数以千计的服务模块,提供数万个服务接口,每天RPC调用次数达几十万亿次。
于是我们开始尝试使用一种新的CGI架构——Logicsvr。
Logicsvr基于Svrkit框架。将Svrkit框架和CGI逻辑通过静态编译生成可直接使用HTTP访问的Logicsvr。
每个Logicsvr都是一个独立的二进制程序,可以分开部署、独立上线。时至今日,微信后台有数十个Logicsvr,提供了数百个CGI服务,部署在数千台服务器上,每日客户端访问量几千亿次。
Svrkit——Client/Server自动代码生成框架:10分钟搭建内部服务器
我们开源phxrpc是为了开源phxsql。phxsql最早用svrkit框架实现,准备开源的时候,用grpc实现了一个版本,但这样我们就有两个版本的phxsql,每次修改都要测试两遍,成本太高。因此我们开发了phxrpc,这样我们就可以只维护一份代码。phxrpc可以和我们内部的运维、监控系统很好地结合,而thrift和grpc即使我们做了改造也没法合并到官方发布版里面。
svrkit 和内部的各种基础服务(比如监控、路由中心、跨城通信等)耦合太深,要开源的话,就必须把耦合的部分抽出插件。phxrpc 可以看作是按上述思路把耦合部分抽取之后的 svrkit 简化版。
谢谢这么细致的回答!