此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅最新版本。
对比 2.x 版本,Dubbo3 版本
以下是详细压测过程与数据
此部分压测数据是由工商银行 Dubbo 团队基于内部生产数据给出,压测过程模拟了“生产环境地址+zookeeper”的服务发现架构。
描述 | |
---|---|
压测数据 | 提供者 500运行实例✖️8interface✖️5protocol,即每个提供者向注册中心注册40个URL,总计20000个URL,每个URL字符长度约1k。 注册中心 2个独立zookeeper注册中心,服务提供者消费者采用并行配置。 消费者 配置1c2g,xmx=768,开启GC,从2个注册中心订阅,每5秒调用一次服务。运行20小时。 |
压测环境 | Java version “1.8.0” Java(TM) SE Runtime Enviroment (build pxa6480sr3fp12-20160919_01(SR3 FP12)) IBM J9 VM (Build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20160915_318796, JIT enabled, AOT enabled) |
图一 服务发现模型内存占用变化
图二 服务发现模型 GC 变化
描述 | |
---|---|
机器 | 4C8G Linux JDK 1.8(Provider)4C8G Linux JDK 1.8 (Consumer) |
压测用例 | RPC 方法类型包括:无参无返回值、普通pojo返回值、pojo列表返回值 2.7 版本 Dubbo 协议(Hessian2 序列化) 3.0 版本 Dubbo 协议(Hessian2 序列化) 3.0 版本 Dubbo 协议(Protobuf 序列化) 3.0 版本 Triple 协议(Protobuf 序列化) 3.0 版本 Triple 协议(Protobuf 套 Hessian2 序列化) |
压测方法 | 单链接场景下,消费端起 32 并发线程(当前机器配置 qps rt 较均衡的并发数),持续压后采集压测数据 压测数据通过 https://github.com/apache/dubbo-benchmark 得出 |
Dubbo + Hessian2 2.7 | Dubbo + Hessian2 3.0 | Dubbo + Protobuf 3.0 | Triple + Protobuf 3.0 | Triple + Protobuf(Hessian) 3.0 | |
---|---|---|---|---|---|
无参方法 | 30333 ops/s 2.5ms P99 | 30414 ops/s 2.4ms P99 | 24123 ops/s 3.2ms P99 | 7016 ops/s 8.7ms P99 | 6635 ops/s 9.1ms P99 |
pojo返回值 | 8984 ops/s 6.1 ms P99 | 12279 ops/s 5.7 ms P99 | 21479 ops/s 3.0 ms P99 | 6255 ops/s 8.9 ms P99 | 6491 ops/s 10 ms P99 |
pojo列表返回值 | 1916 ops/s 34 ms P99 | 2037 ops/s 34 ms P99 | 12722 ops/s 7.7 ms P99 | 6920 ops/s 9.6 ms P99 | 2833 ops/s 27 ms P99 |
图三 Dubbo协议在不同版本的实现对比
图四 Triple vs Dubbo
TBD
TBD