
194
|
第
14
章
时前移其消费者偏移量。但是,在某些情况下,必须手动调整偏移量。
应用程序重置:重置偏移量
变更微服务的逻辑可能需要你从之前的时间点重新处理事件。通常重新处理会从流的起
始点进行,但你选择的点可以根据服务的需求有所不同。
应用程序重置:前移偏移量
也许你的微服务不需要旧数据,只消费最新的数据。你可以重置应用程序偏移量到最近
的点而不是最早的那个点。
应用程序恢复:指定偏移量
你可能想把偏移量重置到特定的时间点。这通常在多集群故障转移中起作用,在这个过
程中,你想要确保没有丢失任何消息,但不希望从最开始消费事件。一种策略是将偏移
量重置为崩溃前
N
分钟的时间,以确保不会丢失任何复制的消息。
对于生产级
DevOps
,团队必须是微服务的拥有者才能修改其偏移量
,这是微服务
–
团队
分配系统提供的功能。
14.8
事件流的权限和访问控制列表
对数据的访问控制不仅从业务安全的角度来看是重要的,而且也是实施单一写原则的一种
手段。权限和访问控制列表(
ACL
)确保了界限上下文可以强制限定它们的边界
。对给定
事件流的访问权限只能由拥有生产微服务的团队授予,你可以使用微服务
–
团队分配系统
来实施这一限制。权限通常分为以下几类(当然,这取决于事件代理的实现):读、写、
创建、删除、修改和描述。
ACL
依赖于每个消费者和生产者的个人标识。确保尽快为你的事件代理和
服务启用并强制实施标识,最好从一开始就执行。事后添加标识是非常痛苦
的,因为它需要更新和检查连接到事件代理的每个服务。
ACL
强化了界限上下文。例如,一个微服务应该只拥有对其内部事件流和变更事件流的创 ...