写点什么

Dubbo 框架学习笔记九

作者:风翱
  • 2021 年 12 月 22 日
  • 本文字数:627 字

    阅读完需:约 2 分钟

Dubbo 框架学习之集群:


Dubbo 独立出了一个实现集群功能的模块—— dubbo-cluster。


为了保证服务的可靠性、吞吐量以及容错能力,我们通常会在多个服务器上运行相同的服务端程序,然后以集群的形式对外提供服务。根据各项性能指标的要求不同,各个服务端集群中服务实例的个数也不尽相同,从几个实例到几百个实例不等。


这样就会出现几个需要解决的问题:

程序是否要感知每个服务端地址?

程序的一次请求,到底调用哪个服务端程序呢?

请求失败之后的处理是重试,还会是抛出异常?

如果是重试,是再次请求该服务实例,还是尝试请求其他服务实例?

服务端集群如何做到负载均衡,负载均衡的标准是什么呢?

…………


dubbo-cluster 模块的架构以及最核心的 Cluster 接口。

dubbo-cluster 模块的主要功能是将多个 Provider 伪装成一个 Provider 供 Consumer 调用,其中涉及集群的容错处理、路由规则的处理以及负载均衡。


dubbo-cluster 主要包括以下四个核心接口:

  • Cluster 接口,是集群容错的接口,主要是在某些 Provider 节点发生故障时,让 Consumer 的调用请求能够发送到正常的 Provider 节点,从而保证整个系统的可用性。

  • Directory 接口,表示多个 Invoker 的集合,是后续路由规则、负载均衡策略以及集群容错的基础。

  • Router 接口,抽象的是路由器,请求经过 Router 的时候,会按照用户指定的规则匹配出符合条件的 Provider。

  • LoadBalance 接口,是负载均衡接口,Consumer 会按照指定的负载均衡策略,从 Provider 集合中选出一个最合适的 Provider 节点来处理请求。

发布于: 2 小时前阅读数: 4
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
Dubbo框架学习笔记九