我有 2 个微服务在 Azure 上的 Kubernetes 集群中运行。当项目更新时,“项目”微服务会向 Kafka 发送一个事件。 “分析”微服务使用该事件,进行一些昂贵的计算,最后发送包含结果的电子邮件。
为了避免向接收器发送垃圾邮件,我想实现某种去抖动模式,以便仅在收到上次更新事件后一小时后才进行计算。由于“分析”微服务在大部分时间都会处于空闲状态,并且冷启动不是问题,因此如果在其不活动时不保留资源将是有利的。
使用 Kafka 时如何实现去抖动场景?我考虑过引入一个资源密集度较低的微服务,其唯一目的是在内部时钟到期后触发“分析”微服务。这是一个明智的解决方案吗?我非常感谢以前处理过类似问题的人的意见。
最佳答案
您是否考虑过 Temporal 的耐用计时器。参见这里:https://docs.temporal.io/docs/workflows/
您还可以考虑将 Temporal 与 Spiderwiz 结合起来简化您的整个工作流程。
关于azure - 如何为事件驱动的微服务实现 "debouncing"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984282/