当前位置: 首页 > 知识库问答 >
问题:

有没有办法通知Kafka消息制作人再次发送消息

阎昌勋
2023-03-14

假设kafka消息生产者向一个主题发送一条事件消息。然后一个消费者处理这个事件消息。但是,这个消费者进程因为业务错误而抛出异常,所以他想让消息生产者知道它并再次怨恨。

有什么解决办法吗?

共有2个答案

邢博涛
2023-03-14

如果你希望它永远不会错过一条消息,但可能会重复偶尔的消息,你可以使用传递语义“至少一次”。

艾俊悟
2023-03-14

一般来说,你不应该在生产者和消费者之间制造这种耦合。

如果消费者未能读取消息,那么理想情况下它不应该提交该偏移量。如果记录在Kafka中没有过期,那么生产者无需发送任何东西,因为数据仍在代理中,因此重新启动消费者应用程序将尝试再次读取失败的偏移量。

 类似资料:
  • 我使用spring框架和有3个代理集群的kafka。我发现使用者没有使用某些消息(假设在所有发送消息中使用0.01%),所以在生产者代码中,我记录了API返回的消息偏移量: 我使用返回偏移量来查询所有分区中的kafka主题,但它没有找到消息(我测试了与消费者使用的和他们在kafka中的消息相关的其他偏移量),问题是什么,我如何确保该消息发送到kafka? 我还在producer中使用了

  • 我们正在使用spring kafka 1.2.2。释放 我们想要的 1.一旦消息被消费并成功处理,就会在spring-kafka中提交偏移量。 我正在使用Manaul Commit/Ac认收它,它工作正常。 2.在任何异常的情况下,我们希望spring-kafka重新发送相同的消息。 我们对任何系统误差抛出RunTime异常,它由spring-kafka记录并且从未提交。 这很好,因为我们不希望它

  • 我是斯卡拉和Kafka的新手,遇到了一些麻烦。 我正在尝试将scala kafka producer连接到安装在cloudera express服务器上的kafka服务器。我已经用这些指令在VMs中这样做过一次了,没有任何问题。 当我运行producer时,所需的主题被创建,但没有任何消息被发送,或者我是这样认为的。 Kafka制作人 当我执行run方法时,我看到“producer-send:#”

  • 我试图使用谷歌云计算引擎VM实例作为Kafka消费者。我发现虚拟机阻止了来自任何外部计算机的通信,我成功地设置了防火墙规则,从本地计算机访问虚拟机。 我能够在云虚拟机实例上创建和列出主题。但我无法收发Kafka主题的信息。它抛出超时异常。 我使用telnet检查端口是否打开,并获得了端口的转义序列(9092)。 当我尝试使用另一个云虚拟机实例实现相同的事情时,我能够执行所有kafka操作。(发送/

  • 说明 此接口用于向排队的微信用户发送消息,如到号时的叫号信息 请求地址 http://api.dc78.cn/Api/wwnotify 请求方式 GET 请求参数 URL参数 参数名称 必填 描述 范例 id 排队号id msg 要发送的信息 POST参数 参数名称 必填 描述 范例 无 GET参数 参数名称 必填 描述 范例 id 排队号id 是 排队列表协议中的id 223729 msg 通知

  • 线下取的号不能发送通知 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 wwget string get GET参数组,本组参数需要参与签名 是 object └id 排队号id 否 47302320 number └msg 通知消息 否 38号客人请返回用餐啦 string 请求示例 { "action