逆流而上读书笔记1

本文介绍了在发红包业务场景中采用的两种解决方案:二阶段提交与微型总线处理。二阶段提交确保预算扣减与红包发放的一致性,但会增加热点写的压力。微型总线处理通过事件分发机制实现最终一致性,提高并发处理能力。

买了一本阿里巴巴的逆流而上这本书,今天专门花一下午时间好好看了下,还是有些收获的,简单总结下下午读书的笔记

业务案例

发红包场景
对于我们经常使用的发红包场景,业务逻辑也比较简单,发一个红包,需要从预算端先进行扣款,然后红包端再进行发红包

解决方案

1. 二阶段提交

— 在事务开始的第一阶段,首先预算端进行冻结要扣除的预算,红包端需要插入一条不可用的红包记录
— 在事务的第二阶段,即第一阶段的两步都已经完成,开始进行事务提交阶段,预算阶段需要对第一阶段的冻结的金额进行实际的扣减,红包端需要对第一阶段不可用的红包记录变为可用。如果回滚操作的话,预算端需要对冻结的部分资金进行撤销,红包端需要删除上个阶段的不可用的红包记录

在整个的过程中,预算端会涉及2次针对预算端记录的事务操作,而这个记录也会存在热点写,使用二阶段提交更会放大该写的操作

业务的关键点
1. 预算和红包两端保持事务一致,即同时成功或者同时失败
2. 红包发放不能变成一个个顺序的操作,会影响性能,可以存在中间态的预算剩余金额,这个是允许的,只需要保证最终一致即可

2. 微型总线处理

把预算扣减成功以及操作事件消息等在同一个本地事务中,写入数据库,然后会对写入的事件进行分发,通知每一个事件的订阅者(当前业务即红包端),然后对事件的处理结果进行记录
那对应到我们当前的业务,即预算端进行一次预算的扣减,一次事件的写入,可能还会进行一次事件的读取,一次事件的状态更新;对于红包端,仅需要进行一次用户红包数据的写入。那这样的话如果红包端失败,只需要对修改该事件的状态,并且撤销本地扣减。

该系统分为三部分
1. 事件分发者:由业务逻辑在业务事务中调用,并将事件写入到与业务相同的数据库中
2. 事件配置:管理事件的基本信心,订阅关系等
3. 事件调试器:读取待分发的事件,根据订阅关系进行分发,调用相应的事件处理器,然后记录事件分发的结果

总结

满足以下两个要求的都可以适用该方案
1. 短暂的中间状态是可以接受的
2. 要求最终一致性

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值