Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Nacos | 26,650 | 118 | 56 | 2 days ago | 53 | August 08, 2022 | 238 | apache-2.0 | Java | |
an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. | ||||||||||
Spring Cloud Alibaba | 25,791 | 7 | 13 hours ago | 31 | September 15, 2022 | 440 | apache-2.0 | Java | ||
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware. | ||||||||||
Springall | 24,478 | 7 months ago | 26 | mit | Java | |||||
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc | ||||||||||
Rpcx | 7,598 | 19 | 110 | a month ago | 151 | September 06, 2022 | 12 | other | Go | |
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱! build for cloud! | ||||||||||
Tech Weekly | 3,744 | 2 days ago | 14 | apache-2.0 | Java | |||||
「小马哥技术周报」 | ||||||||||
Seata Samples | 2,111 | 2 months ago | 173 | apache-2.0 | Java | |||||
seata-samples | ||||||||||
Awesome Java | 469 | 11 days ago | 11 | |||||||
A curated list of awesome Java frameworks, libraries and software. | ||||||||||
Alibabacloud Microservice Demo | 314 | 3 days ago | 47 | apache-2.0 | Java | |||||
An Alibaba Cloud native microservice demo powered by Apache Dubbo and Spring Cloud Alibaba | ||||||||||
Dubbo3 | 253 | 5 years ago | 11 | apache-2.0 | Java | |||||
Dubbo3: distributed RPC framework from Alibaba Dubbo2 | ||||||||||
Spring Cloud Alibaba | 204 | 2 years ago | 7 | Java | ||||||
《Spring Cloud Alibaba微服务原理与实战》中的的案例代码。 |
Official site: http://rpcx.io
Notice: etcd
since rpcx 1.7.6, some plugins have been moved to the independent project:
etcd
plugin has been moved to rpcx-etcd
zookeeper
plugin has been moved to rpcx-zookeeper
consul
plugin has been moved to rpcx-consul
redis
plugin has been moved to rpcx-redis
influxdb
plugin has been moved to rpcx-plugins
opentelemetry
plugin has been moved to rpcx-plugins
A tcpdump-like tool added: rpcxdump。 You can use it to debug communications between rpcx services and clients.
you can use other programming languages besides Go to access rpcx services.
If you can write Go methods, you can also write rpc services. It is so easy to write rpc applications with rpcx.
install the basic features:
go get -v github.com/smallnest/rpcx/...
If you want to use quic
、kcp
registry, use those tags to go get
、 go build
or go run
. For example, if you want to use all features, you can:
go get -v -tags "quic kcp" github.com/smallnest/rpcx/...
tags:
rpcx is a RPC framework like Alibaba Dubbo and Weibo Motan.
rpcx is created for targets:
It contains below features
rpcx uses a binary protocol and platform-independent, which means you can develop services in other languages such as Java, python, nodejs, and you can use other prorgramming languages to invoke services developed in Go.
There is a UI manager: rpcx-ui.
Test results show rpcx has better performance than other rpc framework except standard rpc lib.
The benchmark code is at rpcx-benchmark.
Listen to others, but test by yourself.
Test Environment
Use
Test Result
Throughputs | Mean Latency | P99 Latency |
---|---|---|
![]() |
![]() |
![]() |
Throughputs | Mean Latency | P99 Latency |
---|---|---|
![]() |
![]() |
![]() |
Throughputs | Mean Latency | P99 Latency |
---|---|---|
![]() |
![]() |
![]() |
You can find all examples at rpcxio/rpcx-examples.
The below is a simple example.
Server
// define example.Arith
……
s := server.NewServer()
s.RegisterName("Arith", new(example.Arith), "")
s.Serve("tcp", addr)
Client
// prepare requests
……
d, err := client.NewPeer2PeerDiscovery("[email protected]"+addr, "")
xclient := client.NewXClient("Arith", client.Failtry, client.RandomSelect, d, client.DefaultOption)
defer xclient.Close()
err = xclient.Call(context.Background(), "Mul", args, reply, nil)
see contributors.
Welcome to contribute:
Apache License, Version 2.0