22、事件驱动与请求响应微服务集成:原理、模式与实践

事件驱动与请求响应微服务集成:原理、模式与实践

1. 事件驱动模式的优缺点

使用事件驱动模式有诸多好处:
- 允许在应用业务逻辑时将事件处理与请求 - 响应 API 混合。
- 服务可以按需调用任何外部 API。
- 可以通过向端点发出多个非阻塞请求并行处理事件。服务在发送每个请求后等待结果,获取结果后更新偏移量并处理下一批事件。不过,并行处理仅适用于队列式流,因为处理顺序无法保证。

但这种方法也存在一些缺点:
- 向外部服务发出请求会给工作流引入不确定性因素。重新处理事件,即使只是失败的批次,也可能产生与原始处理不同的结果。
- 当请求 - 响应端点由组织外部的第三方控制时,API 或响应格式的更改可能导致微服务失败。
- 请求频率也是一个问题。例如,微服务出现 bug 需要重新处理输入流时,事件驱动的微服务通常会尽可能快地处理事件,这可能导致对外部 API 的请求激增,使远程服务失败或阻止来自该 IP 地址的流量,导致许多请求失败和微服务的紧密重试循环。可以使用配额来限制消费和处理速率,但处理请求的微服务也需要严格的限流。

2. 处理和服务有状态数据

可以创建事件驱动的微服务,通过请求 - 响应端点实现对状态的随机访问。微服务从输入事件流中消费事件,处理它们,应用业务逻辑,并根据应用需求将状态存储在内部或外部。请求 - 响应 API 提供对这些底层状态存储的访问。这种方法主要分为两部分:从内部状态存储提供状态服务和从外部状态存储提供状态服务。

2.1 使用内部状态存储服务实时请求

微服务可以提供来自其内部状态的结果。客户端请求被发送到负载均衡器,负载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值