了解dubbo

一、dubbo结构

调用关系:

  • 0.服务容器负责启动、加载、运行服务提供者
  • 1.服务提供者在启动时向注册中心注册自己能提供的服务
  • 2.服务消费者在启动时向注册中心订阅自己需要的服务
  • 3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
  • 4.服务消费者从提供者地址列表中,基于软负载均衡算法,选择一台提供者进行调用,如果调用失败,再选一台调用
  • 5.服务消费者和提供者在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

2、使用jmeter测试dubbo接口

1)jmeter本身并不支持dubbo接口的测试,这里需要下载第三方插件,将jar包放入${JMETER_HOME}\lib\ext路径下,重启即可

2)Sample

  • 添加线程组,添加sampler
  •  

  • 各参数说明如下:

    Protocol:注册协议,包括zookeeper、multicast、Redis、simple;

    Address:注册地址,dubbo服务的IP+Port:

    ①、当使用zk,address填入zk地址,集群地址使用","分隔;

    ②、使用dubbo直连,address填写直连地址和服务端口;

    Protocol:使用的dubbo协议,包括dubbo、rmi、hessian、webservice、memcached、redis,根据自己的协议类型选择对应的选项即可;

    Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;

    Version:版本,dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明;

    Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);

    Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;

    Group:组类型,如果有的话,根据配置填写即可;

    Connections:连接数,同上,根据配置填写;

    Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;

    Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);

    Interface:接口名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名);

    Method:当前接口下的方法名,按照开发提供的API文档填写即可;

    Args:接口报文,根据API文档填写,如上图所示,添加输入行,输入对应的参数类型和值即可(参数类型和值如何定义填写,请参考上面的链接);

    ①、paramType:参数支持任何类型,包装类直接使用java.lang下的包装类,小类型使用:intfloatshotdoublelongbytebooleanchar,自定义类使用类完全名称;

    ②、paramValue:基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;

posted on 2019-07-26 16:13  九吴凡  阅读(92)  评论(0编辑  收藏  举报

导航