随着单体应用拆分以及微服务化,互联网公司的分布式事务场景已成常态,关于分布式事务的解决方案也是由来已久,比如Saga、XA、TCC、本地消息表等等,当然也有很多优秀的框架比如ByteTCC、TCC-transaction、EasyTransaction以及最近比较火的Seate,那么如何在众多方案中选择适合自己的呢,接下来我们分析下各方案的原理以及优缺点。

一、XA

XA协议分为两段提交和三段提交。

准确讲XA是一个规范、协议,它只是定义了一系列的接口,只是目前大多数实现XA的都是数据库或者MQ,所以提起XA往往多指基于资源层的底层分布式事务解决方案。

1.1 两阶段提交

由事务协调者和事务参与者组成。

阶段 1:准备阶段

  • 协调者向所有参与者发送事务内容,确认是否可以提交事务。
  • 各参与者执行事务操作,将 undo 和 redo 信息记入事务日志中(但不提交事务)。
  • 如参与者执行成功,给协调者反馈 yes,即可以提交;如执行失败,给协调者反馈 no,即不可提交

阶段 2:提交阶段

情况一:当所有参与者均反馈 yes,提交事务,如下图

  1. 协调者向所有参与者发出正式提交事务的请求(即 commit 请求)。
  2. 参与者执行 commit 请求,并释放整个事务期间占用的资源。
  3. 各参与者向协调者反馈 ack(应答)完成的消息。
  4. 协调者收到所有参与者反馈的 ack 消息后,即完成事务提交。

 

情况二:当有阶段一中任意参与者反馈no,则中断事务,回滚,如下图

  • 协调者向所有参与者发出回滚请求(即 rollback 请求)。
  • 参与者使用阶段 1 中的 undo 信息执行回滚操作,并释放整个事务期间占用的资源。
  • 各参与者向协调者反馈 ack 完成的消息。
  • 协调者收到所有参与者反馈的 ack 消息后,即完成事务中断。

 

总结:两阶段提交方案实现简单,也可以实现业务无侵入,协调者可以依赖的中间件也很多,比如早期重量级Weblogic、Jboss、后期轻量级Atomikos、Narayana和Bitronix,但是在实际中却很少应用,主要有以下原因:

  • 性能(阻塞性协议,增加响应时间、锁时间、死锁)
  • 并不是所有资源都支持XA协议(MySQL 5.0.2才支持, 5.7之前都有缺陷)

  • 可靠性问题:如果协调者存在单点故障问题,如果协调者出现故障,参与者将一直处于锁定状态。
  • 数据一致性问题:在阶段 2 中,如果发生局部网络问题,一部分事务参与者收到了提交消息,另一部分事务参与者没收到提交消息,那么就导致了节点之间数据的不一致。

1.2 三阶段提交

三阶段提交是在二阶段提交上的改进版本,主要是加入了超时机制。同时在协调者和参与者中都引入超时机制。

三阶段将二阶段的准备阶段拆分为2个阶段,插入了一个preCommit阶段,以此来处理原先二阶段,参与者准备后,参与者发生崩溃或错误,导致参与者无法知晓是否提交或回滚的不确定状态所引起的延时问题。

情况一:一切正常

 

情况二:任何一个参与者反馈 no,或者等待超时后协调者尚无法收到所有参与者的反馈,即发出中断事务命令,参与者收到协调者发出的 abort 请求,或者在等待协调者请求过程中出现超时,都会执行中断,回滚事务

 

情况三:阶段 2 任何一个参与者反馈 no,或者等待超时后协调者尚无法收到所有参与者的反馈,即发出abort指令,参与者执行abort指令。

 

进入阶段 3 后,无论协调者出现问题,或者协调者与参与者网络出现问题,都会导致参与者无法接收到协调者发出的 do Commit 请求或 abort 请求。此时,参与者都会在等待超时之后,继续执行事务提交。

方案总结:

优点:相比二阶段提交,三阶段提交降低了阻塞范围,在等待超时后协调者或参与者会中断事务。避免了协调者单点问题,阶段 3 中协调者出现问题时,参与者会继续提交事务。

缺点:数据不一致问题依然存在,当在参与者收到 preCommit 请求后等待 do commite 指令时,此时如果协调者请求中断事务,而协调者无法与参与者正常通信,会导致参与者继续提交事务,造成数据不一致。

二、Saga

基于数据库的XA协议不管是两段提交还是三段提交,性能都不是很高,在高并发的互联网场景中不是很适用。那么在数据库只能保证本地事务的ACID情况下如何实现整个业务链路的原子性,从而保证数据的一致性呢?

最直接的方法就是按照逻辑依次调用服务,但出现异常怎么办?那就对那些已经成功的进行补偿,补偿成功就一致了,这种朴素的模型就是Saga。

处理流程:

  • 每个 Saga 事务由一系列幂等的有序子事务(sub-transaction) Ti 组成,顺序执行每一个子事务

  • 每个 Ti 都有对应的幂等补偿动作 Ci,补偿动作用于撤销 Ti 造成的结果

 

Sage定义了两种恢复策略:

  • 向前恢复:适用于必须要成功的场景,执行顺序是这样的T1(成功),T2(成功)... Tj(失败),Tj(重试)...Tn(成功),这种情况是不需要Ci回退策略的,只能重试。
  • 向后恢复:对应上面的第二种执行顺序,执行异常回滚

业内常用的两种实现方式:

1、中央协调(Order Orchestrator)

定义一个命令协调器(OSO)来协调各个服务的执行,充当指挥官的角色,协调器事先知道整个事务的调用顺序,如果有任何失败,它还负责通过向每个参与者发送命令来撤销之前的操作来协调分布式的回滚

以电商下单为例:

正常执行:

1、主业务方对OSO发起请求创建一笔新订单

2、OSO发出“创建订单”命令给订单服务,订单服务创建订单并将订单状态设置为"待处理";

2、OSO发出“减库存”命令给库存服务

3、OSO发出“支付”命令给支付服务

4、OSO发出“修改订单状态”命令给订单服务将订单状态置为“成功”

 

方案总结:

优点:

  1. 避免了业务方之间的环形依赖。
  2. 将分布式事务的管理交由协调中心管理,协调中心对整个逻辑非常清楚。
  3. 减少了业务参与方的复杂度。这些业务参与方不再需要监听不同的消息,只是需要响应命令并回复消息。
  4. 测试更容易(分布式事务逻辑存在于协调中心,而不是分散在各业务方)。
  5. 回滚也更容易。

缺点:

一个可能的缺点就是需要维护协调中心,谁来维护呢。。。。而且存在协调器故障风险

2、事件编排(Event Choreography)

在基于事件的方式中,第一个服务执行一个事务,然后发布一个事件。该事件被一个或多个服务进行监听,这些服务再执行本地事务并发布(或不发布)新的事件。

还是以电商下单为例:

 

正常执行:

1、主业务方发布创建订单的事件

2、订单服务监听创建订单事件,创建状态为“待处理”订单,并发布订单创建成功事件

3、库存服务监听订单创建成功事件,完成扣减库存,并发布扣减库存成功事件

4、支付服务监听扣减库存成功事件,完成支付,并发布支付成功事件

5、订单服务监听完成支付事件,修改订单状态为“已完成”,并发布订单修改

6、主业务方监听订单修改状态成功事件,并完成订单创建

 

方案总结:

优点:简单且容易理解。各参与方相互之间无直接沟通,完全解耦。这种方式比较适合整个分布式事务只有2-4个步骤的情形。

缺点:这种方式如果涉及比较多的业务参与方,则比较容易失控。各业务参与方可随意监听对方的消息,以至于最后没人知道到底有哪些系统在监听哪些消息。更悲催的是,这个模式还可能产生环形监听,也就是两个业务方相互监听对方所产生的事件。

 

Saga总结:

Saga是最终一致性的解决方案,所以优点是性能更高。缺点是不能保证事务隔离性,业务侵入性比较高,每个参与者都需要有回滚方案,实现起来较为复杂。

三、TCC

利用补偿的方式来保证最终一致性,Sage是最早也是最朴素的模型,但是Sage没办法保证数据的隔离性,于是TCC(Try-Confirm-Cancel)出现了。

在实际交易逻辑前先做业务检查、对涉及到的业务资源进行“预留”,或者说是一种“中间状态”,如果都预留成功则完成这些预留资源的真正业务处理,典型的如票务座位,电商库存等场景。

TCC事实上也是两阶段提交,只不过它将两阶段放到了代码层,它的三个阶段Try(检查,锁定资源),Confirm(确认提交),Cancel(取消提交)的方法都是需要我们自己在业务代码层实现。

以电商下单为例子,简化为创建订单,扣减库存:

1、Try阶段

假设原库存为10,购买数量为1,这阶段会更新库存为9,冻结1个库存,然后状态为“待处理”的订单

 

  • 完成所有业务检查
  • 预留必须业务资源( 准隔离性 )
  • Try 尝试执行业务

2、Commit/Cannel阶段

根据Try阶段执行的结果来确定是执行Commit还是Cannel

 

当Try阶段全部执行成功,进入Commit阶段。

这里使用的资源(库存,订单)都是Try预留的资源。在TCC事务机制中,认为在Try阶段能预留下来的资源,在Commit中一定能正确的提交。

 

当Try阶段有任意一个服务执行失败,进入Cannel阶段。

方案总结:

  • 利用 Confirm 和 Cancel 的幂等性,保证事务最终完成确认或者取消,保证数据的一致性。
  • 不需要中间协调者,完全依赖业务调用方来控制,避免了协调者的故障问题
  • 业务侵入性太高,开发成本较高。

四、本地消息表

本地消息表的方案最早是ebay提出来的,事务发起方处理自身业务,同时将对其他服务的调用记录到消息表内,然后通过轮训的方式发送消息到事务内的其他服务。

这样设计可以保证业务处理和消息发送同时成功或者都不成功,保证了多个系统事务的数据一致性。

以创建订单同步生成鉴定订单为例,订单生成(包括创建订单,扣库存,优惠券,积分等等)详细流程不做细说:

 

  1. 订单服务:1、创建订单;2、将要发送给鉴定服务的消息存储到消息表
  2. 订单服务通过消息中间件,将消息发送给鉴定服务
  3. 鉴定服务创建鉴定订单,并将结果以消息的方式发送给订单服务
  4. 订单服务修改消息表状态为已完成

为了数据的一致性,发送消息可能会失败,需要进行重试,所以消息的接收方需要支持幂等。

具体容错机制:

  1. 业务异常,如果需要异常回滚(事实上鉴定服务没那么重要,不需要回滚订单,不过如果换成库存服务就需要了~),事务发起方接收到异常响应之后需要发起回滚消息到需要回滚的事务参与方,事务参与方回滚事务。
  2. 网络异常,消息发送失败 ,事务发起方进行重试,这就是消息表的作用,可以设置定时任务对未处理完的消息进行重新发送,消费方需要加幂等。

方案总结:

  • 利用消息表来保证MQ的可靠性,从而保证事务的一致性
  • 方案比较轻量,也容易实现
  • 保证最终一致性
  • 业务侵入性高,而且需要对每个场景设置回滚方法
  • 消息表使用业务系统数据库,占用业务系统资源,同时也受限于业务数据库的并发

五、可靠消息

基于可靠消息的最终一致性方案实际上是消息中间件对本地消息表的封装,其他的都一样,典型的就是RocketMQ。

RocketMQ 事务消息设计则主要是为了解决 Producer 端的消息发送与本地事务执行的原子性问题,RocketMQ 的设计中 broker 与 producer 端的双向通信能力,使得 broker 天生可以作为一个事务协调者存在;而 RocketMQ 本身提供的存储机制为事务消息提供了持久化能力;RocketMQ 的高可用机制以及可靠消息设计则为事务消息在系统发生异常时依然能够保证达成事务的最终一致性。

 

还是以下单同步创建鉴定订单为例,事务发起方(Producer)就是订单中心 ,MQ订阅方就是鉴定服务:

  1. Producer (订单服务)发送half消息(生成鉴定订单)至MQ Server,MQ Server将消息状态标记为Prepared(预备状态),注意此时这条消息消费者(MQ订阅方)是无法消费到的。

  2. MQ Server回应half消息发送成功
  3. Producer执行本地事务(创建订单)
  4. 消息投递,Producer根据本地事务执行结果决定发送二次确认(commit/rollback)到MQ Server
  5. 如果执行Producer端本地事务过程中,执行端挂掉,或者超时,MQ Server将会不停的询问同组的其他 Producer来获取事务执行状态,这个过程叫事务回查。MQ Server会根据事务回查结果来决定commit/rollback。

方案总结:

相比于本地消息表的方案来说

  • 消息数据独立存储,降低了于业务系统的耦合
  • 并发量不被业务数据库影响,由MQ Server自身决定
  • 每次消息发送需要至少两次网络请求,因为有half消息和二次确认(commit/rollback)
  • 事务发起方需要实现消息回查的方法

六、Seate

Seate是阿里开源的分布式中间件,以高效 并且对业务 0 侵入 的方式,解决微服务场景下面临的分布式事务问题。github:https://github.com/seata/seata

6.1 设计初衷

  • 无业务入侵:引入分布式事务,不能影响业务。比如,tcc,saga,消息表之类的人工补偿是实践起来实在有点麻烦
  • 高性能:体现在一阶段本地事务执行完,就commit释放数据库锁,但是依赖seate的事务,还是持有全局锁

6.2 设计原理

Seate支持AT(Automatic Transaction)模式,这种模式是对业务无侵入的,类似XA。与之相应的另外一种工作模式称为 MT(Manual Transaction)模式,这种模式下,分支事务需要应用自己来定义业务本身及提交和回滚的逻辑(其实就是TCC,只不过增加了中央协调者)。

AT模式是跟XA类似的两段提交,但是有本质区别,区别在于XA是数据库层面上的两段提交协议,只有两阶段都完成了才会释放锁。而Seate是在应用层实现两阶段提交,将数据库层面的一些东西提前到应用层实现,比如Undo log,事务数据镜像,行锁等等,绝大部分情况下,一阶段本地事务执行完已经释放了资源锁,除非二阶段需要回滚。

 

具体更细节的原理github上说的很清楚,这里就不多重复。

6.3、方案分析

接下来我们通过分析Seata AT模式原理,来看看它的亮点与问题

Seata团队画了一个的详细调用流程图:

 

亮点:

  • 应用层基于SQL解析实现了自动补偿,从而最大程度的降低业务侵入性;
  • 将分布式事务中TC(事务协调者)独立部署,负责事务的注册、回滚;
  • 通过全局锁(事务协调器管理)实现了写隔离与读隔离。
  • 本地事务执行完之后就可以提交释放锁,相比XA的两阶段释放来说是很大的提升

性能损耗:

一条update Sql需要执行以下过程

  • 与TC(事务协调器)通讯获取全局事务xid

  • before image(执行前镜像),解析SQL,查询一次数据库

  • 执行update sql
  • after image(执行后镜像),解析SQL,查询一次数据库

  • insert undo log,写一次数据库

  • before commit,与TC通讯,判断锁冲突

  • commit,异步执行,删除镜像,undo log,释放锁

这些操作都需要一次远程通讯RPC,而且是同步的,另外undo log写入时blob字段的插入性能也是不高的,二阶段是异步的,不过也会占用系统资源。

这些过程粗略估计比单独sql执行应该要慢个三四倍~。

隔离性:

Seate默认支持的全局隔离级别是未提交读,不过也可以支持全局的已提交读。

seate有一个全局锁,由TC管理,多个seate事务的update会有排他锁,保证事务的一致性。当然,由于本地事务执行完了就提交了,也就是数据库本身释放锁了,如果另外一个事务不是seate事务,是没有全局锁的。

七、总结

分布式事务的理想解决方案,就像我等男同胞眼中的择偶对象,白(业务侵入少)富(性能好)美(隔离性保证完整),but现实告诉我们,适合我们的才是最好的

如同CAP,这三个特性是相互制衡的,往往只能满足其中两个,我们可以画一个三角约束(盗来的图。。):

 

基于业务补偿的Saga偏向1.2;TCC偏向2.3;本地消息表/事务型消息中间件偏向2.3;Seata/XA偏向1.3。

不同的业务场景面临的并发量,数据一致性要求不一样,我们要做的只能是根据不同的业务场景选择对我们来说最合适的方案。

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 删除github的commit信息

    删除github的commit信息 删除.git文件夹可能会导致git存储库中的问题。如果要删除所有提交历史记录,但将代码保持在当前状态,可以按照以下方式安全地执行此操作:尝试 运行 git checkout --orphan latest_branch 添加所有文件git add -A 提交更改git commit -am “commit m…...

    2024/4/24 10:35:05
  2. 数据仓库建模,维度模型关系模型对比

    数据仓库定义数据仓库是一个面向主题的(SubjectOriented)、集成的(Integrate)、不可更新的(Non-Volatile)、随时间变化的(TimeVarian)数据集合,用户支持管理决策。面向主题:所有数据都围绕某一主题组织。数据集成:数据来源于多个数据源的集成。随时间变化:定期接收…...

    2024/4/24 10:35:06
  3. 第一篇博客,try!!!

    第一篇博客,尝试 public static void main(String[] args) {System.out.println("Hello CSDN!"); }以后会在这多记笔记了,不在知乎记笔记了 。...

    2024/4/24 10:35:11
  4. sass,scss学习

    Sass 是 CSS 扩展语言,可以帮助我们减少 CSS 重复的代码,节省开发时间。 Sass 完全兼容所有版本的 CSS。 Sass 扩展了 CSS3,增加了规则、变量、混入、选择器、继承、内置函数等等特性。 Sass 生成良好格式化的 CSS 代码,易于组织和维护。 Sass 文件后缀为 .scss。 /* 定义颜…...

    2024/5/8 8:01:30
  5. 数据库.x小数显示问题

    Oracle对数值0.X转换成char类型的时候会自动忽略前面的0(原因好像是为了节省空间0.1保存到数据库为.1)。例如:[sql] view plain copy 01.SQL> SELECT to_char(0.1) FROM DUAL; 02.TO_CHAR(0.1) 03.------------ 04..1解决方法:SELECT decode(substr(l_num,1,1)…...

    2024/5/8 4:01:22
  6. 小程序--多层页面返回问题

    最近在捣鼓小程序,在做的过程中遇到一个问题,就是左上角的返回按钮默认是返回上一页的。但是我做的是注册页,注册页有几个步骤,每个步骤都是一页,我希望到注册成功这一页的时候,我点击左上角的返回按钮能直接回到登录页。 我查了官方文档和谷歌后都没找到解决办法。后面就想了一…...

    2024/4/24 10:35:02
  7. 学习笔记(30):R语言入门基础-数组的索引

    立即学习:https://edu.csdn.net/course/play/24913/285703?utm_source=blogtoedu数组的索引name = c("小刚", "小明", "小强") subject = c("语文", "数学", "英语", "综合") times = c("期中&qu…...

    2024/4/24 10:34:59
  8. 学习笔记(08):英特尔® OpenVINO™工具套件初级课程-如何使用英特尔R工具实现从数据采集到AI产品诞生?Part-2...

    立即学习:https://edu.csdn.net/course/play/27685/385720?utm_source=blogtoedu “模型下载器”是英特尔 OpenVINO™ 工具套件提供的关键实用程序之一。它为开发人员提供了一个命令行界面,可下载各种问题领域的各种公开可用的开源预训练深度神经网络 (DNN) 模型 在准备模型时…...

    2024/5/7 20:31:59
  9. http与https区别,http1.0 http1.1 http2.0的主要特性

    HTTP1.0HTTP1.0是一种无状态、无连接的应用层协议。无连接:浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接无状态:服务器不跟踪每个客户端也不记录过去的请求。无状态可以借助cookie/session机制来做身份认证和状态记录。缺点:1.每次请求…...

    2024/4/19 23:01:57
  10. 新冠疫情下的RFID养老院人员定位系统--新导智能

    新冠肺炎疫情发生后,因免疫力较低,晚年人作为易感人群,而养老组织又是晚年人集合场所,怎么作答防控疫情这张“考卷”?为应对疫情,必须实施养老院人员定位系统。经过人员实时定位、集合防范等,随时把握人员所在方位、运动轨迹以及分布状况等,从而下降感染危险、进步安全…...

    2024/4/21 17:14:41
  11. EasyNTS集群模式采用Redis存储集群信息如何对数据持久化?

    视频云组网EasyNTS我也为大家介绍过很多了,大家应该对此有一点了解了,说白了就是为了解决网络穿透而的诞生的产品。我们研发EasyNTS云组网的时候,启用集群模式是采用Redis存储集群信息,因为Redis可以对数据持久化以及减少对数据库的操作。Redis的数据全部存储在内存中,如果…...

    2024/4/16 6:32:30
  12. mark一下江南一点雨的微人事开源项目

    前言:mark一下江南一点雨的微人事项目。微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。微人事部署视频:https://mp.weixin.qq.com/s/dcJv6BIVFPnokI8nBf4IrQgit地址:https://github.com/lenve/vhr码云地址:https://gitee.com/lenve/vhr工具:后端…...

    2024/4/16 6:32:50
  13. xxx钻石商城功能开发需求

    文章目录1. 买家小程序端1.1. 首页1.2. 店铺1.2.1. 搜索门店1.2.2. 门店信息1.2.3. 预约试戴1.3. 购物袋1.3.1. 加入购物车1.3.2. 编辑购物车1.4. 个人中心1.4.1. 个人信息1.4.2. 实名认证1.4.3. 我的等级1.4.4. 查看收益1.4.4.1 门店收益1.4.4.1.1查看结算单1.4.4.2 分享收…...

    2024/4/24 10:35:04
  14. 漫谈工业软件(3) IEC61499 功能块

    功能块(function block)是IEC61499 标准中最重要的概念之一。不过功能块的概念并不是该标准所特有的。在符合IEC61131-3 标准的PLC 中就定义了功能块编程。功能块图(FBD) 本质上是一种图形化程序设计方法。在NI 的Labview,IBM 的NodeRED,MIT 的Scratch 中都采用了类似功能…...

    2024/4/24 10:34:57
  15. 阿里云服务器 debian9 apache2 部署flask+wsgi 过程总结

    由于阿里云镜像自带的源更新比较缓慢,最新的python3版本还是3.5,而我的代码使用的库需要python3.6+,因此需要先更新debian源: vim /etc/apt/sources.list在其中添加: deb http://mirrors.163.com/debian/ testing main执行: apt-get update apt-get install python3.6 py…...

    2024/5/7 15:23:01
  16. 商场无线准入哪里有

    方案应对商场的无线宽带接入,满足了此方案的实用性、安全性、经济性、可扩展性、可管理性。拥有极高的稳定性,适合724不间断应用和大量客户端接入应用。无线网络无需布线,安装简单,接入方便。内部人员和顾客可以随时随地使用网络。可以实现无线办公,广告推送;方案安装实施…...

    2024/5/7 21:14:46
  17. python 返回dict字典录入数据库错误AttributeError numpy.float64 object has no attribute

    函数返回pdt_info字典,该字典嵌套了字典dict和列表list。 pdt_info = {product_name: GAGO_NDVIF_2019257_20190929_50SMF_20191107T071920_10.tif, product_url: https://s3.eu-central-1.amazonaws.com/gago-ndvi30/ndvi_10m/10/2019/257/50SMF/GAGO_NDVIF_2019257_20190929_…...

    2024/5/8 1:11:13
  18. 页面上的1变“1个”,18变“18岁”,elementUI表格,日期展示错误。

    流畅的代码千篇一律,错误的代码五花八门。 记录自己遇到的一些bug。 这个bug的出现我记得是一个阳光明媚的下午。纠结了两天,虽然中间放弃不去解决吧。 bug展示页面是这样的↓↓↓页面上凡是出现数字1和数字18的,全给我显示的是1个,18岁。其中我用的是vue和elementUI,经过…...

    2024/4/24 10:34:53
  19. 视频智能云组网EasyNTS如何配置MySQL数据库?

    智能云组网作为一个新产品,很多人都还不知道它的作用是什么,其实我们研发的智能云组网的最主要的功能就是做网络穿透,解决网络由于防火墙原因不互通的问题。之前我们介绍过视频云组网EasyNTS可以进行网络设备穿透吗?,本文我们继续来介绍一下EasyNTS云组网的数据库。EasyNT…...

    2024/4/24 10:34:51
  20. 基于yolov4的戴口罩识别

    基于yolov4的戴口罩识别简介环境视频地址 简介 基于darknet的yolov4做识别行人是否戴口罩 环境 显卡:1080ti 数据:部分开源和部分自己收集 语言:c/c++ cuda: cuda10 视频地址 链接: link....

    2024/5/5 18:54:12

最新文章

  1. css: hover 划过显示/隐藏 div 样式

    1. 图例: 划过用display: block;和 display: none; 显示div和隐藏div div: <div class="sectorBox"> <div v-for="(item, index) in sectorList" :key="index" class="sill"> <div class="si…...

    2024/5/8 8:08:46
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 自我介绍的HTML 页面(入门)

    一.前情提要 1.主要是代码示例&#xff0c;具体内容需自己填充 2.代码后是详解 二.代码实例和解析 代码 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>自我介绍页面</title>…...

    2024/5/5 7:22:10
  4. 分享一个Python爬虫入门实例(有源码,学习使用)

    一、爬虫基础知识 Python爬虫是一种使用Python编程语言实现的自动化获取网页数据的技术。它广泛应用于数据采集、数据分析、网络监测等领域。以下是对Python爬虫的详细介绍: 架构和组成:下载器:负责根据指定的URL下载网页内容,常用的库有Requests和urllib。解析器:用于解…...

    2024/5/6 20:11:28
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57