当前位置: 首页 > article >正文

巧用服务名解决主备集群中主库DMDSC节点间会话负载不均衡的问题

一、背景描述

为了实现数据的冗余,同时为了保护数据的安全,实现业务系统数据在两个机房间保持一致,需要在同城异地机房搭建备库。某金融客户业务系统将两节点DMDSC集群改造成两节点DMDSC主+单机备集群后,进行功能测试时,在服务名中配置LOGIN_MODE=1的情况下,主库两节点DMDSC存在会话负载不均衡情况。在100并发测试下,数据库会话数约有三分之二连接到主库DMDSC的第一个节点上,三分之一连接到DMDSC的第二个节点上。如下图所示。

客户四大功能要求:

(1)业务会话只连接主库,所有读写操作在主库执行。

(2)主库和备库切换后,应用不需要做任何调整就可以连接数据库。

(3)主库两节点DMDSC业务会话负载均衡。

(4)在不升级数据库和JDBC驱动版本的情况下,实现以上四点功能。

二、问题处理过程

2.1 只连主库

只连主库可以通过在服务名中增加LOGIN_MODE=1实现,同时不能在服务名中配置AUTO_RECONECT=4和DO_SWITCH=4,这两个配置项会导致部分会话连接到备库。

2.2 会话主要集中在主库第一个节点上

在100并发测试下,数据库会话数约有三分之二连接到主库DMDSC的第一个节点上,三分之一连接到DMDSC的第二个节点上。如下图所示。

通过多轮测试,大致可以判断出,业务发起的会话,JDBC通过轮询的方式发送到服务名的三个IP地址上,由于限制只连接主库,分发到备库20.41上的会话失败后,会话会转到第一节点上。从而导致数据库会话数约有三分之二连接到主库DMDSC的第一个节点上。

2.3 会话在主库DMDSC上负载均衡

数据库版本:8.1.3.26_pack19

JDBC驱动:8.1.3.26,进行了多轮测试。

目前测试的最好效果如下所示:

(1)服务名文件配置:

分别配置两个相同的服务名,使用方法如上图所示。

(2)JDBCURL配置:

(3)两节点DMDSC数据库会话负载分布情况

主库DMDSC两个节点可以实现会话的均衡分布。备库上的一个数据库会话是用管理工具连接的,可以不用管。

(4)应用使用的JDBC版本

(5)其他特别使用说明

36.101和36.102为主库时,应用连接数据库使用第一个ELCS服务名。如果主备切换后,20.41为主库时,应用连接数据库使用第二个ELCS服务名,第一个服务名ELCS需要注释掉,对于业务应用来说,这个过程中,服务名一直没有变,应用不需要做任何调整。只需要在切换时,将服务名配置文件dm_svc.conf做适当调整即可。如果下图所示。

在100并发测试下,数据库会话数可以均衡的分布到主库两节点DMDSC上。

三、问题总结

(1)由于业务系统已经上线,稳定运行有一年时间。如果更换数据库和JDBC版本,需要重新进行业务系统的功能和性能测试,客户无法接受这种方案。

(2)限制条件:本次测试的数据库版本:8.1.3.26_pack19,JDBC驱动版本:8.1.3.26。其他版本没有进行过详细测试,以上问题处理方法仅供参考。服务名参数详细说明参见官方手册。


http://www.kler.cn/news/311221.html

相关文章:

  • Activiti7《第二式:破剑式》——工作流中的以柔克刚
  • 算法:计算二叉树的最大深度(Java实现)
  • 翻页时钟 2.0-自动置顶显示,点击小时切换显示标题栏不显示标题栏-供大家学习研究参考
  • 【C++语言】模版的进一步学习
  • 网页打开时,下载的文件svg+xml类型有什么作用?
  • 99AutoML 自动化机器学习实践--NNI 自动化机器学习工具包
  • axure的下载,激活,汉化全过程,多图
  • VirtualBox增加磁盘并给docker用
  • 大数据之Spark(一)
  • 【LabVIEW】条件结构的使用
  • VMWARE安装Ubuntu24.04桌面版的问题
  • 由于 Python 环境不一致导致的No module named ‘selenium‘
  • 除了递归算法,要如何优化实现文件搜索功能
  • 改进版field-sensitive指针分析算法
  • vue2+js项目升级vue3项目流程
  • Vue 常用高级指令解析
  • @JSONField(name=xx)、@JsonProperty(value=xx)和@SerializedName的使用
  • Qt_控件的QWidget属性介绍
  • 2024年轻人驯化AI指南
  • CSS中隐藏滚动条的同时保留滚动功能
  • 桂花网蓝牙网关与智能手环联合应用于职业健康监测
  • 重修设计模式-结构型-装饰器模式
  • 大牛直播SDK核心音视频模块探究
  • 基于windows下docker安装HDDM并运行
  • web群集--nginx实现重定向与重写操作的详细配置过程详与案例展示
  • 【案例】--mongodb的响应慢思考案例
  • 迈入IT世界:技术趋势、职业选择与未来展望
  • 佩戴舒适且适合学生党的蓝牙耳机?分享开放式耳机排行榜前十名
  • 代码随想录算法训练营第五十九天 | Bellman_ford 算法精讲
  • 力扣100题——技巧