16、深入探索事件驱动架构:从工作流到任务队列

深入探索事件驱动架构:从工作流到任务队列

1. 工作流编排

工作流编排允许在与关联 ID 相关的更大系统定义上下文中,对事件模式进行临时或正式定义。通过在更大上下文中隔离与关联 ID 相关的消息,开发者可以控制组件间的工作流,并将事件管理的复杂性集中到工作流配置中。

工作流编排常用于实现 Saga 模式,这是一种使用消息和每个微服务事务来管理分布式事务的机制。在 Saga 模式中,服务按指定顺序处理分布式事务;若事务失败,可运行一系列补偿事务来撤销已完成工作的影响。

工作流系统通过将工作流分解为相关的托管事件集,为每个工作流实例分配独立的存储和管理(锁定、更新等),从而实现水平扩展。当特定工作流不主动处理事件和更新系统状态时,它可以将系统的当前状态存储在外部存储中,然后退出。

以下是一个示例工作流的源代码:

async handle_event(event) {
  meaning = await extract_meaning(event);
  if (meaning.count > 5) {
    for (int i = 0; i < meaning.count; i += 5) {
       slice = meaning.select(i, i+4);
       submit_event(slice);
    }
  } else {
    correlation = await find_correlation(meaning)
    if (correlation.found) {
      boost_sentiment(c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值