day3
<h1>time.now() 获取当前时间</h1>
<h1>time.Date() 获取指定年月日时分秒毫秒</h1>
<h1>now.Add() 根据当前时间,进行加减时间</h1>
<p>分布式事务(Distributed Transactions)是指在分布式系统中,事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。一个大的操作由多个小的操作共同完成,而这些小的操作又分布在不同的服务上。针对于这些操作,要么全部成功执行,要么全部不执行,以此来维护数据的一致性。</p>
<p>分布式事务的挑战在于如何确保在多个节点上的操作要么全部成功,要么全部失败,以此来维护数据的一致性。这在分布式系统中尤其重要,因为网络延迟、节点故障等因素都可能影响事务的最终结果。</p>
<p>为了解决分布式事务的问题,业界提出了多种解决方案,包括但不限于:</p>
<ol>
<li>
<p><strong>两阶段提交(2PC, Two-Phase Commit)</strong>:这是一种最经典的分布式事务处理算法,分为准备阶段和提交阶段。在准备阶段,协调者询问所有参与者是否可以提交事务;在提交阶段,如果所有参与者都同意提交,则协调者发出提交命令,否则发出回滚命令。这种方法虽然可以保证一致性,但对网络和节点的可靠性要求较高,且在等待期间可能会造成资源锁定,影响系统性能。</p>
</li>
<li>
<p><strong>三阶段提交(3PC, Three-Phase Commit)</strong>:这是对两阶段提交的改进,增加了预准备阶段,减少了阻塞的可能性。在预准备阶段,协调者询问参与者是否可以准备提交事务;在准备阶段,如果所有参与者都同意,则进入提交阶段;否则,进入回滚阶段。这种方法在一定程度上减少了阻塞,但仍然无法完全避免网络分区等问题。</p>
</li>
<li>
<p><strong>基于补偿的事务(Saga)</strong>:Saga 是一种将长事务拆分成一系列短事务的方法,每个短事务完成后都会发布事件来触发下一个短事务。如果某个短事务失败,则会执行一系列补偿事务来恢复之前的状态。这种方法适用于业务流程较长、涉及多个服务的场景,但需要额外实现补偿逻辑。</p>
</li>
<li><strong>最终一致性(Eventual Consistency)</strong>:这是一种放宽一致性的方法,允许系统在一段时间内处于不一致状态,但最终会达到一致。这种方法适用于对实时一致性要求不高的场景,可以提高系统的可用性和性能。</li>
</ol>