调用方式

通讯环节 远程通讯协议
Client => Consumer HTTP协议
Consumer => Consumer Agent HTTP协议
Consumer Agent => Provider Agent 自定义协议
Provider Agent => Provider Dubbo协议
Provider => Provider Agent Dubbo协议
Provider Agent => Consumer Agent 自定义协议
Consumer Agent => Consumer HTTP协议
Consumer => Client HTTP协议

自定义协议

protocol.png

使用的第三方依赖

  • Netty
  • Spring Boot

Benchmark

假定Prodvider业务逻辑处理时延是50ms,docker集群内有以下节点:

  • Consumer节点 -通过SpringBoot暴露服务供客户端调用
  • Provider Large节点 - SpringBoot+Dubbo提供服务,启动参数:-Xms3G -Xmx3G
  • Provider Medium节点 - SpringBoot+Dubbo提供服务,启动参数:-Xms2G -Xmx2G
  • Provider Small 节点 - SpringBoot+Dubbo提供服务,启动参数:-Xms1G -Xmx1G
  • ETCD 节点 - 服务器注册与服务发现

使用wrk调用Consumer进行测试,测试结果

  • Online(天池测评平台):最高 5099 qps
  • Local (阿里云ECS,4C8G): 最高 7100 qps