kafka数据丢失,在producer中

hsvhsicv  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(586)

我一直在尝试配置一个kafka代理,一个主题,一个生产者,一个消费者。当生产者生产时,如果经纪人倒下,数据就会丢失,例如:

  1. In Buffer:
  2. Datum 1 - published
  3. Datum 2 - published
  4. .
  5. . ---->(Broker goes down for a while and reconnects...)
  6. .
  7. Datum 4 - published
  8. Datum 5 - published

为生产者配置的属性包括:

  1. bootstrap.servers=localhost:9092
  2. acks=all
  3. retries=1
  4. batch.size=16384
  5. linger.ms=2
  6. buffer.memory=33554432
  7. key.serializer=org.apache.kafka.common.serialization.IntegerSerializer
  8. value.serializer=org.apache.kafka.common.serialization.StringSerializer
  9. producer.type=sync
  10. buffer.size=102400
  11. reconnect.interval=30000
  12. request.required.acks=1

数据大小小于配置的缓冲区大小。。帮我知道我哪里出错了。。。!

yyyllmsg

yyyllmsg1#

不知道你到底在做什么。我假设您在代理关闭时尝试写入kafka的消息没有被kafka确认。如果消息未确认,则表示消息未写入Kafka,生产者需要重新尝试写入消息。
最简单的方法是设置配置参数 retries 以及 retry.backoff.ms 相应地。
在应用程序级别,还可以注册 Callbacksend(..., Callback) 获得成功/失败的信息。如果失败,您可以通过调用 send() 再一次。

相关问题