Kafka文件说,幂等生产者是可能的,与相同的生产者会话,我无法理解这一点。
比方说,Kafka为每条消息添加序列号,最后一个序列号在Kafka中维护(不确定它维护在哪里)。
它是如何生成序列号的,它保存在哪里?
为什么当制作人崩溃并再次出现时,它不能保持序列?
我怎样才能使它在制作人会话之间真正幂等?
“幂等元”配置仅在生产者未崩溃时有效。
然而,对于事务,您可以在不同分区之间只发送一次数据。使用生产者id(自动创建)设置事务id。如果新的生产者id与相同的事务id一起到达,则表示您有问题。然后,记录将只写入一次。
这是Kafka非常缺少的一个功能,我看不到一个优雅而有效的方法来解决它,而不修改Kafka本身。
作为预备,如果您想要在任何失败(生产者或经纪人)之间实现真正的幂等性,那么您绝对需要业务层(而不是较低级别的传输层)中的某种id。
在Kafka中使用这样一个id可以做的是:您的生产者至少写入一个主题一次,然后您有一个Kafka Streams流程,使用您的业务层id从该主题中删除重复的消息,并将剩余的唯一消息发布到另一个主题。为了提高效率,您应该使用单调递增的id,也就是序列号,否则您将不得不保留(并保留)您见过的每个id,这相当于html" target="_blank">内存泄漏,除非您将去重复限制为最后一个x天/小时/分钟,并只保留最新的身份证。
或者,你给Apache Pulsar一个尝试,除了解决Kafka的其他痛处(不得不做一个昂贵的手动和容易出错的重新平衡,以便横向扩展一个主题,仅举一个例子)之外,它还内置了这个功能。
幂等生产者在生产者进程的生命周期内只有保证。如果崩溃,新的幂等生产者将有一个不同的producerId,并将启动自己的序列。
序列号仅从0开始,每个记录的序列号都以单值递增。如果某个记录未能交付,则会使用其现有序列号再次发送该记录,以便代理可以消除重复数据(如果需要)。序列号为每个生产者和每个分区。
目前,Kafka没有提供“继续”幂等生产者会话的方法。每次启动一个时,它都会得到一个新的、唯一的ProducerId(由集群生成)
我在应用程序中使用了Kafka 1.0.1,我已经开始使用0.11中引入的幂等生产者功能,在使用幂等生产者功能时,我很难理解排序保证。 我的生产者的配置是: 重试50次 根据文件: 重试 设置一个大于零的值将导致客户端重新发送任何记录,如果该记录的发送失败,可能会出现暂时性错误。请注意,此重试与客户端在收到错误后重新发送记录没有什么不同。允许在不设置最大值的情况下重试。航班请求。每连接到1可能会改
我使用带有幂等生产者配置的spring kafka: 这是我的配置道具: 我的Kafka制作人抛出OutOfOrderSequence异常: 2019-03-06 21:25:47发送者[ERROR][生产者clientId=生产者-1]代理返回org.apache.kafka.common.errors.OutOfOrderSequence异常:代理在偏移-1处收到主题分区主题-1的乱序序列号。
我想利用Kafka 0.11中引入的幂等生产者。根据这篇融合的博客文章,添加了一个新属性来支持这一点: 幂等性:每个分区仅一次有序语义 要启用此功能并在每个分区中准确获取一次语义,即没有重复,没有数据丢失,并且为了语义,请将生产者配置为设置“enable.idemponence=true”。 这一点既不是Spring Cloud Stream,也不是Spring Kafka文档对该属性的使用。我们
我有一个Spring-boot应用程序,可以听Kafka。为了避免重复处理,我尝试手动提交。为此,我在阅读主题后异步提交了一条消息。但是我被困在如何实现消费者幂等,这样记录就不会被处理两次。
我的应用程序有5个以上的消费者在使用一个kafka主题的5个分区。(使用kafka版本11)我的消费者每个都产生一个消息到另一个主题,然后保存一些状态到数据库,然后做一个手动立即确认,并移动到下一个消息。 我试图解决当他们向出站主题发出成功时的场景。那么我们就会失败/失去消费者。当另一个使用者接管分区时,它将向出站主题发出另一条消息。这很糟糕:( 我发现Kafka现在有了幂等制作人,但从我读到的内
主要内容:业务背景,初版防重代码,瞬时重试+多线程并发问题分析,数据库唯一索引实现幂等,分布式锁实现幂等,总结业务背景 今天给大家聊聊线上系统的接口幂等问题,以及如何通过分布式锁来保障接口的幂等性,同时会给大家分享一下我们在基于分布式锁实现接口幂等性的时候,一些生产实践经验的积累。 首先给大家说说,假如说要是我们线上系统的核心接口要是没有幂等性保障机制的话,可能会出现什么情况? 其实非常简单,假设你有一个系统,他有一个接口,这个接口接受请求的时候假设会在数据库里插入一条数据,正常情况下一个用户对