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

北京怀柔做网站管理运营的公司网站建站教程

北京怀柔做网站管理运营的公司,网站建站教程,内丘网站建设案例,什么做网站做个网站一般要多少钱啊目录 1.分布式事务问题 1.1本地事务 1.2分布式事务 2.理论基础 2.1CAP定理 2.1.1一致性 2.1.2可用性 2.1.3分区容错 2.1.4矛盾 2.2BASE理论 2.3解决分布式事务的思路 1.分布式事务问题 1.1本地事务 本地事务,也就是传统的单机事务。在传统数据库事务中…

目录

1.分布式事务问题

1.1本地事务

1.2分布式事务

2.理论基础

2.1CAP定理

2.1.1一致性

2.1.2可用性

2.1.3分区容错

2.1.4矛盾

2.2BASE理论

2.3解决分布式事务的思路

1.分布式事务问题

1.1本地事务

本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:

1.2分布式事务

分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如:

  • 跨数据源的分布式事务

  • 跨服务的分布式事务

  • 综合情况

在数据库水平拆分、服务垂直拆分之后,一个业务操作通常要跨多个数据库、服务才能完成。例如电商行业中比较常见的下单付款案例,包括下面几个行为:

  • 创建新订单

  • 扣减商品库存

  • 从用户账户余额扣除金额

完成上面的操作需要访问三个不同的微服务和三个不同的数据库。

订单的创建、库存的扣减、账户扣款在每一个服务和数据库内是一个本地事务,可以保证ACID原

则。

但是当我们把三件事情看做一个"业务",要满足保证“业务”的原子性,要么所有操作全部成功,要

么全部失败,不允许出现部分成功部分失败的现象,这就是分布式系统下的事务了。

此时ACID难以满足,这是分布式事务要解决的问题

1.3演示分布式事务问题

我们通过一个案例来演示分布式事务的问题:

1)创建数据库,名为seata_demo,然后导入课前资料提供的SQL文件:

2)导入课前资料提供的微服务:

微服务结构如下:

其中:

seata-demo:父工程,负责管理项目依赖

  • account-service:账户服务,负责管理用户的资金账户。提供扣减余额的接口

  • storage-service:库存服务,负责管理商品库存。提供扣减库存的接口

  • order-service:订单服务,负责管理订单。创建订单时,需要调用account-service和storage-service

3)启动nacos、所有微服务

4)测试下单功能,发出Post请求:

请求如下:

curl --location --request POST 'http://localhost:8082/order?userId=user202103032042012&commodityCode=100202003032041&count=20&money=200'

如图:

测试发现,当库存不足时,如果余额已经扣减,并不会回滚,出现了分布式事务问题。

2.理论基础

解决分布式事务问题,需要一些分布式系统的基础知识作为理论指导。

2.1CAP定理

1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。

  • Consistency(一致性)

  • Availability(可用性)

  • Partition tolerance (分区容错性)

 

它们的第一个字母分别是 C、A、P。

Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。

2.1.1一致性

Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。

比如现在包含两个节点,其中的初始数据是一致的:

当我们修改其中一个节点的数据时,两者的数据产生了差异:

要想保住一致性,就必须实现node01 到 node02的数据 同步:

2.1.2可用性

Availability (可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。

如图,有三个节点的集群,访问任何一个都可以及时得到响应:

当有部分节点因为网络故障或其它原因无法访问时,代表节点不可用:

2.1.3分区容错

Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,

形成独立分区。

Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务

2.1.4矛盾

在分布式系统中,系统间的网络不能100%保证健康,一定会有故障的时候,而服务有必须对外保

证服务。因此Partition Tolerance不可避免。

当节点接收到新的数据变更时,就会出现问题了:

如果此时要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,服务

处于阻塞状态,不可用。

如果此时要保证可用性,就不能等待网络恢复,那node01、node02与node03之间就会出现数据不

一致。

也就是说,在P一定会出现的情况下,A和C之间只能实现一个。

2.2BASE理论

BASE理论是对CAP的一种解决思路,包含三个思想:

  • Basically Available (基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。

  • Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。

  • Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

2.3解决分布式事务的思路

分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论,有两种解决思路:

  • AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。

  • CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。

但不管是哪一种模式,都需要在子系统事务之间互相通讯,协调事务状态,也就是需要一个事务协调者(TC)

这里的子系统事务,称为分支事务;有关联的各个分支事务在一起称为全局事务

http://www.yayakq.cn/news/854599/

相关文章:

  • 网站创建流程网站创建后台
  • 网站内部关键词品牌推广方案范文
  • iis7搭建网站织梦摄影师网站制作
  • 建设营销型网站不足之处学科基地网站建设
  • 做笑话网站赚钱吗零基础自己建网站
  • 做流量网站挂广告还能挣钱吗宁德做网站的公司
  • 网站开发与管理共多少页自媒体新手入门
  • 做图片能去哪些网站吗深圳的小型网络公司
  • 闲鱼怎么做钓鱼网站个人网站建设方案策划书
  • wordpress主题 错误网站优化描述设置
  • 遵义网站制作费用网站备案域名还是空间
  • 连云港网站开发怎么找到采购联系方式
  • dw网页设计作品简单江苏seo哪家好
  • h5 技术做健康类网站做详情页比较好的网站
  • 温州营销网站制作联系电话南昌百度推广公司
  • 专业网站是什么意思分享网络营销方式
  • 深入网站开发和运维网站上添加百度地图
  • 科技网站建设的调研sea wordpress 搭建
  • 重庆网站制作服务怎么申请域名和空间
  • 许昌做网站联系电话怎么制作公司的网站
  • 网站教程分享个人网站空间购买
  • 建设网站的那个公司好辽宁平台网站建设公司
  • 如何备份网站云梦县网站开发
  • asp.net网站开发项目化教程全景效果图如何制作
  • 营销案例网站游戏开发和软件开发哪个难
  • 微信官网网站苏州网站建设制作
  • 女生做网站推广wordpress获取所有标签
  • 网站建设花都區集团网站建设成都
  • 电商网站设计规范用手机画房子平面图
  • 外贸网站设计制作优化推广北京网站建设公司华网天下下