gpt4 book ai didi

go - 我们如何在运行Kafka Confluent Golang中多个进程的应用程序上管理事务ID?

转载 作者:行者123 更新时间:2023-12-01 22:21:56 25 4
gpt4 key购买 nike

应用概述:
接受来自客户端的日志的提取服务。处理日志,然后将其推送到Kafka。由于这些日志非常重要,我无法承受同样的损失,因此我决定采用相同的交易记录。
文档状态:

通过设置生产者实例来配置交易
transactional.id为应用程序唯一的标识符。这个编号
将用于隔离应用程序先前实例中的过时事务,通常>发生中断或崩溃后。

我正在应用程序的开头生成一个静态事务ID。这意味着在多次调用该API时(对于不同的进程同时),将使用相同的事务ID。这是否会导致多个进程按顺序生成数据?
这是正确的方法吗?如果没有,我该如何改善呢?

最佳答案

通过Kafka中的幂等性和交易,您可以在Kafka中获得一次保证。但似乎您需要至少一次保证。它保证了日志消息不会丢失,但可以重复。
为了启用此保证,您需要在生产者中设置 acks=all 。只要您向kafka生成内容,只要一个同步副本处于 Activity 状态,就不会丢失任何数据。
我以前处理过关键日志,而设置了acks=all的Kafka从来都不是问题。在进入Kafka的域之前,生产者中的数据已经丢失。
也许我误解了您的问题,如果真是这样,请告诉我。

关于go - 我们如何在运行Kafka Confluent Golang中多个进程的应用程序上管理事务ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62890215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com