dubbo

作者: 剑书藏于西 | 来源:发表于2018-11-07 13:49 被阅读0次
dubbo.png
  1. Provider: 服务的提供方。
  2. Consumer:服务消费方。
  3. Registry:服务注册与发现的注册中心。
  4. Monitor:监控中心,统计服务的调用次数和调用时间的监控中心。
  5. 服务运行容器(Spring)

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

dubbo的schemal

schemal.png
所有配置项分为三大类
  1. 服务发现
  2. 服务治理
  3. 性能优化

所有配置最终都将转换为 URL(protocol://username:password@host:port/path?key=value&key=value)表示,并由服务提供方生成,经注册中心传递给消费方

  • <dubbo:service>:服务配置,用于暴露一个服务,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
  • <dubbo:protocol>:协议配置,用于配置服务协议配置,消费方被动接受
  • <dubbo:provider>:service 和 protocol 标签的缺省值设置。
  • <dubbo:application>:当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件。
  • <dubbo:registry>:注册中心配置。
  • <dubbo:monitor>:监控中心配置。
  • <dubbo:consumer>:reference 标签的缺省值设置。
  • <dubbo:reference>:服务消费者引用服务配置。
  • <dubbo:method>:service 和 reference 的子标签,用于控制到方法级。
    <dubbo:module>:模块信息配置。
    <dubbo:argument>:method 的子标签,用于方法参数的特征描述。
    <dubbo:parameter>:选项参数配置,同时该标签为 protocol 或 service 或 provider 或 reference 或 consumer 的子标签,用于配置自定义参数。

协议配置

  1. dubbo
    缺省协议,
    连接个数:单连接
    连接方式:长连接
    传输协议:TCP
    传输方式:NIO 异步传输
    序列化:Hessian 二进制序列化
    适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用 dubbo 协议传输大文件或超大字符串。
    适用场景:小数据量大并发的服务调用
  2. rmi
    连接个数:多连接
    连接方式:短连接
    传输协议:TCP
    传输方式:同步传输
    序列化:Java 标准二进制序列化
    适用范围:传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件。
    适用场景:常规远程服务方法调用,与原生RMI服务互操作
  3. hession
    连接个数:多连接
    连接方式:短连接
    传输协议:HTTP
    传输方式:同步传输
    序列化:Hessian二进制序列化
    适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。
    适用场景:页面传输,文件传输,或与原生hessian服务互操作
  4. http
    连接个数:多连接
    连接方式:短连接
    传输协议:HTTP
    传输方式:同步传输
    序列化:表单序列化
    适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
    适用场景:需同时给应用程序和浏览器 JS 使用的服务。
  5. webservice
    连接个数:多连接
    连接方式:短连接
    传输协议:HTTP
    传输方式:同步传输
    序列化:SOAP 文本序列化
    适用场景:系统集成,跨语言调用。可以和原生 WebService 服务互操作,即:提供者用 Dubbo 的 WebService 协议暴露服务,消费者直接用标准 WebService 接口调用,
    或者提供方用标准 WebService 暴露服务,消费方用 Dubbo 的 WebService 协议调用。
  6. thrift
  7. redis
  8. memcached
  9. rest

注册中心

  1. Zookeeper


    zk注册中心.png

    流程说明:
    服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址
    服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
    监控中心启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址。

  2. Multicast:不需要启动任何中心节点,只要广播地址一样,就可以互相发现。

  3. Redis

  4. Simple

相关文章

网友评论

      本文标题:dubbo

      本文链接:https://www.haomeiwen.com/subject/tyzmxqtx.html