官方地址:http://dubbo.apache.org/zh-cn/
- 节点角色说明
1、Container:服务运行容器,只启动一次
2、Provider:服务提供者
3、Registry:服务注册与发现的注册中心
4、Consumer:服务消费者
5、Monitor:统计服务的调用次数和调用时间的监控中心
-
调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
- 系统框架搭建
- 依赖
<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" />