小编Ale*_*ton的帖子

使用Kafka批量发送邮件

所以我从第一次听说卡夫卡的想法开始就喜欢它,但直到最近我才有机会接触它。我想我有一个可能适用的用例,但我想从更熟悉它的人那里得到一些意见。

基本上,我正在考虑一个通知系统,它可以在给定的时间段(比如 30 分钟)内批量处理消息,并将它们作为电子邮件、应用程序内通知或其他方式发送出去。我喜欢 Kafka 解决这个问题,主要是因为它固有的耐用性。我曾考虑使用更直接的消息队列,如 RabbitMQ、ActiveMQ、SQS 等,但我不喜欢它会迫使我在消费者端管理缓冲并冒丢失消息的风险。否则,我将不得不在二级持久存储中进行缓冲,这似乎违背了首先拥有队列的目的。

所以我的想法是将通知按用户分组,然后每 30 分钟消费者将读取最后 30 分钟的数据,聚合它,并发送由单个通知组成的摘要通知。

我有几个顾虑:

  1. 我疯狂地认为这是一个很好的用例吗?通过一点谷歌搜索,我没有看到很多人在谈论使用 Kafka 正是为了这个目的,但它对我来说似乎非常完美。
  2. 我应该如何处理个别通知错误?例如,假设用户在 30 分钟的窗口中收到 50 条通知,这些通知将分为 3 条不同的消息,分别发送。假设两个成功但一个失败,我应该如何处理重试逻辑?我发现了一些相对较新/晦涩的东西,例如https://github.com/softwaremill/kmq似乎试图解决这个问题,但我有点担心我担心这不适合卡夫卡模型。
  3. 我只是在违背常规吗?当然,这是人们每天都在构建的一个已解决的问题。有没有我忽略的更简单、更明显的技术?

感谢您的反馈意见!

apache-kafka

6
推荐指数
1
解决办法
4518
查看次数

标签 统计

apache-kafka ×1