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

有哪些做农产品的网站制作图网官网在线制作

有哪些做农产品的网站,制作图网官网在线制作,网站建设的利润率多少,为什么要做营销型网站引言 一文带你搞懂Spring事务上篇文章介绍了Spring事务相关内容#xff0c;本文主要介绍业务开发中遇到的大事务问题。 https://github.com/WeiXiao-Hyy/blog 整理了Java,K8s,极客时间,设计模式等内容#xff0c;欢迎Star! 什么是大事务 运行时间#xff08;调用远程事务或…引言 一文带你搞懂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购买电影票简化一点需要涉及到以下操作 从顾客A账户余额中扣除电影票价给影院B的账户余额增加电影票价记录一条交易日志 如果另一个顾客C要在影院B买票,那么这两个事务冲突的部分就是语句2,如果把语句2安排在最后,那么影院账户余额这一行的锁时间最少。这就最大程度地减少了事务之间的锁等待提升了并发度。 提供一个可行的解决方案 参考JDK1.7的ConcurrentHashMap的分段锁设计将一行数据改成逻辑上的多行数据来减少锁冲突以影院的账户为例可以将一个账号信息放在多条记录上比如10个记录影院的账户总额等于这10个记录的值的总和。这样每次要给影院账户加金额的时候随机选其中一条记录来加。这样每次冲突概率变成原来的1/10可以减少锁等待个数也就减少了死锁检测的CPU消耗。 先锁和后锁的区别 先锁如果在事务开始时就锁定高冲突资源那么这个资源在整个事务期间被锁定直到事务结束。这意味着其他事务在整个事务期间都必须等待这个锁释放;后锁如果在事务的最后才锁定高冲突资源那么这个资源的锁定时间会缩短, 因为前面的操作已经完成锁定和释放的时间间隔变短。这样其他事务等待这个锁的时间也会缩短; Undo log 膨胀 所有更改的数据都需要记录在undo log中。如果事务非常大涉及大量的数据修改那么undo log就会迅速增长这就是所谓的膨胀。 参考资料 https://juejin.cn/post/7213636024110956599https://juejin.cn/post/6850418121703882765https://blog.csdn.net/zhizhengguan/article/details/120997766
http://www.hkea.cn/news/14297599/

相关文章:

  • 网站服务器安装教程视频图片展示类的wordpress主题
  • 用ps怎么做网站容县建设工程交易中心网站
  • 中小企业微网站建设怎么黑网站
  • 嵊州建设局网站马鞍山seo
  • 苏州做网站公司 速选苏州聚尚网络项目管理软件worktile
  • 建设银行网站ie11打不开网站建设风险管理计划
  • 网站做cdn网站建设 字体版权
  • 腾讯免费网站空间陇南建设网站
  • 网站开发框架的工具wordpress数据库名怎么修改
  • 德阳移动网站建设黑白高端大气网站设计工作室织梦dedecms模板
  • 九江市住房和城乡建设厅网站彩票网站怎么建设
  • 如何做好推广谷歌推广seo
  • 温江做网站公司企业建立一个网站步骤
  • ios移动网站开发详解投资公司经营范围
  • 网站如何做excel预览seo薪资seo
  • 网站的设计开发福州网站建设 联系yanktcn 05
  • 网站原创内容WordPress 黛米付
  • 网站变灰兼容代码建设工程施工合同网站
  • 摄影设计网站wordpress如何做优化
  • 企业网站建设组织人员可行性分析郑州仿站定制模板建站
  • 河北pc端网站开发比较出名的外贸公司有哪些
  • 建设智能网站设计师品牌推荐
  • 网站 设计 工具网站设计案例欣赏
  • wordpress设置网站关键字有项目没有钱怎么找投资人
  • 网站建设分金手指科捷13信阳做网站 汉狮网络
  • 太原铁路建设有限公司网站中国互联网中心官网
  • 手游传奇新开服网站网站开发的项目总结
  • 马格南摄影网站网站建设投标方案
  • it网站设计培训华建集团上海建筑设计研究院
  • 自己如何做棋牌网站龙湖什么网站做宣传