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

网站建设的具体代码三只松鼠网络营销案例分析

网站建设的具体代码,三只松鼠网络营销案例分析,南昌网站建设品牌,wordpress domain摘要 分布式事务主要包括2pc、3pc、消息事务。 2pc指两阶段提交: 第一阶段是准备阶段:所有事务参与者检查执行能力并锁定对应资源,准备完成后将状态告知协调者。第二集段是提交状态:事务参与者全部准备好后,协调者发…

摘要

分布式事务主要包括2pc、3pc、消息事务。

  • 2pc指两阶段提交:
    • 第一阶段是准备阶段:所有事务参与者检查执行能力并锁定对应资源,准备完成后将状态告知协调者。
    • 第二集段是提交状态:事务参与者全部准备好后,协调者发起提交请求,通知参与者提交事物。若存在参与者准备失败,则回滚。
  •   2pc的具体实现有AT、XA、TCC、Sata。
    
  • 3pc指事物分为3个阶段:
    • 第一阶段为尝试阶段:所有参与者检查自己是否有执行事物的能力,并将状态告知给协调者。
    • 第二阶段为准备阶段:协调者确认所有参与者均有执行事物的能力后,再发起请求,锁定资源;
    • 第三阶段为提交阶段:所有参与者锁定成功后,协调者发起提交请求,提交事物。
  •   3pc解决了2pc一阶段资源无效锁定的问题。
    
  • 消息事务是使用消息队列作为中间件实现的分布式事务。也分为两个阶段:
    • 第一阶段为半事务消息阶段:此时发起方发送半事务消息给消息队列。
    • 第二阶段为确认阶段:发起方执行本地事务完成后,确认半事务消息,此时下游消费者就可消费事物消息,并执行对应的事务了。
  •   消息事务是最终一致性方案。总之,分布式事务没有最好的方案,需要根据场景选择最合适的方案。
    

一、2PC(两阶段提交)

成员类型包括事务参与者和事务协调者,分为准备-提交/撤销两个阶段。

  1. 准备阶段:参与者锁定事务所需要执行的资源,并将成功或者失败状态返回给事务协调器;
  2. 提交/撤销阶段:事务协调器收到全部参与者的响应后,发起事务提交命令,然后,所有参会者提交事务;若存在参与者准备阶段失败,则发起撤销命令,所有参与者回滚。

缺点:

  1. 事务存在同步阻塞的问题;因为事务协调器需要等待全部参与者均返回响应后,才执行提交/回滚操作;
  2. 第一阶段锁定资源,可能会造成资源浪费;因为有些事务在大部分参与者上能执行,但在某个参与者上无法执行,会导致大部分参与者锁定资源,导致浪费。

1.1、XA

2PC的具体实现,利用数据库实现事务的提交和回滚。

  1. 准备阶段:参与者执行事务,但不提交;
  2. 提交/撤销阶段:协调者根据参与者执行状态,决定提交或者回滚。

缺点:拥有2PC的全部缺点。

1.2、AT

2PC的具体实现,准备阶段直接会提交事务,利用日志记录待操作的原始数据记录的镜像,利用镜像去执行撤销操作,相较于XA同步阻塞的时间更短了。

  1. 准备阶段:获取操作数据的全局锁,然后,参与者直接执行事务并提交,并将原数据记录已经执行后的结果存入日志;
  2. 确认/撤销阶段:如果存在参与者执行失败,就利用日志撤销其它参与者的执行结果。

1.3、TCC

2PC的具体实现,由业务代码实现资源锁定和事务的提交、回滚操作,分为Try-Confirm/Cancel。

  1. Try阶段:确认参与者执行能力,锁定资源;
  2. Confirm/Cancel阶段:当所有参与者第一阶段try成功,则执行confirm提交事务;若存在参与者try失败,就执行cancel回滚。

缺点:

  1. 在第二阶段会存在部分参与者confirm/cancel失败的情况,需要参与机制确保其至少执行一次。例如使用轮询加幂等性的方法。
  2. 空回滚问题:例如在第一阶段try时,由于网络问题参与者a未收到try请求,协调器会发生cancel命令,此时参与者a在未收到try时,就已经收到cancel了,造成空回滚。

1.4、saga

2pc具体实现,长事务的解决方案,和AT有点像,区别在于saga是通过执行补偿业务去完成回滚。

  1. 一阶段:执行事务并直接提交;
  2. 二阶段:当存在参与者执行失败,就通过对应的补偿业务,回滚所有执行过了的操作。

缺点:

  1. 存在脏写;
  2. 事务完成执行的时间不确定。

二、3PC(三阶段提交)

成员类型包括事务参与者和事务协调者,分为询问-准备-提交/撤销三个阶段;解决了2PC资源浪费的问题。

  1. 询问阶段(canCommit):不锁定资源,只检查参与者是否有执行事务的能力;
  2. 准备阶段:确认全部参与者均拥有事务执行能力,就锁定资源;
  3. 提交/撤销阶段:确认参与者全部就绪,就提交事务;若其中存在未就绪的,就回滚。

还是存在事务同步阻塞的问题。

三、消息队列式分布式事务

用消息队列去实现分布式事务。

  1. 一阶段:生产者发送半事务消息给消息队列;
  2. 二阶段:生产者执行本地事务,执行成功则发送半事务消息的”确认“,以使得半事务消息变为终态,下游消费者能够更加事务消息去执行对应的事务;若执行失败,则取消半事务消息。

缺点:

  1. 下游消费者的事务若无法执行,没办法回滚上游生产者的事务,从而导致数据状态不一致;
http://www.shuangfujiaoyu.com/news/21518.html

相关文章:

  • 一元云淘网站开发磁力岛
  • wordpress在线查询系统seo关键词排名优化官网
  • 如何建设微网站广东公共广告20120708
  • asp网站无法上传图片商品关键词怎么优化
  • 烟台高新区建设局网站优化的含义
  • 湖南省建设厅seo搜索优化工具
  • 电商平台定制指定关键词排名优化
  • j动态加载网站开发软文代写发布网络
  • 学校网站集约化建设搜索引擎seo优化
  • 安徽省六安市城乡建设厅网站新的网站怎么推广
  • 上海企业免费网站建设百度框架户一级代理商
  • 水利建设工程网站软文推广做得比较好的推广平台
  • 网站管理的内容郑州关键词优化平台
  • 隐藏网站的wordpress属性新型网络搜索引擎
  • 龙岗 网站建设重庆百度seo公司
  • 网站排名优化服务商上海网络推广公司
  • 域名没到期 网站打不开如何弄一个自己的网站
  • 招聘网站费用怎么做分录百度云登录
  • 勒流有做网站的吗最厉害的搜索引擎
  • 辽宁省政府网站集约化建设陕西seo关键词优化外包
  • 昆明做网站那家好近三天重大新闻摘抄
  • 做网站平台需要多少钱线上卖货平台有哪些
  • 网站规划模板下载国际大新闻最新消息
  • 传统企业网站建设手机打开国外网站app
  • 临沂做wish网站永久免费进销存管理软件手机版
  • 建设银行官方网站链接seo引擎优化
  • 教育行业网站怎么做百度推广一个月费用
  • 上海大型网站建设公司排名个人网站开发网
  • 网站建设维护方案360广告推广平台
  • 网站开发制作入什么科目郑州seo排名公司