前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >亚信安慧AntDB-M负载均衡

亚信安慧AntDB-M负载均衡

原创
作者头像
亚信AntDB数据库
修改2024-08-12 10:53:46
70
修改2024-08-12 10:53:46
举报
文章被收录于专栏:AntDB数据库

负载均衡是分布式系统中常用的技术,主要是将工作任务均衡分布到系统的各个资源点上,可以充分利用系统资源。

AntDB-M分布式内存数据库节点角色可以分为管理节点(MN)、计算节点(CN)和数据节点(DN)三种。管理节点收到客户端连接请求后,会经由负载均衡模块为客户端分配集群内的服务端节点,流程图如下图所示:

图1:AntDB-M 负载均衡示意图
图1:AntDB-M 负载均衡示意图

通常负载均衡算法会将工作负载平均分布到所有节点,但是AntDB-M分布式数据库的节点存在计算/存储节点类型、主备状态等差异,因此我们在设计均衡算法时结合考虑了节点类型、主备状态等信息。

算法实现

AntDB-M管理节点内部维护了集群中所有机器的元数据信息,并通过心跳更新机器状态与信息。当新连接到达管理节点后,管理节点根据均衡策略返回客户端多个可用节点,客户端依次轮询连接。具体算法步骤如下:

1、节点类型判断

AntDB-M分布式集群可以根据需求配置CN节点与DN节点,构建MN+DN结构或MN+CN+DN结构的结构。当集群结构为MN+CN+DN时,管理节点可以根据需求指定分配CN或DN节点,未指定时会默认优先分配CN节点。负载均衡算法第一步会判断需求节点类型,获取对应类型机器。

2、主备选择

AntDB-M各分片可搭建主从集群保证分片的高可用。当分片存在主从节点时,管理节点可以根据请求的只读属性,为请求分配分片的主节点或从节点。对于非只读请求返回分片主节点,只读请求优先获取备节点,无可用备节点时返回主节点。

2、最少连接数

MN会通过心跳维护集群内所有节点状态信息,负载均衡算法获取到多个符合条件的节点后,会根据各节点当前连接数状态,优先返回连接数最少的节点。

经过上述均衡策略之后,管理节点会依照节点优先程度,至多向客户端返回3个可用节点。

实践示例

1、相关操作

节点类型控制:AntDB-M通过变量antdb_route_mode(session_variable)控制负载均衡暴露节点类型,使用show variables like “antdb_route_mode”查看当前暴露的节点,使用 set session antdb_route_mode=“DN”改变暴露的节点。当集群结构发生改变时,antdb_route_mode值会根据集群结构自动进行调整,仅当集群结构为MN+CN+DN时可以指定暴露节点类型。

UDF:AntDB-M内置了UDF:get_route(ip,read_only)供客户端调用。其中read_only为连接请求的只读属性。

2、实践

下面通过几个简单的示例展示负载均衡功能用法及均衡结果。以如下集群结构为例,搭建1个MN、1个CN、2个一主两备DN的集群。

图2:集群结构
图2:集群结构

此时默认对外暴露节点为CN:

图3:负载均衡暴露节点类型

代码语言:javascript
复制
查看负载均衡结果:

图4:CN负载均衡结果

代码语言:javascript
复制
可见此时MN只会暴露给客户端CN节点。修改antdb_route_mode为“DN”后再次查看负载均衡结果:

图5 DN负载均衡结果

此时负载均衡可以根据客户端请求只读属性,返回DN分片主节点或备节点。手动在21、22、32节点上建立一个连接后,可以看到此时负载均衡返回结果会根据各节点连接数进行选择,实现负载均衡。负载均衡结果如下图所示:

图6:最少连接数均衡结果

综上所述,在分布式数据库中,想要合理利用各个服务器,最大程度发挥集群性能,负载均衡必不可少。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档