2.1 dubbo
概述
Apache Dubbo (incubating) |ˈdʌbəʊ|
是一款高性能、轻量级的开源
Java RPC
框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和
发现。
Dubbo
是一个分布式服务框架,致力于提供高性能和透明化的
RPC
远程服务调用方案、
服务治理方案。
官网:
http://dubbo.apache.org/zh-cn/
面向接口代理:调用接口的方法,在
A
服务器调用
B
服务器的方法,由
dubbo
实现对
B
的调用,无需关心实现的细节,就像
MyBatis
访问
Dao
的接口,可以操作数据库一样。不用关
心
Dao
接口方法的实现。这样开发是方便,舒服的。
2.2
基本架构
服务提供者(
Provider
)
:暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(
Consumer
)
:
调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一
台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(
Registry
)
:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者 。
监控中心(
Monitor
)
:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
调用关系说明
:
⚫服务容器负责启动,加载,运行服务提供者。
⚫服务提供者在启动时,向注册中心注册自己提供的服务。
⚫
服务消费者在启动时,向注册中心订阅自己所需的服务。
⚫注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
⚫服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,
如果调用失败,再选另一台调用。
⚫
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
2.3 dubbo
支持的协议
支
持多种协议:
dubbo , hessian , rmi , http, webservice , thrift , memcached , redis
。dubbo
官方推荐使用
dubbo
协议。
dubbo
协议默认端口
20880
使用
dubbo
协议,
spring
配置文件加入:
<dubbo:protocol name="dubbo" port="20880" />