
134
第 10章
基础的生产者和消费者微服务
基础的生产者和消费者(
basic producer and consumer
,
BPC
)微服务从一个或多个事件流
中摄取事件,应用必要的转换逻辑或业务逻辑,然后向输出事件流发出必要的事件。同步
的“请求
–
响应”
I/O
也可能是此工作流中的一部分
,但这个主题将在第
13
章中进行更详
细的介绍。本章会聚焦于事件驱动部分。
BPC
微服务的特征是使用了基础的消费者客户端和生产者客户端
。基础的消费者客户端不
涉及任何事件调度、水位、物化机制、变更日志或水平伸缩带本地状态存储的处理实例。
这些功能通常只属于功能更全面的框架,第
11
章和第
12
章将更深入地讨论这些框架
。虽
然你也可以开发自己的库来实现这些功能,但这远远超出了本章所要介绍的内容范围。因
此,你必须仔细考虑
BPC
模式是否能够满足业务需求。
可以使用最常用的语言来实现生产者客户端和消费者客户端,从而降低启用事件驱动型微
服务时的认知开销。一个微服务应用程序的代码包含了界限上下文的完整工作流,这使微
服务的职责更聚焦并易于理解。工作流还可以轻松地包装到一个或多个容器中(取决于实
现的复杂性),然后可以使用微服务的容器管理解决方案部署和执行这些容器。
10.1
BPC
的适用场合
尽管缺少全能型框架组件的大部分能力,但
BPC
微服务可以满足广泛的业务需求。
BPC
既
能轻松实现像无状态转换这样的简单模式,也能实现不需要确定性事件调度的有状态模式。
在
BPC
实现中,
外部状态存储比内部状态存储更常被使用,因为在没有采用全能型流框架
的情况下,在多实例之间伸缩本地状态和从实例故障中恢复是很困难的。外部状态存储可 ...