事件驱动架构的事件版本管理

有一种办法:发送会议邀请给所有团队,经过101次会议后,发布维护横幅,所有人同时点击发布按钮。或...

可用适配器 ,但微调。没错!就像软件开发中90%问题一样,有种模式帮助你找到聪明解决方案。

1 问题

你已经有了一个模式,消费者已知咋处理它,所以他们依赖你保持兼容性,但实际上,你要打破这种兼容性。

一个生产者和三个消费者例来探讨这问题:

2 解决方案

与其陷入协调部署的陷阱,不如利用适配器模式并加以战略性调整。五步操作:

2.1 创建新主题

当你引入一个新模式时,不要强迫所有消费者立即适应,而是创建一个新topic。这个topic将成为使用新模式生成的事件的归宿。

2.2 引入适配器

部署一个监听新topic的适配器,该适配器将事件翻译回旧模式格式,并重新发布到原始主题。这样,现有消费者可继续接收他们期望格式的事件,而无需立即进行任何更改。

2.3 更新生产者

修改生产者,使其使用新模式生成事件,并将这些事件发布到新创建的topic中。

2.4 逐步迁移消费者

现在,旧格式和新格式并存,可按自己节奏开始迁移消费者。当你更新每个消费者以处理新模式时,只需将其指向新topic。

2.5 停用适配器

一旦所有消费者成功迁移到新模式,你可以安全地退役适配器和旧topic。

3 优势:减少压力,增加灵活性

3.1 向后兼容

适配器确保现有消费者在过渡期间继续正常运行,无需立即更新,维护系统稳定性。

3.2 无需协调部署

通过解耦生产者和消费者的升级过程,消除了同步部署的需求。每个团队可以独立工作,降低出错的风险。

3.3 集中测试

随着每个消费者的迁移,测试可以更集中和可控。你可以逐一验证每个过渡,使问题更容易识别和解决。

3.4 减少会议

由于协调需求减少,你可以告别无数的会议。迁移过程变得更简单、更可预测,压力也更小。

4 总结

目标是找到一种最简单、最有效的解决方案来打破兼容性。

适配器模式为在 EDA 中处理事件版本管理提供了务实的方法。

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化

  • 活动&券等营销中台建设

  • 交易平台及数据中台等架构和开发设计

  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化

  • LLM Agent应用开发

  • 区块链应用开发

  • 大数据开发挖掘经验

  • 推荐系统项目

    目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

相关推荐
依_旧11 分钟前
MySQL下载安装配置(超级超级入门级)
java·后端
淘源码d28 分钟前
什么是医院随访系统?成熟在用的智慧随访系统源码
java·spring boot·后端·开源·源码·随访系统·随访系统框架
程序猿阿越1 小时前
Kafka源码(七)事务消息
java·后端·源码阅读
m0_748248021 小时前
C++20 协程:在 AI 推理引擎中的深度应用
java·c++·人工智能·c++20
笑我归无处1 小时前
强引用、软引用、弱引用、虚引用详解
java·开发语言·jvm
02苏_1 小时前
秋招Java面
java·开发语言
爱吃甜品的糯米团子1 小时前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript
程序定小飞2 小时前
基于springboot的学院班级回忆录的设计与实现
java·vue.js·spring boot·后端·spring
攀小黑2 小时前
基于若依-内容管理动态修改,通过路由字典配置动态管理
java·vue.js·spring boot·前端框架·ruoyi
青云交3 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用
java·spark·lstm·可视化·java 大数据·空气质量监测·污染溯源