有一种办法:发送会议邀请给所有团队,经过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应用开发
区块链应用开发
大数据开发挖掘经验
推荐系统项目
目前主攻市级软件项目设计、构建服务全社会的应用系统。
参考: