同步错误恢复与事件驱动架构在微服务集成中的应用
1. 同步错误恢复
在系统运行过程中,事件可能会独立于引发它们的命令而失败。为了确保在错误不可避免地发生时能够恢复,我们首先需要知道错误何时发生,通常依靠日志来实现这一点。
以下是消息总线中的 handle_event 方法:
def handle_event(
event: events.Event,
queue: List[Message],
uow: unit_of_work.AbstractUnitOfWork
):
for handler in EVENT_HANDLERS[type(event)]:
try:
logger.debug('handling event %s with handler %s', event, handler)
handler(event, uow=uow)
queue.extend(uow.collect_new_events())
except Exception:
logger.exception('Exception handling event %s', event)
continue
当处理消息时,我们会先记录日志,例如对于 CustomerBecameVIP 用例,日志可能如下:
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



