本小节主要介绍平衡器的相关原理;
例如:
如何实现一个平衡器?
知道如何实现平衡器后,那么如何将平衡器注册到grpc框架里呢?
将平衡器注册到grpc框架内部后,grpc框架是如何创建平衡器实例呢?
1、如何实现一个平衡器? |
既然已经知道平衡器的核心的目的之一就是向grpc服务器端发起tcp链接请求。
那么在这个过程中,可能会面临一些问题:
- 当grpc服务器只有一个的时候,如何处理?
- 当grpc服务器有多个的时候,如何处理?
- 当gprc服务器负载不同的时候,如何处理?或者说,当多个链接都处于Ready状态时,该选择哪个链接传输流呢?
- 当链接失败时,如何处理?是否有重试机制?
…
为了解决这些问题,可以这么思考,把链路分为不同的阶段,或者某一类相关的操作,如:
- 平衡器构建阶段
- 子链接具体链接阶段;可以这么认为一个grpc服务器地址对应一个子链接,多个地址的时候,就会有多个子链接
- 选择子链路阶段
- 平衡器状态相关