Dubbox学习(一)

1.Dubbox简介

Dubbox 是一个分布式服务框架,它的前身是阿里巴巴的开源项目Dubbo,后期因为阿里巴巴对Dubbo停止了维护,当当网在Dubbo的基础上进行了优化并维护,与原来的Dubbo区分,起名为Dubbox。

Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,Dubbox就是分布式框架,如果没有分布式的需求,并不需要用到,只有在分布式的时候,才有Dubbox的需求。

2.Dubbox的运行原理

Dubbox学习(一)

节点角色说明:

       Provider: 暴露服务的服务提供方。

       Consumer: 调用远程服务的服务消费方。

       Registry: 服务注册与发现的注册中心。

       Monitor: 统计服务的调用次调和调用时间的监控中心。

       Container: 服务运行容器。

调用关系说明:

0  服务容器负责启动,加载,运行服务提供者。

1. 服务提供者在启动时,向注册中心注册自己提供的服务。

2. 服务消费者在启动时,向注册中心订阅自己所需的服务。

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

4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

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

个人对于Dubbox运行的理解是

服务启动时,将服务提供方的服务地址注册到注册中心,当消费方调用时,会从注册中心去订阅所有的服务地址,即将注册中心的地址列表全部拿过来,然后随机调用一个地址,失败后调用下一个地址。比喻为房东,中介和租房人,分别对应服务提供方,注册中心和消费方
监控中心则是负责监控提供方和消费方的状况,是否良好,是否有挂掉的,然后进行处理