领域事件 disruptor 使用场景之实现Spring事件驱动模型

本文介绍了如何使用Disruptor实现类似Spring的事件驱动模型,通过领域事件来处理业务,例如用户注册后触发邮件通知和赠送积分。文章详细阐述了Disruptor的优势,如异步高并发、线程安全,并提供了自定义领域消息实体和定义领域事件的示例,展示了如何在不修改原有业务代码的基础上扩展新功能,强调了代码的可扩展性、高伸缩性和低耦合性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设场景

假设有这么一种业务场景,业务为【用户注册】处理完后,同时触发【邮件通知】业务、【赠送积分】业务的执行,在不利用MQ的情况下,会有什么样的解决思路?可能的解决思路有如下

  1. 业务【用户注册】处理后,开启线程处理【邮件通知】、【赠送积分】的业务
  2. 使用 disruptor 进行处理
  3. 生产消费者模式
  4. 观察者模式 … 解决的思路有很多。

​ 本文就介绍的是基于 disruptor 实现的,类似 Spring事件驱动模型 ApplicationEvent,这里称为 领域事件 。事件驱动模式与观察者模式在某些方面极为相似;当一个主体发生改变时,所有依属体都得到通知。不过,观察者模式与单个事件源关联,而事件驱动模式则可以与多个事件源关联。下面先看一下对于 领域事件 的介绍。

简介 Event Source 领域事件

  1. 领域驱动设计,基于 LMAX 架构。
  2. 单一职责原则 ,可以给系统的 可扩展、高伸缩、低耦合 达到极致。
  3. 异步高并发 、线程安全的、使用disruptor 环形数组来 消费业务。可并发执行,性能超高,执行1000W次事件只需要1.1秒左右(这个得看你的电脑配置)。
  4. 使用事件消费的方式编写代码,使得业务在复杂也不会使得代码混乱, 维护代码成本更低 。
  5. 可灵活的定制业务线程模型
  6. 插件形式提供事件领域
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值