Reference URL:
http://martinfowler.com/articles/lmax.html
该架构主要基于:Disruptor + In Memory DDD + Event Sourcing
- 通过高并发框架(Disruptor)实现用户事件的输入和Domain Event的输出;
- 一个常驻内存的Business Logic Processor(DDD领域模型),它负责在纯内存中处理业务逻辑;关键点:首先确保用户输入事件被持久化到数据库,并定时创建快照,然后在内存中响应事件更改业务对象的状态;因为一切都是在内存中处理,所以没有IO,也不需要数据库事务,非常快;
- 机器down了怎么办?因为我们首先确保了业务对象的任何状态改变之前先持久化用户输入事件,所以在down机的时候通过事件回溯重新得到最新的业务对象。因为有了快照的保存,所以重建对象也非常快;
该架构的主要观点:
- 肯定了In-Memory内存模式 + 异步输入与输出事件(Disruptor) + Event Sourcing 架构,LMAX实践也验证了这个架构。这个架构降低复杂性。
- LMAX的核心是新型并发框架Disruptor,其核心是根据现代CPU硬件缓存特点发明不同于通用LinkedList或Queue的新型数据结构RingBuffer。
- 号称并发未来的Actor模型被LMAX团队验证是有瓶颈的。
- 提出新的并发模型,每个CPU一个线程,多个CPU多个线程并发模式,摒弃了锁模式。
- ORM等Hibernate没有完全解决OO的目标,关系数据库的事务也不是最后救命的稻草。LMAX用自己的事件记录的方式实现事务,这也不同于所谓内存事务STM。
- 架构师要分离关注,一是通过DDD降低业务的复杂性;二是通过技术探索创新,降低技术平台的复杂性,让程序员更多精力投入业务问题解决上。
分类:
架构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?