首页 > 技术文章 > Dubbo的四大组件

scorpio-cat 2020-04-19 19:26 原文

官方地址:http://dubbo.apache.org/zh-cn/

 

 

  • 节点角色说明

1、Container:服务运行容器,只启动一次

2、Provider:服务提供者

3、Registry:服务注册与发现的注册中心

4、Consumer:服务消费者

5、Monitor:统计服务的调用次数和调用时间的监控中心

  • 调用关系说明
  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
  • 系统框架搭建
  • 依赖
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.0</version>
</dependency>

 

  • 服务提供方
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="dubbo-provider" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
        
    <!-- 用户服务接口 -->
    <dubbo:service interface="com.xcj.interfaceProvider.service.UserService" ref="userService" />
    
    <bean id="userService" class="com.xcj.interfaceProvider.service.UserServiceImpl" />

 

  • 服务消费方
    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="dubbo-consumer" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <!-- 注册中心地址 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
    
    <!-- 用户服务接口 -->
    <dubbo:reference interface="com.xcj.interfaceProvider.service.UserService" id="userService" check="false" />

 

推荐阅读