第五单元
<h5>分布式事务</h5>
<h6>概念:分布式事务是指一个事务跨越多个不同的数据库或服务节点,这些节点可能分布在不同的物理机器或多个不同的系统中</h6>
<h6>应用场景</h6>
<ul>
<li>
<p>电商系统</p>
<h6>用户下单后需要扣减库存、扣减账户余额、生成订单等操作,这些操作可能分布在不同的服务节点上,需要确保一致性</h6>
</li>
<li>金融系统
<h6>转账操作需要确保转账方和收款方的账户余额变化一致,且操作不可撤销</h6></li>
<li>分布式数据库
<h6>在分布式数据库中,多个数据库节点之间需要进行数据同步和一致性校验</h6></li>
</ul>
<h5>优点</h5>
<p>数据一致性
可扩展性
支持异构系统
高可用性</p>
<h5>缺点</h5>
<p>复杂性高
性能开销大
一致性难以保证
单点故障风险
对应用的侵入性强</p>
<h5>定时任务</h5>
<h6>定义</h6>
<h6>是指按照指定时间周期运行的短任务,这些任务可以是在某个固定时间点执行一次,也可以是在给定时间点周期性地运行。定时任务通常用于自动化执行重复性、周期性或计划性的任务,以提高工作效率和减少人工操作的需求。</h6>
<h6>应用场景</h6>
<ol>
<li>数据备份:定期备份数据库或文件系统的数据,以防止数据丢失或损坏</li>
<li>日志清理:定期清理系统日志或应用程序日志,以释放存储空间并提高系统性能</li>
<li>缓存刷新:定期刷新缓存数据,以确保用户能够获取到最新的信息</li>
<li>发送提醒:定期发送电子邮件或短信提醒,如会议通知、生日祝福等</li>
<li>系统维护:定期进行系统维护任务,如更新软件、检查系统健康状态等</li>
</ol>
<h6>优点</h6>
<ol>
<li>自动化执行:定时任务能够按照预定的时间表和频率自动执行,无需人工干预,从而提高了工作效率</li>
<li>减少错误:通过自动化执行,减少了因人为操作失误而导致的错误和遗漏</li>
<li>节省时间:定时任务可以处理重复性的工作,使工作人员能够专注于更具创造性的任务,从而节省时间</li>
<li>可靠性:定时任务工具通常具有高度的可靠性和稳定性,能够确保任务按计划执行</li>
<li>灵活性:定时任务可以根据实际需求调整执行时间、频率和触发条件,提供了极大的灵活性</li>
<li>成本效益:自动化执行减少了人力成本,长期来看具有明显的成本效益
<h6>缺点</h6></li>
<li>资源消耗:定时任务在执行过程中会占用系统资源,如CPU、内存和磁盘空间等,可能会对系统性能产生影响</li>
<li>复杂性:定时任务的配置和管理可能相对复杂,特别是当涉及多个任务、复杂的触发条件和依赖关系时</li>
<li>依赖性问题:定时任务可能依赖于特定的环境、系统或软件版本,当这些依赖发生变化时,任务可能无法正确执行</li>
<li>故障恢复:如果定时任务在执行过程中发生故障,可能需要手动干预来修复或重新启动任务</li>
<li>安全性:定时任务可能涉及敏感数据和操作,因此需要确保任务的安全性,防止未经授权的访问和修改</li>
<li>维护成本:随着时间的推移,定时任务可能需要更新、修改或删除,这增加了维护成本</li>
<li>监控和日志记录:为了确保定时任务的正确执行,需要对其进行有效的监控和日志记录。这可能会增加额外的复杂性和成本</li>
</ol>
<h6>time.date 获取指定年月日时分秒毫秒</h6>
<h6>now.add 根据当前时间,进行加减时间</h6>
<h6>time.NewTimer()根据一个时间实现倒计时,当倒计时结束时会给一个通道进行存值</h6>
<h6>nextTime.Sub()时间差</h6>