azure - 如何为事件驱动的微服务实现 "debouncing"?

标签 azure kubernetes apache-kafka azure-functions microservices

我有 2 个微服务在 Azure 上的 Kubernetes 集群中运行。当项目更新时,“项目”微服务会向 Kafka 发送一个事件。 “分析”微服务使用该事件,进行一些昂贵的计算,最后发送包含结果的电子邮件。

为了避免向接收器发送垃圾邮件,我想实现某种去抖动模式,以便仅在收到上次更新事件后一小时后才进行计算。由于“分析”微服务在大部分时间都会处于空闲状态,并且冷启动不是问题,因此如果在其不活动时不保留资源将是有利的。

使用 Kafka 时如何实现去抖动场景?我考虑过引入一个资源密集度较低的微服务,其唯一目的是在内部时钟到期后触发“分析”微服务。这是一个明智的解决方案吗?我非常感谢以前处理过类似问题的人的意见。

最佳答案

您是否考虑过 Temporal 的耐用计时器。参见这里:https://docs.temporal.io/docs/workflows/

您还可以考虑将 Temporal 与 Spiderwiz 结合起来简化您的整个工作流程。

关于azure - 如何为事件驱动的微服务实现 "debouncing"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984282/

相关文章:

linq - .NET 中的 Azure 表存储查询,其属性名称在设计时未知

azure - AADSTS90002 找不到租户 如果租户没有事件订阅,则可能会发生这种情况

docker - Elasticsearch Pod没有运行重启

go - 重消费Kafka消息的可能原因

使用 appication.yml/properties 具有不同属性配置的 Spring Boot Kafka 多个消费者

apache-kafka - kafka区分消耗的偏移量和提交的偏移量吗?

azure - generateSharedAccessSignature 未添加 sv 参数?

Spring 云微服务的 Azure AD 登录/注销实现

jenkins - 以 root 用户身份访问 pod 的远程 shell

reactjs - Kubernetes 中的 Dockerfile 入口点未执行