1. 事件驱动集成工程导论
在传统请求—响应式集成中,系统A调用系统B的接口,必须等待B返回结果,调用链越长,耦合越紧、超时风险越高。事件驱动架构(Event-Driven Architecture,EDA)换了一种思路:产生变化的系统只负责发布一条“事件”,声明“某件事已经发生”,而不关心谁消费、何时消费、如何处理。事件被投递到事件通道后,由订阅方按需接收并作出反应。这样,生产者与消费者在时间、空间和实现技术上都实现了解耦。
理解EDA,需要先厘清四个核心概念。第一是事件:对已发生事实的不可变记录,例如“订单 10086 已创建”“库存 SKU-2201 已扣减 3 件”。事件用过去时描述事实,不携带“请执行某操作”的指令语义。第二是生产者与消费者:生产者发布事件,消费者订阅并处理事件,二者互不感知对方身份。第三是事件通道:承载事件的中介,可以是主题(Topic)、队列(Queue)或流(Stream),决定事件的投递语义。第四是事件处理:消费者对事件执行过滤、转换、路由、聚合或触发后续动作。
与命令式调用相比,EDA的优势体现在四个方面:解耦带来的可扩展性——新增一个消费者无需修改生产者;削峰填谷带来的弹性——突发流量先进入通道再被逐步消费;异步带来的响应速度——生产者发布后立即返回;以及事件日志带来的可追溯性——事件可回放、可审计。但EDA并非万能,它引入了最终一致性、重复投递、事件顺序和可观测性等新问题,这些正是本课程后续要重点解决的工程课题。
那么什么场景适合EDA?判断标准可以归纳为三条:一是存在“一对多”的广播需求,例如订单创建后需要同时通知库存、积分、通知、风控多个下游;二是上下游处理节奏差异明显,例如秒杀下单与后续对账;三是需要保留事实轨迹以支持回放或审计。反之,如果业务要求强一致的同步事务、调用链短且结果必须立即返回,则同步API往往更简单可靠。
Oracle Cloud Infrastructure 为EDA提供了完整的产品组合。核心是OCI Streaming,它提供高吞吐、可持久化、可回放的日志式事件流,适合大规模事件管道;OCI Events面向资源状态变化,当对象存储上传文件、函数被调用或数据库备份完成时自动产生事件并触发规则;OCI Queue提供点对点、竞争消费的队列语义,适合任务分发;OCI Functions作为无服务器计算承载事件处理逻辑;Oracle Integration Cloud(OIC)则负责把事件与企业应用(ERP、HCM、CRM)以及REST/SOAP接口连接起来,提供可视化编排、适配器和映射能力。此外,OCI Notifications用于广播通知,API Gateway用于暴露和管理入口流量。这些服务组合起来,构成从事件产生、传输、处理到落地的完整链路。
本课程的学习路径按“概念—通道—处理—编排—治理”递进。第一阶段建立EDA思维与OCI集成服务全景;第二阶段深入OCI Streaming,掌握主题、分区、消费组、偏移量与保留策略;第三阶段学习OCI Events与Queue,理解资源事件与任务队列的差异;第四阶段用Functions编写事件处理函数,处理幂等、重试与死信;第五阶段通过OIC完成跨系统编排与数据映射;最后进入可观测性、安全与成本治理。贯穿全程的实战项目是“订单事件集成平台”:订单服务发布OrderCreated事件,库存、积分、通知三个消费者分别处理,异常事件进入死信队列并触发告警。项目将使用OCI Streaming作为主通道,Functions作为消费者,OIC负责与ERP同步,最终交付一条可运行、可观测、可回放的事件链路。