事务——扫盲篇

一定要看的RocketMQ扫盲篇 MQ有什么用 解耦 我觉得从某种角度来说,微服务促进了MQ的蓬勃发展,本来一个系统有N多个模块,所有模块都强耦合在一起,现在微服务了,一个模块就是一个系统,系统之间肯定需要交互,交互有三种常见的方法,一种是RPC,一种是HTTP,一种就是MQ了。 给各位一个福利 免费领取Java架构技能地图 注意了是免费送 、 免费领取 要的+V 领取 异步 原本一个业务分为N步,要一步一步处理,才能把最终的结果返回给用户,现在有了MQ,先把最关键的部分处理完毕,然后发送消息... 阅读详情

前言:不论是学习还是工作中,事务都是一个重要的知识点。可以不记得事务的四大特性,但是脑子里必须清晰一个概念,事务是什么。

一、什么是事务?

事务(Transaction),一般是指要做的或所做的事情。要么不做,要么做完。

  1. 关系型数据库中,一个事务可以是一条SQl语句。
  2. 现实生活中,一个事务可以是一件完整的事。
  3. 软件开发中,一个事务可以是一段逻辑代码。

例:小张给小王转帐1000元。这应该是一件完整的事,这件事中有俩个关键的操作,小张的账户减少1000元,小王的账户增加1000元。如果在这之间出现了问题导致小张减少了1000元,而小王却没有收到钱,这就出错了。事务就是保证这两个关键操作要么都成功,要么都要失败。

二、事务的特性——ACID

1. A:Atomicity,原子性。事务的最小执行单位,不可分割,要么不做,要么做完。
2. C:Consistency,一致性。执行前后数据一致。
3. I :Isolation,隔离性。发生并发时,一个事务不会被其他事务影响。(划重点)
4. D:Durability,持久性。一个事务提交后,他的影响是持久的,不可回退的。

特性一定是在对事务有了清晰的理解之后在结合自己的认识去理解记忆,部分小伙伴为了记忆而记忆,只知道事务有四个特性,什么是事务却模糊不清,这样的记忆是没有灵魂的。

三、事务的使用

  1. 数据库:mysql中事务是自动提交的,oracle中当写完一条sql时,可以使用commit提交事务(事情完成),或者使用rollback回滚(事情没做)。
  2. Spring: @Transactional注解配合其属性来控制事务

有感而发

编程其实就是一个出现问题---->解决问题---->出现问题---->解决问题的循环,永远不会存在没有问题的时候,如果你觉着你写的程序已经完美,那么肯定是没有发现问题。 同样的一个方法,当我觉着它耗时一秒已经完美的时候,有些人却在纠结为啥它耗了10毫秒!!!惹不起!!!~~

四、并发事务带来的问题

  1. 脏读:一个事务对某数据10修改为20还没提交,另一个事务读取到了修改后的数据20。
  2. 丢失修改:一个事务读到某数据10时,另一个数据也读取了这个数据10,第一个事务将其+1,另一个事务也对其+1,结果为11,丢失了一次+1修改。
  3. 不可重复读:一个事务读取了某数据10俩次,第一次读取到10后另一个事务将其改为了20,第一个事务第二次读取到20,出现了一个事务读取同一个数据出现不一样的值。
  4. 幻读(虚读):一个事务读取某数据俩次,第一次读取获取到俩行数据10|20,这时另一个事务添加了一行30,第一个事务第二次读取时获取到10|20|30。

五、事务的隔离级别

隔离级别由低到高,用来解决👆的问题。

  • READ UNCOMMITTED:读未提交。
  • READ COMMITTED:读提交。
  • REPEATABLE READ:可重复度。
  • SERIALIZABLE:可串行化。
隔离级别脏读不可重复读幻读
READ UNCOMMITTED✔️✔️✔️
READ COMMITTED✘✔️✔️
READ COMMITTED✘✘✔️
READ COMMITTED✘✘✘

小知识:

  1. MySQL中InnoDB 存储引擎的默认支持的隔离级别是 READ REPEATABLE(可重读)。
  2. Oracle数据库支持READ COMMITTED 和 SERIALIZABLE这两种事务隔离级别。
  3. Oracle默认系统事务隔离级别是READ COMMITTED(读提交)。
RocketMQ扫盲篇 本篇博客主要参考: 《浅入浅出》-RocketMQ 敖丙 APACHE-RocketMQ Gitee RocketMQ官方文档 RocketMQ 实战与进阶 GitChat 又是好久没有写博客了,虽然可以找出无数个没有写的博客的理由,但是说到底,还是一个字“懒”。今天我终于吃了一颗治疗懒癌的药丸,决定写一篇博客。介绍什么好呢,思来想去,还是介绍下RocketMQ吧,毕竟写了30多篇博客,还没有好好写过关于MQ的博客呢。本篇博客比较基础,不涉及到源码分析,只是扫盲。 MQ有什么用 解耦 我觉得从某种角度来 阅读详情

相关推荐

PCIe扫盲(五)

中采用边带信号,这些边带信号的主要功能是中断,错误报告和电源管理等。的限制),但是返回的总的数据量应当与请求的数据量保持一致,否则可能会出现。中没有任何一位是有效的,也是允许的,但是这样的请求对于。时,应注意先发送的时低地址的数据,后发送高地址数据。的大小并不是有效的数据的大小,有效数据的大小是由。可以响应该请求,但是却发生了其他的错误,该错误是。,只是其中的数据都是无效的。,但是并不是所有的空间都被利用上了,例如有的。),但是早期的 PCI 并不支持这一功能,时,都会被认为是非法的,并被认为是。

Liuqz2009的专栏 2300

分布式系列:分布式系统之ACID和BASE理论

之前我们在《分布式系统之聊聊CAP理论》文中介绍了分布式系统的CAP理论,在实际场景下,一般P是肯定存在的,因此分布式策略一般就是变成了CP和AP选择。那么ACID和BASE理论又是什么呢? ACID由原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)组成。ACID理论是对事务特性的抽象和总结,一般可用理解为实现了ACID就实现了事务。分布式事务就是对某个操作要么所有节点都成功,要么失败。不允许存在部分成功、部分失败。常用的分布式事务

yishuihan的博客 2517

Codex VS Claude Code 全面测评!代码开发到底选谁?

评测结果6项指标(设计质量、提示遵从度、响应式、代码质量、细节关注、惊喜度)虽未公布最终赢家,但实测本身已揭示两工具在前端任务上的直接差异。Codex基于OpenAI的云沙箱架构,API通过全球CDN分发,但在国内直连时,依赖特定网络环境。:纯终端工具,直接在你的iTerm或终端中运行,不新建窗口、不切换上下文,与本地开发环境无缝融合。GPT-5.3 Codex(xhigh)输入$1.75/百万token,输出$14.00/百万token,混合均价约**$4.81/百万token**。

Jedudu的博客 3089

分布式学习(三)——ACID原理与BASE理论

解决了CAP提出的分布式系统的一致性和可用性不可兼得的问题;它满足CAP原理,通过牺牲强一致性获得可用性。 BASE理论三元素 BA:Basically Available,基本可用。可损失部分可用,保证核心可用。 S:Soft State,软状态。允许系统中数据存在中间状态,状态可以在一段时间内不同步。 E:Eventual Consistent。最终一致,在一定时间内,最终数据达成一致。 http://gaosboy.com/2010/01/16/eventuall

Gavin_Java_的博客 2037

用ST25DV芯片+KiCad快速设计NFC标签天线:参数计算/脚本生成/实测优化全流程

本文详细介绍了使用ST25DV芯片和KiCad工具设计NFC标签天线的全流程,包括参数计算、脚本生成和实测优化。通过解析芯片等效工作原理和设计思路,帮助开发者避开常见陷阱,实现高效、可量产的天线设计。文章还提供了Python计算工具和KiCad自动化脚本,大幅提升设计效率和成功率。

jj890的博客 758

从零搭建企业级AI网关:基于LiteLLM的安全防护体系设计

本文详细介绍了如何从零搭建企业级AI网关,基于LiteLLM构建全面的安全防护体系。内容涵盖分层防御架构、敏感数据处理、合规性配置与审计追踪,以及生产环境部署策略,助力企业安全高效地集成LLM技术,确保数据安全和合规性。

qq_27496129的博客 1292

分布式理论之事务 - 酸(ACID)碱(BASE)理论

基本可用)分布式系统在出现不可预知故障的时候,允许损失部分可用性。Soft state软状态)软状态也称为弱状态,和硬状态相对,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。最终一致性)最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

流华追梦的专栏 1122

C#调用Halcon程序三种方法

C#调用Halcon程序三种方法 1.halcon导出C#文件,在C#里面调用 2.在C#里面使用Halcon引擎调用Halcon程序 3.在C#里面使用Halcon引擎调用.hdev下本地函数或者.hdvp外部函数 Halcon引擎手册:C:/Program Files/MVTec/HALCON-21.11-Progress/doc_en_US/html/manuals/programmers_guide/programmers_guide_0120.html 1.导出C#(代码我只给出类,需要调用)

A541925504的博客 1万+

分布式协议与算法——CAP理论、ACID理论、BASE理论

实际上,绝大部分场景对一致性要求没那么高,短暂的不一致是能接受的,另外,也基于可用性和并发性能的考虑,在开发实现分布式系统,如果不是必须,尽量不要实现事务,可以考虑采用最终一致性。首先节点A按照要么全部执行,要么全部放弃的原则,统计回复结果,由于所有的回复结果都是能够执行,所以节点A决定执行分布式事务操作X。为了实现一致性,确认操作和补偿操作必须是幂等的。TCC不依赖于数据库的事务(2pc应该是要依赖的),而是在业务中实现了分布式事务,这能减轻数据库的压力,但对业务代码的入侵性比较高,实现比较复杂。

tcn760的博客 1870

GEE入门之路(从【初学者】角度,大白话)——附海面风速插值代码

非常初级的GEE入门教程!大白话!有手就行!附海面风速插值代码,克里金插值,时间插值。

weixin_46812066的博客 4087

股票证券交易系统架构分析与设计

根据之前参与了一个国家级证券交易所新一代交易系统的经历,画了一个交易所基本架构图,如下: 名词解释: 0. STEP协议是什么? STEP: Securities Trading ExchangeProtocol,是中国金融行业数据通信标准JR/T0022-2004,目前被深圳交易所采用,作为LeveII数据向信息服务商分发的数据的标准协议。 其实,这个交易所支持多种证券交易协...

weixin_38168484的博客 5131

深入浅出之ADown降采样模块(YOLO)

YOLOv9中的ADown模块是一种用于目标检测任务中的下采样操作的卷积块。在深度学习模型中,下采样(downsampling)是减少特征图空间维度的常用技术,它有助于模型在更高层次上捕捉图像的特征,同时减少计算量。ADown模块的设计旨在以一种高效且对性能影响较小的方式进行这一操作。

浩瀚之水的专栏 4179

【Hibernate教程】事务、并发及缓存管理之扫盲篇

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

a1901149的博客 857

SPAD IMX479规格_VOP

对于VOP的定义,很多人可能是不理解这一路的供电,实际上这一路供电是非常重要的,这是给器件SPAD供电,决定SPAD是否work,在大部分的paper以及大部分公司,基本都是叫VOP,名称是SPAD breakdown voltage power supply,严格意义上叫Operating Voltage,工作电压。当然有些公司也有一些其他叫法就不提了。其实大家可以明显的看出,典型值-20.5没有发生变化,市面上绝大多数VOP的典型值也都是在-20V这边。

致力于lidar应用开发 702

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式

该篇04是速成系列的完结篇,主要对redis一些重要概念进行扫盲性认知,如事务、持久化、主从复制、哨兵模式。 道阻且长,学完这4篇只能称得上是刚入门redis。剩下还有很多路要走。

weixin_71246590的博客 1776

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

PCIe扫盲系列博文连载目录篇

本文为PCIe扫盲系列博文连载目录篇(第一阶段),所谓第一阶段就是说后面还有第二阶段和第三阶段……第一阶段主要是介绍PCIe总线的发展历史与展望,PCI总线和PCI-X总线的简要回顾,PCIe总线的体系结构入门,PCIe总线的事务层、数据链路层,物理层入门;最后以一个简单的例子进行总结与回顾。目录如下:1、前言篇:PCIe扫盲——PCIe简介:http://blog.chinaaet.com/justlxy/p/5100053066 2、PCIe扫盲——PCI总线基...

腾 °云的博客 475

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PCIe扫盲系列博文连载目录篇(第二阶段)

4、PCIe扫盲——Memory & IO 地址空间:http://blog.chinaaet.com/justlxy/p/5100053319。5、PCIe扫盲——基地址寄存器(BAR)详解:http://blog.chinaaet.com/justlxy/p/5100053320。7、PCIe扫盲——TLP路由基础:http://blog.chinaaet.com/justlxy/p/5100053323。

holly的专栏 76

PCIe扫盲系列博文连载目录篇(第一阶段)

13、PCIe扫盲——PCIe总线体系结构入门:http://blog.chinaaet.com/justlxy/p/5100053246。18、PCIe扫盲——PCIe总线物理层入门:http://blog.chinaaet.com/justlxy/p/5100053261。11、PCIe扫盲——PCIe总线基本概念:http://blog.chinaaet.com/justlxy/p/5100053225。

holly的专栏 199
上一篇: 多线程学习——入门篇
下一篇: Java - I/O
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值