应用直接中断连接导致数据被锁(生产故障)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 这是一个由应用重启连接直接而导致数据被锁的问题。系统大致结构基本情况:整个架构为了统一管理db连接,共享连接。
  • 这是一个由应用重启连接直接而导致数据被锁的问题。
  • 系统大致结构

image

  • 基本情况:

    1. 整个架构为了统一管理db连接,共享连接。
    2. 应用通过loadbalance连接db访问层。
    3. db访问层后端代理若干db。
    4. 应用到loadbalance以mysql协议通信。
    5. db访问层到db以JDBC方式通信。
  • 故障: 某些数据库中的表数据相当长一段时间被锁,导致应用某些场景失败。

  • 故障分析:应用开启一个事务的set autocommit=0命令是从app-lb-db访问层-db,期间如果某个事务还未执行完,而app强行中断连接,就会导致app-lb的连接断开,而lb并不直接断开后端的连接,即lb-db访问层-db的连接不会断,从而导致db不会发生回滚操作。而且此事务对某些记录加了锁,于是就会发生某些数据被锁。直到db访问层检测出该连接超过了idle时间才会关闭,并发送回滚命令给db。

  • 解决问题:

① lb在前端连接关闭时要同时关闭同会话的后端连接,并且db访问层要监听lb的连接,一旦关闭则要做回滚操作。

②去掉lb,提供客户端loadbalance,应用一旦关闭连接db访问层也要关闭连接。

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

这里写图片描述

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
存储 缓存 定位技术
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
|
4月前
|
安全 调度
【Free】基于主从博弈的主动配电网阻塞管理
【Free】基于主从博弈的主动配电网阻塞管理
|
消息中间件 Java
同步模式之保护性暂停
同步模式之保护性暂停
|
11月前
|
传感器 调度
什么是中断系统?
一、什么是中断系统 中断系统是计算机系统中的一种机制,它允许外部设备和程序请求处理器的注意力,以便进行特定的操作。当一个中断请求被触发时,处理器会暂停当前正在执行的程序,转而执行与中断相关的程序或服务例程。中断系统可以提高计算机系统的效率和响应速度,因为它允许处理器在等待某些事件的同时执行其他任务。常见的中断包括硬件中断(例如键盘输入、鼠标移动、网络数据传输等)和软件中断(例如操作系统调度、系统调用等)。 二、中断系统的特点 中断系统具有以下特点: 1. 实时性:中断系统能够及时响应外部设备的请求,提高计算机系统的响应速度和效率。 2. 可靠性:中断系统能够保证中断请求的可靠性,确保外部设备的
256 0
|
NoSQL 数据库 数据中心
多数据中心操作和检测并发写入
多数据中心操作 无主复制也适用于多数据中心操作,因其旨在更好的容忍并发写冲突、网络中断和延迟尖峰等。
103 0
详解中断系统
本文针对地详解了中断系统
250 0
|
网络安全 网络架构 开发者
网络稳定的第二道屏障: 带外网络DHCP异常排查方案
网络管理通常可分为带外管理(out-of-band)和带内管理(in-band)两种管理模式,带外网络是通过独立于数据网络之外的专用管理通道对机房网络设备(路由器、交换机、防火墙等)、服务器设备(小型机、服务器、工作站)以及机房电源系统进行集中化整合管理的网络集中管理系统。当企业网络建成后,网络上会传输各种企业的业务数据,如果业务网络出现问题,就需要通过带外网络来进行故障的排查,保障系统的稳定。
网络稳定的第二道屏障: 带外网络DHCP异常排查方案
|
监控 NoSQL 关系型数据库
可用性监控-先于客户知道您的应用挂了
任何服务都避免不了出现以下问题,你的用户访问不了你的服务或者站点,用户偶尔碰到5xx,服务响应延迟比较慢,某台应用进程挂掉,导致访问时好时坏。问题在于,你是否要等你的用户来告诉你,你的程序是问题了。
3022 0