Dubbo的调用过程及工作原理

一、节点角色

1️⃣Container:服务运行容器。
2️⃣Provider:暴露服务的服务提供方。
3️⃣Consumer:调用远程服务的服务消费方。
4️⃣Registry:服务注册与发现的注册中心。
服务提供者先启动 start,然后注册 register 服务。消费订阅 subscribe 服务,如果没有订阅到自己想获得的服务,它会不断的尝试订阅。新的服务注册到注册中心以后,注册中心会将这些服务通过 notify 到消费者。
5️⃣Monitor:统计服务的调用次数和调用时间的监控中心。
这是一个监控,图中虚线表明 Consumer 和 Provider 通过异步的方式发送消息至 Monitor,Consumer 和 Provider 会将信息存放在本地磁盘,平均一分钟发送一次信息。Monitor 在整个架构中是可选的(图中的虚线并不是可选的意思),Monitor 功能需要单独配置,不配置或者配置以后,Monitor 挂掉并不会影响服务的调用。

二、调用关系

1️⃣服务容器 Container 负责启动加载运行服务提供者 Provider。根据 Provider 配置的文件据协议发布服务,完成服务的初始化。

2️⃣Provider 在启动时,根据配置中的 Registry 地址连接 Registry,将 Provider 的服务信息发布到 Registry,在 Registry 注册自己提供的服务。

3️⃣Consumer 在启动时,根据消费者 XML 配置文件中的服务引用信息,连接到 Registry,向 Registry 订阅自己所需的服务。

4️⃣Registry 根据服务订阅关系,返回 Provider 地址列表给 Consumer。如果有变更,Registry 会基于长连接推送最新的服务地址信息给 Consumer。

5️⃣Consumer 调用远程服务时,基于软负载均衡算法,先从缓存的 Provider 地址列表中选择一台进行跨进程调用服务,假如调用失败,再重新选另一台调用。

6️⃣服务 Provider 和 Consumer,会在内存中记录调用次数和调用时间,每分钟发送一次统计数据到 Monitor。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值