一、事件驱动的架构设计

事件驱动的架构由两个元素组成:
- 生成事件流的事件「生成者」
- 侦听事件的事件「消费者」
事件驱动的架构可以使用两种模式:
- 发布/订阅: 消息框架保持了对订阅的跟踪。 事件发布后,它会将事件发送给每位订阅者。 订阅者在接收事件后,便无法重新发送,新订阅者也看不见此事件。
- 事件流式处理: 事件会写入日志。 事件是(在分区中)经过严格排序的,而且具有持久性。 客户端不会订阅流,但是客户端可以读取该流的任何部分。 客户端负责提升它在流中的位置。 这意味着客户端可以随时加入,并可以重播事件。
在使用时,有一些常见的变化:
- 简单事件处理。 事件会立即触发使用者中的某项操作。 例如,可以将应用与事件服务总线(Event Bus)配合使用,每当消息发布到服务总线主题后,函数便开始执行。
- 复杂事件处理。 使用者使用 Spark 之类的技术处理一系列事件,寻找事件数据中的模式。 例如,如果流量超过特定阈值,便可聚合在某个时间范围内从服务读取信息,并生成新通知。
- 事件流处理。 使用 Kafka 等数据流平台作为管道引入事件并将其转送到流处理器。 此流处理器可处理或转换流。 不同应用程序子系统可能有多种流处理器。
