Dubbo基础知识

Dubbo是什么?他的核心功能是什么?
dubbo 阿里开源的一个SOA服务治理框架,从目前来看把它称作是一个RCP远程调用框架更为贴切。单从RPC框架来说,功能较完善,支持多种传输和序列化方案。所以想必大家已经知道他的核心功能了:就是远程调用。

Dubbo框架图




Consumer调用Provider是从内存中调用,并非注册中心调用;
节点角色说明:
1:Provider:暴露服务的服务提供方。
2:Consumer: 调用远程服务的服务消费方。
3:Registry:服务注册与发现的注册中心。
4:Monitor: 统计服务的调用次调和调用时间的监控中心。
5:Container: 服务运行容器。
调用关系说明: 
1、服务容器负责启动,加载,运行服务提供者。 
2、服务提供者在启动时,向注册中心注册自己提供的服务。 
3、服务消费者在启动时,向注册中心订阅自己所需的服务。 
4、注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 
5、服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。 
6、服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
流程说明:
1.    Provider(提供者)绑定指定端口并启动服务
2.    指供者连接注册中心,并发本机IP、端口、应用信息和提供服务信息发送至注册中心存储
3.    Consumer(消费者),连接注册中心 ,并发送应用信息、所求服务信息至注册中心
4.    注册中心根据 消费 者所求服务信息匹配对应的提供者列表发送至Consumer 应用缓存。
5.    Consumer 在发起远程调用时基于缓存的消费者列表择其一发起调用。
6.    Provider 状态变更会实时通知注册中心、在由注册中心实时推送至Consumer
这么设计的意义:
1.    Consumer 与Provider 解偶,双方都可以横向增减节点数。
2.    注册中心对本身可做对等集群,可动态增减节点,并且任意一台宕掉后,将自动切换到另一台
3.    去中心化,双方不直接依懒注册中心,即使注册中心全部宕机短时间内也不会影响服务的调用
4.    服务提供者无状态,任意一台宕掉后,不影响使用;

问题百科
(1)服务的提供者是怎么找到消费者?
根据dubbo中注入的接口 interface ="com.tuling.teach.service.DemoService"
(2)dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?
可以的,消费者本地有一个生产者的列表,他会按照列表继续工作,倒是无法从注册中心去同步最新的服务列表,短期的注册中心挂掉是不要紧的,但一定要尽快修复;
(3)服务的消费者怎么知道服务提供者宕机了?
redis为注册中心时:消费者在调用服务的时候根据服务提供者注入服务的时间戳;服务提供者会不停 的更新时间戳;30秒一次向注册中心更新下时间戳(源码中写);

待续,木有写完。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值