2021年Go生態(tài)圈RPC框架哪個性能最好?
分別測試并發(fā)數(shù)為100、200、500、1000、2000、5000的場景,測試單個服務在面對不同并發(fā)量的情況下的性能。
從客戶端統(tǒng)計吞吐率和延遲(latency)
采用共享的client。創(chuàng)建一定數(shù)量的client作為client池。
所有的框架都是在“公平”的情況下測試。測試數(shù)據(jù)都是一致的,采用Protobuf進行測試。雖然有比Protobuf性能更好的序列化框架,但是因為不具有通用性所以不考慮。
測試會進行預熱。
避免coordinated omission[3]:測試統(tǒng)計的是等待時間+服務時間,而不是服務端服務時間
統(tǒng)計既包含平均值,也包含P99.9值。

Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz,2顆
總物理核8個, 開超線程邏輯核數(shù)為32個
內(nèi)存128G
Go 1.16.6
各框架版本:
ARPC:1.1.5
go std rpc:1.16.6
gRPC:1.39.0
KiteX:0.0.3
RPCX:1.6.5

-rwxr-xr-x 1 smallnest USER 9756450 Aug 1 17:50 arpc_server
-rwxr-xr-x 1 smallnest USER 12800584 Aug 1 17:51 gostd_server
-rwxr-xr-x 1 smallnest USER 12520016 Aug 1 17:52 grpc_server
-rwxr-xr-x 1 smallnest USER 11240760 Aug 1 17:53 kitex_server
-rwxr-xr-x 1 smallnest USER 11810350 Aug 1 17:54 rpcx_server
-rwxr-xr-x 1 smallnest USER 5021980 Aug 1 17:56 arpc_client
-rwxr-xr-x 1 smallnest USER 11109233 Aug 1 17:57 gostd_client
-rwxr-xr-x 1 smallnest USER 12581237 Aug 1 17:58 grpc_client
-rwxr-xr-x 1 smallnest USER 11559544 Aug 1 17:59 kitex_client
-rwxr-xr-x 1 smallnest USER 16065065 Aug 1 18:00 rpcx_client
./xxx_server -d 127.0.0.1:8972
./xxx_client -c 1000 -n 10000000 -s 127.0.0.1:8973






https://github.com/cloudwego/kitex
https://github.com/rpcxio/rpcx-benchmark
http://highscalability.com/blog/2015/10/5/your-load-generator-is-probably-lying-to-you-take-the-red-pi.html
推薦閱讀
