数据库有问必答 | 如何配置PolarDB代理,实现流量负载均衡?

2022-01-12 00:00:00 集群 节点 配置 负载 流量

Q: 如何配置PolarDB代理,实现流量负载均衡?

PolarDB集群支持读写分离方式接入业务,但在实际业务场景中,经常出现节点上流量负载不均,可能导致单节点承担大量的流量从而被拖垮,终造成整个集群雪崩。详细处理定位办法如下:

  • 数据库代理配置说明

PolarDB MySQL引擎默认开启数据库代理功能,数据库代理的参数说明如下:

①.主地址读写方式不可配置,直接指向主节点,只能配置连接地址,无法配置代理功能,而集群地址和自定义地址读写方式可配置,支持标准代理配置,不可删除;

②.读写模式包括只读和可读可写。主库是否接受读在满足一致性需求的前提下,将读请求全部分流到只读节点执行,如果不满足一致性需求(只读同步完成),流量还是会路由到主节点;

③.事务拆分将事务头部的读取语句拆分到只读节点上以承担主节点压力。

④.一致性级别:

  1. 终一致性:不考虑数据的同步情况,按负载进行节点请求的调度,会出现写入的数据
    未同步完成,只读节点上读取不到的情况;

  2. 会话一致性:简单理解就是指在同一个连接里的前后请求,一般在写入后立即请求数据时使用,也是PolarDB推荐的一致性配置;

  3. 全局一致性:每一个会话都要判断只读节点是否已经同步到新数据,对一致性要求高的场景下启用。


  • 流量不均时的定位处理

如果在观察集群的性能时,发现集群的流量不均衡,则需要定位原因,防止流量倾斜导致的集群性能问题。具体场景如下:

①.主节点负载高,只读节点负载低;

②.只读节点负载高,主节点负载低;

③.连接地址复用;         

④.集群性能异常;             

⑤.流量来源异常。

来源:https://mp.weixin.qq.com/s/68tab1dPl0JxYTjaGB-R4w

相关文章