链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

rpcx:Go语言的优秀微服务框架,类似Dubbo且功能更多

rpcx是一个用Go语言编写的微服务框架,类似阿里巴巴的Dubbo但有更多特性。它易于学习、开发、集成和部署,性能高。支持多种传输协议、编解码器、服务发现与治理功能,如支持TCP、HTTP等传输协议,JSON、Protobuf等编解码器,Zookeeper等服务发现机制。还具备故...

访问官网 →

【Github】项目名:rpcx – 优秀的Go语言微服务框架

一、项目简介

rpcx是一个用Go语言编写的微服务框架。它类似于阿里巴巴的Dubbo,但具备更多的特性,易于扩展规模。它支持多种功能,如服务发现、治理、多种编解码器、负载均衡、容错等,还支持跨平台使用,理论上可以与Java、PHP、Python、C/C++、Node.js、C#等平台一起使用。

二、项目目的

为Go语言提供一个简单、高性能、易于学习、开发、集成和部署的微服务框架,以满足云环境下的微服务构建需求。

三、核心技术

  1. 多种传输协议支持:支持TCP、HTTP、QUIC和KCP等传输协议,这使得它能够适应不同的网络环境和需求。
  2. 多种编解码器:支持JSON、Protobuf、MessagePack和原始字节等多种编解码器,方便与不同语言编写的服务进行交互。
  3. 服务发现与治理:支持Zookeeper、etcd和Consul等服务发现机制,并且包含诸如故障容错(Failover、Failfast、Failtry)、负载均衡(Random、RoundRobin、Consistenthashing、Weighted、networkquality和Geography)等治理功能。
  4. 可插拔特性:功能可扩展,例如服务发现、追踪等功能可以通过插件方式扩展。

四、实践案例

项目给出了性能测试结果,在特定的测试环境(CPU: Intel(R)Xeon(R)CPUE5 – 2630v3@2.40GHz, 32 cores,Memory: 32G,Go: 1.9.0,OS: CentOS7/3.10.0 – 229.el7.x86_64)下,使用Protobuf,客户端和服务器在同一服务器上,不同的并发客户端数量(500/2000/5000)和模拟处理时间(0ms、10ms和30ms)下进行测试,结果显示rpcx相比除标准rpclib之外的其他rpc框架有更好的性能。同时,还提供了示例代码,如简单的Arith服务示例,包括服务器端定义服务、注册服务并启动服务,客户端创建发现机制、创建客户端并调用服务等操作。

五、项目总结

rpcx是一个功能强大的Go语言微服务框架,它在性能、功能丰富度等方面表现出色。如果您对微服务开发感兴趣,特别是在Go语言环境下,不妨尝试一下rpcx。欢迎大家留言分享您对rpcx的看法或者使用经验。

项目地址

GitHub链接直达