首页 > 其他分享 >事件驱动架构的事件版本管理

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

时间:2024-08-18 20:48:50浏览次数:9  
标签:topic 架构 消费者 适配器 模式 事件驱动 事件 版本

有一种办法:发送会议邀请给所有团队,经过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应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

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

参考:

本文由博客一文多发平台 OpenWrite 发布!

标签:topic,架构,消费者,适配器,模式,事件驱动,事件,版本
From: https://www.cnblogs.com/JavaEdge/p/18366057

相关文章

  • 深入解析当下流行的JDK版本:JDK 17的优势与特色
    引言Java作为一门成熟的编程语言,其发展历程中经历了多个重要版本的迭代。目前,JDK(JavaDevelopmentKit)已经更新至JDK21,但JDK17因其长期支持(LTS)特性,成为当前最流行的选择。本文将深入分析JDK17及其相较于其他主要版本的差异和优势。1.JDK版本概览1.1JDK8:里程碑式的版本......
  • Power BI版本介绍:看它如何“变幻莫测”
    目录一、PowerBI是什么?二、版本众多,犹如眼花缭乱的服装店1.PowerBIDesktop2.PowerBIPro3.PowerBIPremium4.PowerBIReportServer三、版本之间的“大战”四、总结——来一剂沉重的药丸大家好!今天咱们来聊聊一个非常“热闹”的话题:PowerBI的版本介绍。......
  • 都是免费版本【文本转语音/最新文生图/视频自动剪辑软件】无套路领取
    免费文本到语音超过200种声音和70种语言一个免费的在线文本到语音(TTS)工具,可以将您的文本转换为自然的语音。我们提供广泛的AI语音。只需输入文本,选择语音,然后下载生成的mp3文件或直接收听。非常适合内容创作者、学生或任何需要朗读文本的人。文本到语音地址:https://pan.q......
  • 【系统分析师】-综合知识-系统架构
    1、设计模式1)观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新【消息订阅】。在该模式中,发生改变的对象称为观察目标,被通知的对象称为观察者,一个观察目标可以对应多个观察者。观察者模式的优点在于实现了表......
  • 免费的GA/T1400视图库平台Easy1400软件又迭代出新版本了!
    自从年初发布了这款免费的GA1400视图库平台https://www.easydarwin.org/sceneplatform/156.html,本来就是想做一做能给大家差不多能用就行了,没成想总是忍不住要改一改、优化优化,于是又经过了几个月的优化,以及用户反馈的收集,今天更新迭代发布出最新版本的免费GA1400平台:最新版优化......
  • c++ builder哪个版本更好用
    1、当前,功能相对完全和成熟的是XE7。2、如果开发传统的程序,C++BUILDER2006最成熟轻量。二、可以难说哪个更好用,每个版本都有它自个的特点,典型的版的本个人理解供你参考:1、C++BUILDER4.0是BCB(C++BUILDER的简称)的第一个win下的版本,后继还有个小升级到C++BUILDER4.5,如果你想在......
  • FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构
    ​音视频技术的一个主要用途是直播,包括电视直播、电脑直播、手机直播等等,甚至在线课堂、在线问诊、安防监控等应用都属于直播系统的范畴。由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传输,因此直播领域采用的网络技术标准比较高,实现起来也比一般的WEB系统复......
  • 学习-zabbix架构及术语
    Zabbix组成架构ZabbixServerzabbixserver是agent程序报告系统可用性、系统完整性和统计数据的核心组件、是所有配置信息、统计信息和操作数据的核心存储器zabbix数据库存储所有配置信息和zavvix收集到的数据都被存储再数据库中zabbixweb界面为了从任何地方和任何......
  • Visual Studio使用Git进行代码版本管理
    一、VisualStudio创建一个项目1、在VisualStudio中创建一个项目,我创建的项目名称是"mainApi"二、Gitee中新建仓库1、右上角点击【个人头像】,选择【新建仓库】2、输入对应的信息,点击【创建】-(1)输入仓库名称,一般与本地程序名称一致-(2)介绍一下该仓库是干什么的,也可以不......
  • 1.PEAP配置完整版本
    实验拓扑:sw:vlandatavlan5vlan10vlan18intf0/24swmoaccswaccvlan5spanning-treeportfastintf0/4swmoaccswaccvlan5spanning-treeportfastintvlan5ipadd137.78.5.158255.255.255.0aaanew-modelaaaauthenticationloginnoacslinenon......