1.Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。项目中可以取代WebServcie。

将dubbo3 设置可以连接dubbo2 dubbo连接方式_zookeeper


将dubbo3 设置可以连接dubbo2 dubbo连接方式_zookeeper_02


2.Dubbo连接方式

使用Dubbo进行远程调用实现服务交互,它支持多种协议,如Hessian、HTTP、RMI、Memcached、Redis等等。由于Dubbo将这些协议的实现进行了封装了,无论是服务端(开发服务)还是客户端(调用服务),都不需要关心协议的细节,只需要在配置中指定使用的协议即可,从而保证了服务提供方与服务消费方之间的透明。

Dubbo的客户端和服务端有三种连接方式,分别是:广播,直连和使用zookeeper注册中心。

2.1.Dubbo广播
这种方式是dubbo官方入门程序所使用的连接方式,但是这种方式有很多问题。
在企业开发中,不使用广播的方式。

服务端配置:

将dubbo3 设置可以连接dubbo2 dubbo连接方式_服务端_03


客户端配置:

将dubbo3 设置可以连接dubbo2 dubbo连接方式_服务端_04

2.2.Dubbo直连

Dubbo直连,首先要取消广播,然后客户端直接到指定的url获取服务即可。
这种方式在企业中一般在开发中环境中使用,但是生产环境很少使用
因为服务是直接调用,没有使用注册中心,很难对服务进行管理。

服务端配置:

取消广播,注册地址为N/A

将dubbo3 设置可以连接dubbo2 dubbo连接方式_客户端_05


客户端配置:

取消广播,从指定的url中获取服务

将dubbo3 设置可以连接dubbo2 dubbo连接方式_服务端_06


2.3.Dubbo注册中心

Dubbo注册中心和广播配置类似,不过需要指定注册中心类型和注册中心地址,这个时候就不是把服务信息进行广播了,而是告诉给注册中心进行管理,这个时候我们就需要有一个注册中心。官方推荐使用zookeeper作为注册中心。zookeeper在dubbo所处的位置:

将dubbo3 设置可以连接dubbo2 dubbo连接方式_客户端_07


Provider:暴露服务的服务提供方,向注册中心注册自己提供的服务。

Consumer:向注册中心订阅自己所需的服务,调用远程服务的服务消费方。从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

Registry:返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

Monitor:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

所谓SOA也好,分布式服务框架也好,不是服务消费者从中间件(一般都是Zookeeper)上去拿数据,而是服务消费者从中间件上拿到可用的服务生产者的集群地址,再从集群地址中选出一个进行直连。

dubbo适合小数据量大并发的服务调用,以及消费者机器远大于生产者机器数的情况,不适合传输大数据量的服务比如文件、视频等,除非请求量很低。

3.dubbo的特性
(1) 连通性:
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互。