kafka+观察者模式,实现高性能事件总线

一个事件总线的实现,主要包含三个角色:1、消息发布  2、消息队列  3、消息派送

消息队列可以有多种选择,redis,kafka,rocketMQ等,甚至是jdk blockQueue。


但作为一个工业级的设计,我们需要考虑几点:

1、高性能  2、高可用  3、平滑扩容  4、架构对开发者透明

1、2、3取决于你用什么消息队列,4 取决于你采用哪种设计模式进行解耦


经过对比,这里采用了kafka作为我们的事件总线的关键核心部件,下面着重谈下设计模式进行解耦:

这里说的解耦,指的是普通程序员使用事件总线的时候,他们是不需要关心事件总线采用的是什么消息服务器,他们只面向接口编程,并不关心细节。同理,这也为事件总线日后升级提供了便利,也就是说,日后从kafka更换成更好的消息服务器,业务系统是不需要做任何的修改,透明切换。


具体到代码层设计,采用观察者模式作为消息派发的基础,最为合适不过。熟悉spring的朋友应该知道,spring其实内置了一套观察者模式的支持,我们就无需自己重新写了,但需要定义一些自己的抽象接口去整合一下, 具体接口设计如下:

消息事件:EventObject <--- AppMsg

事件监听器:EventListener <--- AppMsgEventListener

事件发布器:AppEventPublisher

抽象消费者:Consumer


以上就是一个事件总线最基础的雏形

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值