服务架构:事件驱动架构
事件驱动架构是由生产者和消费者组成,生产者负责生产事件,消费者监听并消费事件。
【资料图】
事件驱动架构
事件分发以近实时的方式进行,所以当事件产生时,消费者可以立即做出应对。
生产者和消费者是解耦的,它不知道有哪些消费者在监听事件消费者之间也是解耦的,每个消费者都可以读取所有事件。还有一种模式,多个消费者是竞争的关系,它们从同一个队列消费,不出现错误的情况下每个事件都只被处理一次。
另外,在某些系统中,事件导入的吞吐量要求也很高,比如IoT系统。
事件驱动架构可以通过发布/订阅模型或事件流模型来实现:
发布/订阅模型:消息队列负责追踪订阅者,事件被发布后,消息队列负责发送给订阅者。一旦事件被接收,就不能再重放,新增的订阅者也看不到该事件。事件流模型:将事件写入日志并持久存储下来,在单个分区里事件严格有序。client端不需要订阅这个事件流,而且能够从任意一个位置开始读取事件。当然,移动偏移量也要靠客户端自己完成。这意味着client可以在任意时间点加入,也支持事件重放。在事件的消费上,也可以有一些略微不同的方式:
简单模式:事件产生后立刻触发消费者下一步的动作。比如风控、治理等场景下的异常行为检测。复杂模式:消费者处理一组数据,找到其中的规律,比如基于时间窗口做聚合求sum/count/avg。纯流式:通过流式平台比如Kafka作为数据中转的工具,接收事件并喂给下游的processor。下游的processor通常做简单的transform之后再写入的kafka。事件通常来源于外部系统,比如IoT中的物理设备、互联网用户的端上。我们在设计时,必须认真评估总体的数据量和吞吐量,以保证系统能支撑这个量级。
在上面的流程图中,右侧的三个格子表示三种类型的消费者,每种类型的消费者下面有多个实例。在实际场景中,出于容灾的目的,多个消费者实例的情况非常普遍。为了保证事件处理的吞吐量,多个实例也是有必要的。
在处理事件时,一个消费者实例可以创建多个线程。这也能提高处理的吞吐量,不过事件被处理的顺序就乱了,业务上可能无法接受;另外多线程处理也很难保证exactly-once语义。
应用场景多个子系统都需要处理这些事件需要实时处理,且延迟越小越好处理逻辑比较复杂的场景,比如要对事件继续模式匹配或者基于时间窗口的聚合事件量级非常大,生产的速度也很快架构优势生产者和消费者解耦没有点对点的集成,增加新消费者几乎没有难度消费者可以即时处理到来的事件天生分布式、可扩展性非常高每个下游子系统都可以访问全部事件,且互相独立有哪些挑战不丢事件:一些业务场景要求,事件必须发送成功,不能丢。比如金融、电商等涉及钱的场景;按顺序消费:由于架构的分布式特性,消费者本身就是多实例的,不支持全局有序消费;exactly-once消费:事件消费的每个环节都可能会失败,失败就会重试。重试的话,就需要额外的机制去保障exactly once补充说明在设计系统时,我们通常需要考虑单条消息的大小,它对系统的性能和金钱成本影响都非常大。如果走两个极端的话,可以是:
如果将所有需要的信息都放到单个事件里,处理起来会很方便,并且能够避免额外的信息查询。
如果将非常少的信息放到单个事件里,比如ID字段,那么会节省大量传输数据的时间和金钱成本,但其他信息需要访问其他服务才能获取到。
这其中的利益权衡,看自己的业务来定了。
标签:
为您推荐
广告
随机阅读
- 服务架构:事件驱动架构
- 暑期档票房有望重归百亿级 这些概念股获机构关注
- 贝佐斯的蓝色起源火箭发动机在测试期间发生爆炸事故
- 海蝶唱片音乐总监(海蝶唱片)
- 遴选怎么读什么意思 遴怎么读
- 上半年福建平潭口岸跨境电商保税进口业务货值达26亿
- 全球高温或推高粮食价格
- 望城资规分局:大兴调查研究,为项目遗留问题开出“新处方”
- 美股异动|赛富时涨近4%公司上调部分云和营销工具的价格
- 中国一冶梧州临港经济区项目进港大道全线通车
- 风冷比水冷好 电脑CPU散热类型分析
- 13家房企争夺上海杨浦平凉社区地块,保利置业22.73亿元摇号摘得
- 借钱不还提起诉讼有用吗
- 7月11日国内原油期货涨0.73%
- ChatGPT概念板块涨0.24% 彩讯股份涨7.7%居首
- 理想汽车2023年第28周销量超1万辆 成为中国豪华品牌销量最高的品牌
- 罗姆开发用于汽车内饰的新型RGB芯片LED 可最大程度地减少混色引起的颜色变化
- 长安cs75的电瓶是多少伏的(长安cs75用什么型号电瓶)
- 轿车在火车站台行驶?广州站回应 基本情况讲解
- 贵州六盘水首届城市灯光美食节启幕:消夏避暑新“夜”态催热“夏日经济”
广告
财经
- 《博德之门3》游戏中可以重选职业 避免垃圾构筑!
- 45岁大叔存款9500万,却吃白饭咸菜20年,为提前退休中断恋爱不买房
- 长二丙火箭成功发射卫星互联网技术试验卫星
- 东莞2023年计划供应245宗储备土地 包含37宗商住用地
- 一品红: 关于对全资子公司增资及全资子公司与关联方共同投资Arthrosi暨关联交易的公告
- 河南362家博物馆免费开放
- 中国信通院徐菲:四路并举,推进5G-A迈向商用
- 外交部:迈向“无化武世界”仍然面临诸多挑战
- 在全球产业链一些关键节点 这些“小巨人”企业大显身手
- 《潜水员戴夫》白鲸位置说明
- 水治理板块异动拉升 联合水务涨停
- 凯迪拉克锐歌全系降价6万 售价37.97万元起
- 神秘世界大探险(关于神秘世界大探险介绍)
- 9个月融资65亿元 储能市场就这般“香”?
- 晶澳科技加入中国“绿电百分百”行动倡议
- 老瓢(诗歌)
- 小米手机开机输入密码后花屏
- 中通快递斥资244.1万美元回购9.77万股
- 我国登记在册民营企业突破5000万户
- 富奥股份:拟与天奇股份共设合资公司,从事新能源车动力电池材料再生利用业务