Dubbo作为一个分布式的服务治理框架,提供了集群部署,路由,软负载均衡及容错机制
下图描述了dubbo调用过程中的对于集群,负载等的调用关系。
Cluster
将Directory中的多个Invoker伪装成一个Invoker, 对上层透明,包含集群的容错机制
Cluster接口定义
@SPI(FailoverCluster.NAME)
public
interf...
分类:
其他好文 时间:
2014-12-03 21:33:00
阅读次数:
122
集群目录服务Directory, 代表多个Invoker, 可以看成List,它的值可能是动态变化的比如注册中心推送变更。集群选择调用服务时通过目录服务找到所有服务
Directory的接口定义
public
interfaceDirectory extends Node {
//服务类型
ClassgetInterface();
//列出所有服务的可执行对象
List>l...
分类:
其他好文 时间:
2014-12-03 21:31:29
阅读次数:
149
Router服务路由, 根据路由规则从多个Invoker中选出一个子集AbstractDirectory是所有目录服务实现的上层抽象, 它在list列举出所有invokers后,会在通过Router服务进行路由过滤。
Router接口定义
public
interface Router extendsComparable {
URL getUrl();
List> route...
分类:
其他好文 时间:
2014-12-03 21:30:29
阅读次数:
151
LoadBalance负载均衡, 负责从多个 Invokers中选出具体的一个Invoker用于本次调用,调用过程中包含了负载均衡的算法,调用失败后需要重新选择
LoadBalance接口定义
@SPI(RandomLoadBalance.NAME)
public
interface LoadBalance{
@Adaptive("loadbalance")
Invoker sel...
分类:
其他好文 时间:
2014-12-03 21:29:47
阅读次数:
162
服务注册与发现的中心,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务。
Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,使用着可以直接实现自己的注册中心。
@SPI("dubbo")
public
interface RegistryFactory {
/**
* 连接注册中心.
* 连接注册中心需处理契约...
分类:
其他好文 时间:
2014-12-02 22:42:45
阅读次数:
271
服务注册与发现的中心,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务。
Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,使用着可以直接实现自己的注册中心。
@SPI("dubbo")
public interface RegistryFactory {
/**
* 连接注册中心.
* 连接注册中心需处理契约...
分类:
其他好文 时间:
2014-12-02 22:42:24
阅读次数:
226
下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务。对于zookeeper的原理本文档不分析,后面有时间在做专题。
zookeeper注册中心
Zookeeper对数据存储类似linux的目录结构,下面给出官方文档对dubbo注册数据的存储示例...
分类:
其他好文 时间:
2014-12-02 22:40:30
阅读次数:
346
服务发布是服务提供方向注册中注册服务过程,以便服务消费者从注册中心查阅并调用服务。
服务发布方在spring的配置文件中配置如下:
上面是在spring中配置的服务的具体实现,是spring中的一个普通的bean
上面的配置spring容器在启动的过程中会解析自定义的schema元素dubbo转换成实际的配置实现ServiceBean ,并把服务暴露出去。
Servic...
分类:
其他好文 时间:
2014-12-01 22:39:43
阅读次数:
288
服务引用是服务的消费方向注册中心订阅服务提供方提供的服务地址后向服务提供方引用服务的过程。
服务的应用方在spring的配置实例如下:
dubbo:reference
id="demoService"
interface="com.alibaba.dubbo.demo. DemoService"/>
如上配置spring在容器启动的时候会解析自定义的schema元素转换成dubbo内部数...
分类:
其他好文 时间:
2014-12-01 22:37:30
阅读次数:
2332
Listener
ExporterListener:
dubbo在服务暴露(exporter)以及销毁暴露(unexporter)服务的过程中提供了回调窗口,供用户做业务处理。ProtocolListenerWrapper在暴露过程中构建了监听器链
public
class ProtocolListenerWrapper implements Protocol {
public...
分类:
其他好文 时间:
2014-12-01 22:35:52
阅读次数:
332