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

微信网站如何做王烨超

微信网站如何做,王烨超,电影html网页模板设计素材,网页制作需要会哪些什么是seata Seata是一个开源的分布式事务解决方案#xff0c;旨在简化分布式事务的实现。它提供了一种简单而强大的方式来管理分布式事务#xff0c;在分布式应用程序中保持数据的一致性和可靠性。 在传统的单体应用程序中#xff0c;数据库事务可以很容易地实现。但是…什么是seata      Seata是一个开源的分布式事务解决方案旨在简化分布式事务的实现。它提供了一种简单而强大的方式来管理分布式事务在分布式应用程序中保持数据的一致性和可靠性。 在传统的单体应用程序中数据库事务可以很容易地实现。但是在分布式系统中事务管理可以变得更加复杂。分布式事务要求跨多个服务协调和管理事务操作确保所有参与者的操作要么全部成功要么全部回滚以保持一致性。 Seata采用了一种两阶段提交2PC的协议来实现分布式事务。它包含三个核心组件事务协调器Transaction CoordinatorTC、事务管理器Transaction ManagerTM和资源管理器Resource ManagerRM。 事务协调器TC:负责协调和管理分布式事务的执行。事务管理器TM是分布式事务的入口点负责事务的发起和提交。 资源管理器RM:管理着事务涉及的所有资源包括数据库、消息队列、缓存等。 为什么需要seata Seata 是一种分布式事务解决方案它用于解决分布式系统中的事务一致性问题。在分布式系统中由于数据分散在不同的节点上当一个业务操作需要跨多个节点时需要保证这些节点上的数据操作要么全部成功要么全部回滚以保持数据的一致性。 使用 Seata 可以带来以下好处 保持数据的一致性Seata 提供了分布式事务管理的机制能够确保跨多个节点的数据操作要么全部成功要么全部回滚保持数据的一致性。 提高系统性能Seata 通过优化事务提交和回滚的过程减少了分布式事务的开销提高了系统的性能。 提供强一致性和高可用性Seata 使用了一套高效的协调机制能够在分布式环境下提供强一致性和高可用性的服务。 简化开发和维护Seata 提供了一套简单易用的 API开发人员可以很方便地在现有的业务系统中集成分布式事务管理功能减少了开发和维护的复杂性。 分布式事务和Spring声明式事务的主要区别      分布式事务是指跨多个数据源或服务的事务操作通常涉及多个数据库或多个微服务的操作。与单个数据库的事务不同分布式事务需要在多个参与方之间保持数据的一致性和完整性。而Spring声明式事务只针对单个数据库的事务操作。 在分布式系统中每个项目通常都会有自己的数据库事务但是当多个项目需要进行跨多个数据库或服务的事务操作时就需要引入分布式事务框架如Seata。Seata是一个开源的分布式事务解决方案可以提供分布式事务的管理和控制保证数据的一致性和完整性。 通过Seata可以在多个参与方之间进行协调和同步实现分布式事务的操作。Seata采用了两阶段提交的方式来保证分布式事务的一致性第一阶段为事务的准备阶段各个参与方会执行本地事务并将事务的执行结果提交给Seata第二阶段为事务的提交阶段Seata会根据各个参与方的提交结果来进行最终的事务提交或回滚。 Seata的构成  Seata的主要构成包括 事务协调器TC事务协调器是Seata的核心组件负责协调全局事务的提交和回滚。它通过与业务逻辑代码进行交互收集各个分支事务的执行结果并在所有分支事务执行成功时提交全局事务任何分支事务执行失败时回滚全局事务。 事务管理器TM事务管理器负责全局事务的开启、提交和回滚。在Seata中每个微服务都会有一个事务管理器它通过与事务协调器交互实现全局事务的控制。 资源管理器RM资源管理器负责管理分支事务的提交和回滚。在Seata中每个微服务都会有一个资源管理器它与事务协调器和事务管理器通信协调分支事务的执行和结果反馈。 事务日志存储Storage事务日志存储模块负责存储事务的相关日志信息。Seata支持多种事务日志存储方案包括数据库存储、文件存储等。事务日志存储模块提供了事务日志的写入和读取接口用于支持事务的持久化和恢复。 全局事务ID生成器AT全局事务ID生成器负责生成全局唯一的事务ID。每个全局事务在启动时都会被分配一个唯一的事务ID用于标识该事务的执行过程。 注册中心Registry注册中心负责管理Seata的各个组件的注册和发现。它提供了服务注册和发现的功能使得各个组件能够找到对应的服务进行通信。 Seata的运行原理 Seata的运行原理可以分为三个关键步骤全局事务的发起、全局事务的提交与回滚、分支事务的提交与回滚。 全局事务的发起 当一个业务需要跨多个服务进行数据更新时首先需要创建一个全局事务。发起者通常是客户端或者服务端向Seata发起请求Seata为该请求生成一个唯一的全局事务ID并将该ID与该请求绑定。全局事务ID被传递到所有涉及的服务中以保证这些服务在执行业务操作时都能够参与到该全局事务中。 全局事务的提交与回滚 在全局事务内每个参与者都是一个分支事务的发起者。当每个参与者需要对数据进行更新时它们会向Seata发起请求Seata为该请求生成一个唯一的分支事务ID并将该ID与全局事务ID进行关联。参与者执行实际的业务操作并将分支事务ID和操作结果返回给Seata。当所有参与者都完成了业务操作后全局事务的提交或者回滚就会被触发。 分支事务的提交与回滚 当全局事务被提交时Seata会向每个参与者发送提交请求。参与者根据传递的分支事务ID执行相应的提交操作。如果全局事务被回滚Seata会向每个参与者发送回滚请求参与者根据传递的分支事务ID执行相应的回滚操作。这样全局事务的状态就能够被正确地更新。 此外Seata还提供了分布式事务恢复的机制。当系统发生异常情况导致分布式事务未能正常完成时Seata会通过日志进行重试和恢复操作确保事务的正确性。 AT模式为例讲解原理 当account操作失败时,要让已经操作完成的order撤销操作也要让stroage撤销操作 AT模式运行过程 1.事务的发起方(TM)会向事务协调器(TC)申请一个全局事务id,并保存 2.Seata会管理事务中所有相关的参与方的数据源,将数据操作之前和之后的镜像都保存在undo_log表中,这个表是seata框架规定的,方便提交(commit)或回滚(roll back) 3.事务的发起方(TM)会连同全局id一起通过远程调用运行资源管理器(RM)中的方法 4.资源管理器(RM)接收到全局id,并运行指定的方法,将运行的状态同步到事务协调器(TC) 5.如果运行整体没有发生异常,发起方(TM)会通过事务协调器通知所有分支,将本次事务所有对数据库的影响真正生效, 如果任何一个参与者发生异常,那么都会通知事务协调器,再由事务协调器通知有分支,根据undo_log表中保存的信息,撤销(回滚)即将正式影响数据库的数据 Seata的其余三种TCC、SAGA 和 XA 事务模式 下面逐一进行详细解释与说明 TCCTry-Confirm-Cancel TCC事务模式是一种基于业务逻辑的分布式事务模式。它将一个复杂的业务操作分解为三个阶段尝试Try、确认Confirm和取消Cancel。 尝试阶段在该阶段将检查各种前提条件是否满足如果满足就执行业务操作并进行预留资源的操作。如果不满足就返回失败。确认阶段在该阶段确认操作将会提交所占用的资源。取消阶段在该阶段取消操作将会回滚之前的操作。 TCC事务模式的主要应用场景是业务逻辑比较复杂、不适合使用XA或SAGA事务模式的情况。它的作用是通过将一个大事务拆解为多个小事务增加了事务的可控性并且可以保证数据的最终一致性。 SAGASaga Pattern SAGA事务模式是一种基于事件驱动的分布式事务模式。它将一个长时间或连贯性操作分解为多个独立的阶段也称为saga片段每个saga片段都可以独立执行和回滚。 每个saga片段都定义了一组本地操作和补偿操作用于实现数据的一致性和回滚。当一个saga片段执行成功后会发布一个事件来触发下一个saga片段的执行。当发生错误或需要回滚时可以通过执行补偿操作来撤销前面的操作。 SAGA事务模式适用于长时间执行和具有连续性操作的业务场景。它的作用是通过将一个大的操作拆解为多个独立的片段并通过事件驱动的方式实现数据的一致性。 XAeXtended Architecture XA事务模式是一种基于两阶段提交的分布式事务模式。它是通过协调器Coordinator和参与者Participant之间的协作来实现分布式事务的提交和回滚。 在第一阶段协调器会向所有参与者发送事务准备请求并等待参与者的回应。如果所有参与者都准备好了协调器就进入第二阶段。在第二阶段协调器会向所有参与者发送事务提交请求或回滚请求。参与者会根据请求进行相应的操作并向协调器发送完成消息。 XA事务模式适用于需要强一致性的分布式系统场景但它对数据库和中间件的支持要求较高并且在性能方面存在一定的开销。 总结 TCC事务模式适用于业务逻辑较为复杂的场景通过拆分为多个小事务来实现数据一致性。SAGA事务模式适用于长时间执行和连贯性操作的场景通过事件驱动的方式实现数据一致性。XA事务模式适用于需要强一致性的场景但对数据库和中间件的支持要求较高。 seata的四种事物模式对比             XA                 AT               TCC                SAGA一致性强一致弱一致弱一致最终一致隔离性 完全隔离基于全局锁隔离基于资源预留隔离无隔离代码侵入无无有有性能差好很好很好场景对一致性、隔离性有高要求的业务基于关系型数据库的大多数分布式事务场景都可以对性能要求较高的事务有非关系型数据库要参与的事务业务流程长、业务流程多参与者包含其它公司或遗留系统服务无法提供 TCC模式要求的三个接口 Seata下载 https://github.com/seata/seata/releases https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.zip seata的使用 1.添加依赖 dependencygroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactId/dependency 2.配置yml文件 seata:tx-service-group: csmall_group # 分组service:vgroup-mapping:csmall_group: default # 默认at模式grouplist:default: localhost:9090 3.使用 在需要进行分布式事务的方法上加上 GlobalTransactional 注解比如 Service public class OrderService {GlobalTransactionalpublic void createOrder(Order order) {// TODO: 创建订单的业务逻辑// 调用其他微服务的业务逻辑productService.reduceStock(order.getProductId(), order.getQuantity());inventoryService.reduceInventory(order.getProductId(), order.getQuantity());}} 在调用其他微服务的方法上加上 GlobalLock 注解确保在分布式事务期间不会有并发问题比如 Service public class ProductService {GlobalLockpublic void reduceStock(Long productId, Integer quantity) {// TODO: 减少商品库存的业务逻辑}} 最后是启动
http://www.zqtcl.cn/news/955353/

相关文章:

  • 网站开发比较厉害推荐一本学做网站的书
  • 贵州网站外包wordpress在后台修改绑定域名
  • 搜狗提交网站收录入口wordpress centos查看目录
  • 电力建设科学技术进步申报网站买机票便宜网站建设
  • 黄冈网站建设优化排名网站开发运作
  • 怎么把网站链接做二维码app跟网站的区别是什么
  • 南通住房和城乡建设局网站wordpress exif
  • 在谷歌上做网站广告要多少钱萍乡网站开发
  • 资源站 wordpress仙游县住房和城乡建设局网站
  • 锦州做网站公司北京互联网公司名单
  • 免费英文 网站模板公司做网站多少钱乐器
  • 软文营销推广成都seo正规优化
  • soho建设外贸网站怎样取消网站备案
  • 建设部网站实名制举报wordpress.org去掉
  • 网站地址ip域名查询公司网站建设安全的风险
  • 盐城建设厅网站设计备案网站创建服务
  • wp如何做双语网站个人网站首页内容
  • 网络推广网站排行榜百度怎么搜索网址打开网页
  • 网站制作和如何推广深圳西乡
  • 男生女生做污事网站免费西安企业展厅设计公司
  • 做网络写手最好进那个网站网页建站需要多少钱
  • 网站打开不对摄影设计说明200字
  • 无锡网站制作公司排名网站开发与应用 大作业作业
  • 网站建设中搜索引擎wordpress 不在首页显示文章
  • 先做网站先备案嘉兴网站建设推广
  • 建设法律法规文本查询网站Html手机浏览网站变形
  • 怎么拥有个人网站wordpress做的网站
  • wordpress建什么站江苏网站建设效果
  • 建设网站网站多少钱东莞网站建设 光龙
  • 天津和平做网站哪家好搞笑网站建设目的和意义