事务和数据库有关系吗?_惠州数据库培训
作者:黄君发布时间:2020-12-08分类:计算机教程浏览:992
导读:不知道你是否遇到这样的场景,去小卖铺买东西,付了钱,但店主突然有事情需要去处理,等处理回来之后给到你的货物与你最开始想要买的不一致,或许多了,或许少了,或许拿错了,甚至是间歇性失忆忘记你曾经付过钱反而要求你重新付钱了。
不知道你是否遇到这样的场景,去小卖铺买东西,付了钱,但店主突然有事情需要去处理,等处理回来之后给到你的货物与你最开始想要买的不一致,或许多了,或许少了,或许拿错了,甚至是间歇性失忆忘记你曾经付过钱反而要求你重新付钱了。
又或是在线购物时,付款成功后可以增加积分,但是个人积分却没有任何变动,或者是明明成功付款了,过一会儿店小二联系你说没有库存了希望你能申请下退款。这所有的事情总结起来就是某个操作的期望与实际不一致,而这背后的原因就是没有事务。
那么事务是什么呢?事务是一种工作机制,它把一个活动所涉及的其他所有操作都放入一个不可分割的执行单元,只有所有的操作都执行成功,事务才算完成,否则整个事务就不成功,回到原始状态。
有了事务,你去小卖铺买东西的时候,你付钱、店主给你对应的货品、店主减掉库存这三个操作都完成后,整个买东西的操作才算完成,如果你没有付钱或者店主没有给到你对应的货品,那么这个事务就算是执行失败,就会回到最初的状态,钱还是你的钱,货还是商家的货,不增不减。
事务主要使用在数据库场合,有本地事务、分布式事务两种业态。
对于数据库本地事务来说,这个很好理解,因为涉及数据的内容都会存在数据库里,而数据改动中最重要的就是对金钱财产有改动的内容,需要通过事务去,不然你付了钱,却不给你发货,你是不是要去找卖家申诉,而平台老出问题,卖家是不是要去找平台申诉,环环相扣,最终会影响一大波人,因此事务是非常重要的。
对于分布式事务,这个主要是由于分布式架构、微服务的出现产生的,分布式事务的一致性也同等重要。
数库事务最重要的特点就是ACID,即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。所谓原子性就是事务中所涉及的所有操作,是一个最小的不可分割的,要么全部完成,要么全部不完成,如果事务在执行过程中发生错误,则回滚到事务开始前的状态,就像你买东西一样,要么交钱收货一起完成,否则就不给钱或不发货。
所谓一致性就是事务在执行前后数据库内容要一致,就像你买东西一样,买之前商家的售货额与商品库存分别是100、1000,在你买之前,所有的人来买东西时商家的售货额和库存均是100、1000,你花了50块钱成功买了100件物品,那么商家的售货额与库存变为150、900,所有的人来买东西时商家的售货额和库存均是150、900,商家的个人数据库始终一致。
所谓隔离性就是在并发环境中,不同的食物操作相同的数据时,每个事务独立执行,互不影响,就像你去小卖铺买东西,并不影响其它人也来小卖铺买东西,但是你买货结账时的售货额和库存一定是个确定值,不会看到中间态。所谓持久性是指只要事务成功结束,那么数据库会更新记录,即使发生系统崩溃、重启数据库系统后,数据库也还能恢复到事务成功结束时的状态,就像你去小卖铺买东西,所有的交易记录老板都记录在账本上,即使老板忘记了也还可以查帐本。
随着互联网用户和流量的剧增,业务架构模式开始拆分成微服务、业务部署模式变为分布式。
所谓微服务架构就是把原来一体化的应用拆分成能独立完成功能的原子化模块,比如电商系统服务可拆分成用户管理微服务、商品管理微服务、订单管理微服务、库存管理微服务、交易管理微服务等模块,原先在一套系统内可以完成的付款、减库存、加订单的事务操作现在要分散在交易管理、订单管理、库存管理三个子模块完成,本地事务变成分布式事务。所谓分布式部署则是为了容灾与高可用,将重要的、最常用的服务多个节点部署,无论何时服务都能正常响应,比如将电商系统服务中的商品管理在北京、上海、杭州、深圳都部署一套,订单管理、库存管理、交易管理等部署杭州,当用户在北京发生一笔交易时,需要杭州的服务与北京的服务通信,共同完成任务,从而本地事务变成分布式事务。
分布式事务的产生是必然,那么又如何分布式事务的一致性呢?业内的解法有CAP理论、BASE理论,CAP理论即一致性Consistency、可用性Availability、分区容错性Partitiontolerance三者不能共存,要么系统的可用性AP、要么系统的一致性CP。
这是因为CAP是在分布式部署、微服务架构的情况下提出来的,所以分区一定存在,如果为了数据的一致性,那么当用户在北京服务节点发生交易时,杭州的服务节点就不能使用,得等到整个交易完成了才能进行,这时候就出现了可用性缺失,如果为了系统的可用性,用户在北京服务节点的交易和杭州服务节点的数据因为存在数据传输延迟,数据必然会不一致,所以一致性和可用性只能二选一。
对于电商平台来说,因为覆盖的用户广,无论如何都要业务随时可用,对于数据的准确性可以接受一定的错误,而对于交易系统来说,涉及到用户财产,那是一分一毫都不能少,所以数据的一致性非常重要。
BASE理论即基本可用BasicallyAvailable、软状态SoftState、最终一致性EventuallyConsistent,是对于CAP定论中的AP的扩展。所谓基本可用是指分布式系统在出现故障时,允许部分非核心业务功能不可用,核心功能可用。所谓软状态是指分布式系统中允许存在中间状态,允许部分出错。所谓最终一致是指经过一段时间后,所有分布式节点数据达到一致。
分布式事务是在互联网的飞速发展下应运而生。在我们的业务系统中究竟采取本地事务还是分布式事务应当视具体情况而定,不能为了分布式而分布式。如果真的必须分布式,那么需要结合自己的业务类型选择合适的模式,可用性、强一致性、最终一致性都是可行解。
相关推荐
- 转职Web前端开发要具备哪些技术?_惠州前端培训学校
- 转行Web前端开发要掌握哪些技术?_惠州前端培训学校
- 如何学习Web前端知识转型?_惠州前端培训学校
- Web前端工程师必须具备哪些JS技巧?_惠州前端培训学校
- Web前端开发|怎么封装几个Vue3中很有用的组合式API?_惠州前端培训学校
- Web前端开发如何使用JS中的arguments?_惠州前端培训学校
- Web前端开发如何在TypeScript中使用基本类型?_惠州前端培训学校
- 优秀Web前端开发工程师必须具备哪些技能?_惠州前端培训学校
- Web前端开发|GraphQL是什么?_惠州前端培训学校
- Web前端工程师要学会哪些技能?_惠州前端培训学校
- 计算机教程排行
-
- 1汕头信息:“公共就业服务进校园”粤东专场在汕头大学举行|||计算机网络培训学校
- 2江门信息:构建和谐劳动关系优化提升营商环境江门市开展推进新时代和谐劳动关系创建活动|||广州学电脑培训学校
- 3汕头信息:2024年广东省公共就业服务进校园粤东片区专场活动诚邀各用人单位参会|||广州计算机编程培训
- 4广州中考成绩公布,高中阶段学校录取控制分数线公布,普高最低控制线502分
- 5清远信息:校企双向奔赴清远市人社部门携企赴省内外高校招才引智|||广州计算机编程培训
- 6江门信息:工伤保险缴费误区:最低工资非缴费基准,违规用人单位将面临法律风险!|||计算机软件培训学校
- 7惠州信息:2024年第一季度惠州人力资源市场供求情况|||北大青鸟计算机培训中心
- 8惠州信息:“惠州市就业驿站巡礼”之惠阳新圩站|||大学生计算机培训学校
- 9汕尾信息:世界技能大赛获奖选手全省巡回宣讲交流活动走进汕尾|||电脑计算机编程培训学校
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训