1、简介
Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
使用
注册中心Zookeeper
Dubbo部署到本地的maven仓库
服务提供者Provider:
在服务类上添加@Service注解 所属的包为com.alibaba.dubbo.config.annotation.Service
在配置文件
<dubbo:protocolname="dubbo" port="20881"></dubbo:protocol> 指定客户端连接断开
<dubbo:application name="*** "/> 指定应用名称
<dubbo:registry address="zookeeper://192.168.25.132:2181"/> 连接注册中心
<dubbo:annotation package="*** " /> 设置服务类所在的包
服务消费者Consumer:
在控制器类添加@Reference注解 ,类似原来的自动注入,区别在于此注解是注入远程的实现
在配置文件上
<dubbo:applicationname="***" /> 指定应用名称
<dubbo:registry address="zookeeper://192.168.25.132:2181"/> 连接注册中心
<dubbo:annotation package="***" /> 扫描控制器类所在的包
参看文档:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html