Dubbo

Dubbo的注册中心功能

  1. 接收服务端的注册与客户端的引用,即将引用与消费建立关联,并支持多对多。
  2. 当服务非正常关闭时能即时清除其状态
  3. 当注册中心重启时,能自动恢复注册数据,以及订阅请求
  4. 注册中心本身的集群

Dubbo采用的是定时心跳的机制 来维护服务URL的有效期,默认每30秒更新一次有效期。
基于Zookeeper 临时节点机制实现,在客户端会话超时后 Zookeeper会自动删除所有临时节点,默认为40秒。
提供者宕机后 ,其与客户端的链接也随即断开,客户端在调用前会检测长连接状态。

dubbo调用模块核心功能是发起一个远程方法的调用并顺利拿到返回结果,其体系组成如下:

  1. 透明代理:通过动态代理技术,屏蔽远程调用细节以提高编程友好性。
  2. 负载均衡:当有多个提供者是,如何选择哪个进行调用的负载算法。
  3. 容错机制:当服务调用失败时采取的策略
  4. 调用方式:支持同步调用、异步调用
    在这里插入图片描述

Dubbo 目前官方支持以下负载均衡策略:

  1. 随机(random):按权重设置随机概率。此为默认算法.
  2. 轮循 (roundrobin):按公约后的权重设置轮循比率。
  3. 最少活跃调用数(leastactive):相同活跃数的随机,活跃数指调用前后计数差。
  4. 一致性Hash(consistenthash ):相同的参数总是发到同一台机器

Dubbo核心组件

Provider:暴露服务的服务提供方
Consumer:调用远程服务消费方
Registry:服务注册与发现注册中心
Monitor:监控中心和访问调用统计
Container:服务运行容器

Dubbo 服务器注册与发现的流程?

服务容器Container负责启动,加载,运行服务提供者。
服务提供者Provider在启动时,向注册中心注册自己提供的服务。
服务消费者Consumer在启动时,向注册中心订阅自己所需的服务。
注册中心Registry返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者Consumer,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
服务消费者Consumer和提供者Provider,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心Monitor。

Dubbo Monitor 实现原理?

Consumer 端和provider 端在接收到请求时先走 filter 链,然后才进行真正的业务逻辑处理。MonitorFilter 向DubboMonitor 发送数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值