rpcx分布式 RPC 服務(wù)框架
rpcx是一個類似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服務(wù)框架,基于Golang net/rpc實現(xiàn)。
與gRPC比較,完勝gRPC, 更不用說其它的"老"的RPC框架了。
談起分布式的RPC框架,比較出名的是阿里巴巴的dubbo,包括由當(dāng)當(dāng)網(wǎng)維護的dubbox。 不知道dubbo在阿里的內(nèi)部競爭中敗給了HSF,還是阿里有意將其閉源了,官方的代碼使用的spring還停留在2.5.6.SEC03的版本,dubbox的spring也只升級到3.2.9.RELEASE。 不管怎樣,dubbo還是在電商企業(yè)得到廣泛的應(yīng)用,京東也有部分在使用dubbo開發(fā)。
本項目rpcx的目標(biāo)就是實現(xiàn)一個Go生態(tài)圈的Dubbo,為Go生態(tài)圈提供一個分布式的、多插件的、帶有服務(wù)治理功能的產(chǎn)品級的RPC框架。
Go生態(tài)圈已經(jīng)有一些RPC庫,如官方的net/rpc、grpc-go、gorilla-rpc等,為什么還要開發(fā)rpcx呢?
原因在于盡管這些框架都是為Go實現(xiàn)的RPC庫,但是它們的功能比較單一,只是實現(xiàn)了點對點(End-to-End)的通訊框架。缺乏服務(wù)治理的功能,比如服務(wù)注冊和發(fā)現(xiàn)、 負(fù)載均衡、容災(zāi)、服務(wù)監(jiān)控等功能。因此我基于Go net/rpc框架實現(xiàn)了一個類似Dubbo的分布式框架。
和rpcx比較類似的Go RPC框架是go-micro,但是rpcx提供了更豐富的功能,基于TCP的通訊協(xié)議性能更好。
