dolphinscheduler服务RPC负载均衡源码解析(一)RPC负载均衡的整体设计

1.概述

之前我们已经分析dolphinscheduler中的RPC框架中RPC消费者服务与RPC提供者服务之间的数据通信流程,也对RPC提供者服务整合注册中心进行服务注册的源码进行了分析,那么接下来我们一起再来看看RPC消费者服务是如何通过注册中心来获取提供者服务的,一起来思考几个问题:

  • 1.分布式集群RPC提供者肯定会被部署在多台主机节点上, 那么注册到注册中心的RPC提供者服务肯定会有多个,RPC消费者端服务是如何获取注册中心的RPC提供者服务列表的,源码中是如何实现的?
  • 2.既然RPC提供者服务列表,RPC消费者端服务肯定需要从列表中选择一个可用的主机节点来进行远程调用, 这个节点是怎么选择出来的?选择策略都有哪些?
  • 3.dolphinscheduler中默认的选择策略是什么?为什么默认用这种策略?
  • 4.dolphinscheduler中是如何保证RPC提供者服务列表的实时性和可用性的?

下面我们带着这些问题一起来分析和探究一下Dolphinscheduler中关于RPC负载均衡策略的设计和实现。

2.设计

2.1.流程设计

RPC服务消费者端实现基于多种不同算法的负载均衡策略的整体流程