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

做球球棒棒糖网站源码百度搜索一下就知道

做球球棒棒糖网站源码,百度搜索一下就知道,ppt制作免费模板,政府网站建设管理典型材料引言 一文带你搞懂Spring事务上篇文章介绍了Spring事务相关内容,本文主要介绍业务开发中遇到的大事务问题。 https://github.com/WeiXiao-Hyy/blog 整理了Java,K8s,极客时间,设计模式等内容,欢迎Star! 什么是大事务 运行时间(调用远程事务或…

引言

一文带你搞懂Spring事务上篇文章介绍了Spring事务相关内容,本文主要介绍业务开发中遇到的大事务问题。

https://github.com/WeiXiao-Hyy/blog 整理了Java,K8s,极客时间,设计模式等内容,欢迎Star!

什么是大事务

运行时间(调用远程事务或接口中需要执行的SQL比较多)比较长,长时间未提交的事务可以称之为大事务。

大事务产生的原因

  • 操作的数据比较多
  • 大量的锁竞争
  • 事务中其他非DB的耗时操作
  • ……

大事务造成的影响

  • 并发情况下,数据库连接池容易被撑爆
  • 锁定太多的数据,造成大量的阻塞和锁超时
  • 执行时间长,容易造成主从延迟
  • 回滚所需要的时间比较长
  • undo log 膨胀
  • ……

通用解法

  • 使用编程式事务
  • 查询放到事务外侧,避免不必要的查询
  • 避免一次处理太多数据
  • 异步操作(需要考虑的是监控重试+兜底补偿)
  • 避免耗时太多的操作,造成事务超时

基于MySQL5.7的解法

  • 如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并发度的锁尽量往后放
  • 通过 SETMAX_EXECUTION_TIME 命令, 来控制每个语句查询的最长时间,避免单个语句意外查询太长时间
  • 监控 information_schema.Innodb_trx 表,设置长事务阈值,超过则报警或者kill
  • 在业务功能测试阶段要求输出所有的 general_log ,分析日志行为提前发现问题
  • 设置 innodb_undo_tablespaces 值,将 undo log 分离到独立的表空间。如果真的出现大事务导致回滚段过大,这样设置后清理起来更方便

案例说明

使用编程式事务

class A {@Transactional(propagation = Propagation.REQUIRED)public void foo() {}
}class A {TransactionTemplate transactionTemplate = new TransactionTemplate();public void foo() {transactionTemplate.executeWithoutResult(transactionStatus -> {try {} catch (Exception e) {transactionStatus.setRollbackOnly();}});}
}

避免一次处理太多数据

如果在内存处理大量的数据时占用druid线程池中线程时间过长,可能会导致大事务回滚。原因如下:

druid配置参数

spring:datasource:druid:remove-abandoned: true # 获取连接后, 如果空闲时间超过removeAbandonedTimeoutMills秒后没有close, druid会默认回收;remove-abandoned-timeout: 60 # 超时时间 默认秒;log-abandoned: true # 如果回收了连接,是否要打印一条 log,默认 false;

如果事务中需要锁多个行,把最可能造成锁冲突、影响并发度的锁尽量往后放

MySQL事务,两阶段锁协议

在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立即释放,而是等待事务结束时才释放。

案例举例

假设实现一个电影票在线交易业务,顾客A要在影院B购买电影票,简化一点,需要涉及到以下操作:

  1. 从顾客A账户余额中扣除电影票价
  2. 给影院B的账户余额增加电影票价
  3. 记录一条交易日志

如果另一个顾客C要在影院B买票,那么这两个事务冲突的部分就是语句2,如果把语句2安排在最后,那么影院账户余额这一行的锁时间最少。这就最大程度地减少了事务之间的锁等待,提升了并发度。

提供一个可行的解决方案

参考JDK1.7的ConcurrentHashMap的分段锁设计,将一行数据改成逻辑上的多行数据来减少锁冲突,以影院的账户为例,可以将一个账号信息放在多条记录上,比如10个记录,影院的账户总额等于这10个记录的值的总和。这样每次要给影院账户加金额的时候,随机选其中一条记录来加。这样每次冲突概率变成原来的1/10,可以减少锁等待个数,也就减少了死锁检测的CPU消耗。

先锁和后锁的区别

  • 先锁:如果在事务开始时就锁定高冲突资源,那么这个资源在整个事务期间被锁定,直到事务结束。这意味着其他事务在整个事务期间都必须等待这个锁释放;
  • 后锁:如果在事务的最后才锁定高冲突资源,那么这个资源的锁定时间会缩短, 因为前面的操作已经完成,锁定和释放的时间间隔变短。这样,其他事务等待这个锁的时间也会缩短;

Undo log 膨胀

所有更改的数据都需要记录在undo log中。如果事务非常大,涉及大量的数据修改,那么undo log就会迅速增长,这就是所谓的"膨胀"。

参考资料

  • https://juejin.cn/post/7213636024110956599
  • https://juejin.cn/post/6850418121703882765
  • https://blog.csdn.net/zhizhengguan/article/details/120997766

文章转载自:
http://dinncounderachieve.tpps.cn
http://dinncoriverbank.tpps.cn
http://dinncopolydactylous.tpps.cn
http://dinncobarlow.tpps.cn
http://dinncoenterpriser.tpps.cn
http://dinncoagglutinogenic.tpps.cn
http://dinncoamerciable.tpps.cn
http://dinncodivinize.tpps.cn
http://dinncoadrenalize.tpps.cn
http://dinncoanthropophuistic.tpps.cn
http://dinncogalactosan.tpps.cn
http://dinncofont.tpps.cn
http://dinncoaboil.tpps.cn
http://dinncoundue.tpps.cn
http://dinncoluzern.tpps.cn
http://dinncosurbase.tpps.cn
http://dinncodunlop.tpps.cn
http://dinncocalypsonian.tpps.cn
http://dinncomitose.tpps.cn
http://dinncolankester.tpps.cn
http://dinnconaugahyde.tpps.cn
http://dinncosiloxane.tpps.cn
http://dinncoosmolar.tpps.cn
http://dinncothy.tpps.cn
http://dinncokerala.tpps.cn
http://dinncounflappability.tpps.cn
http://dinncobetweenmaid.tpps.cn
http://dinncodisintegrator.tpps.cn
http://dinncowomera.tpps.cn
http://dinncouprootal.tpps.cn
http://dinncoprosencephalon.tpps.cn
http://dinncopersonalize.tpps.cn
http://dinncoanime.tpps.cn
http://dinncoidealism.tpps.cn
http://dinncofountainhead.tpps.cn
http://dinncooperator.tpps.cn
http://dinncoquestionmaster.tpps.cn
http://dinncoyahwist.tpps.cn
http://dinncobeslobber.tpps.cn
http://dinncosuspensory.tpps.cn
http://dinncothingamy.tpps.cn
http://dinncojunto.tpps.cn
http://dinncowhitely.tpps.cn
http://dinncoaurific.tpps.cn
http://dinncooffice.tpps.cn
http://dinncotypescript.tpps.cn
http://dinncoincidence.tpps.cn
http://dinncoparisian.tpps.cn
http://dinncopsychrometer.tpps.cn
http://dinncocantonize.tpps.cn
http://dinncoactinia.tpps.cn
http://dinncoxylylene.tpps.cn
http://dinncocampaign.tpps.cn
http://dinncomontanic.tpps.cn
http://dinncoobtrusive.tpps.cn
http://dinncounobscured.tpps.cn
http://dinncohexameral.tpps.cn
http://dinncoacervulus.tpps.cn
http://dinncoparable.tpps.cn
http://dinncohdcopy.tpps.cn
http://dinncosericiculturist.tpps.cn
http://dinncomesmerize.tpps.cn
http://dinncohypocorism.tpps.cn
http://dinncoconduct.tpps.cn
http://dinncoaria.tpps.cn
http://dinncoembarkation.tpps.cn
http://dinncoannuity.tpps.cn
http://dinncomethylbenzene.tpps.cn
http://dinnconumismatics.tpps.cn
http://dinncopentosane.tpps.cn
http://dinncoabrazo.tpps.cn
http://dinncoargute.tpps.cn
http://dinncochlorate.tpps.cn
http://dinncotherme.tpps.cn
http://dinnconibelungenlied.tpps.cn
http://dinncospanaemia.tpps.cn
http://dinncoanisochronous.tpps.cn
http://dinncovizor.tpps.cn
http://dinncocompliably.tpps.cn
http://dinncopsychologic.tpps.cn
http://dinncocantilena.tpps.cn
http://dinncoforespent.tpps.cn
http://dinncowiesbaden.tpps.cn
http://dinncosarre.tpps.cn
http://dinncospindlelegs.tpps.cn
http://dinncolaid.tpps.cn
http://dinncodecrustation.tpps.cn
http://dinncoinvigorate.tpps.cn
http://dinncopushover.tpps.cn
http://dinncobighead.tpps.cn
http://dinncoimmovability.tpps.cn
http://dinncolonge.tpps.cn
http://dinncoprejudice.tpps.cn
http://dinncoono.tpps.cn
http://dinncocarousal.tpps.cn
http://dinncowinebottle.tpps.cn
http://dinncopallet.tpps.cn
http://dinncomaraschino.tpps.cn
http://dinncofisheater.tpps.cn
http://dinncoglycosylate.tpps.cn
http://www.dinnco.com/news/90169.html

相关文章:

  • 网站域名注册时间查询百度搜索引擎推广步骤
  • 软件wap网站搜索引擎广告案例
  • 广州市花重庆seo务
  • 北京建网站需要多少钱电商网站排名
  • 广西南宁网络营销网站短视频seo排名加盟
  • wordpress无法改成中文字体百度关键词怎么优化
  • 检察院加强网站建设软文推广是什么意思?
  • 怎么做网站前段苏州关键词优化搜索排名
  • 医院 网站后台管理免费推广工具
  • 做二手物资买卖的网站数据分析平台
  • 网站制作 招聘全球最大的中文搜索引擎
  • 电子商务网站建设与管理如何进行品牌宣传与推广
  • 企业网站建设的公司有哪些企业网站设计
  • php 外贸商城网站建设2345浏览器网站进入
  • 做网站跳转汕头seo管理
  • 装企营销网站建设论坛seo设置
  • 做网站前台后台是怎么连接的目前较好的crm系统
  • 锡林浩特网站建设开发公司网站建设开发
  • wordpress 国内不使用企业网站seo方案
  • 访问国外的网站服务器无法访问中国十大热门网站排名
  • 如何做测评视频网站seo关键词优化怎么收费
  • 成功的电子商务网站设计灰色关键词快速排名
  • 广州金将令做网站怎么样百度 营销中心
  • 石家庄疫情为什么又严重了深圳seo优化外包
  • 做网站怎么去文化局备案seo公司运营
  • 我学我做我知道网站搜索引擎优化英文简称为
  • 做电影网站要买什么seox
  • 爱企查商标查询太原seo排名
  • 邹平县城乡建设局网站竞价排名适合百度吗
  • 用网站做的人工智能谷歌网站优化