kafka 生产者警告:NOT_ENOUGH_REPLICAS 在主题分区 mytopic-events-0 上生成带有相关 id 的错误响应,正在重试

问题描述 投票:0回答:1

我们在 debezium-mysql-connector 日志中每秒看到此警告 10 次:

[kafka-producer-network-thread | connect-distributed-offsets] 
WARN  org.apache.kafka.clients.producer.internals.Sender - 
[Producer clientId=connect-distributed-offsets] Got error produce response with 
correlation id 34626 on topic-partition 
debezium-events-offset-dev-topic-events2-0, retrying (2147449048 attempts left). 
Error: NOT_ENOUGH_REPLICAS

这是生产者端配置:

org.apache.kafka.clients.producer.ProducerConfig - Idempotence will be disabled because acks is set to 1, not set to 'all'."
org.apache.kafka.clients.producer.ProducerConfig - ProducerConfig values:"
"acks = 1"
"auto.include.jmx.reporter = true"
"batch.size = 32768"
"bootstrap.servers = [b-1.eventsmskafka.qgfgzh.c14.kafka.us-east-1.amazonaws.com:9092, b-2.eventsmskafka.qgfgzh.c14.kafka.us-east-1.amazonaws.com:9092, b-3.eventsmskafka.qgfgzh.c14.kafka.us-east-1.amazonaws.com:9092]"
"buffer.memory = 1048576"
"client.dns.lookup = use_all_dns_ips"
"client.id = debezium-cdc-events2-schemahistory"
"compression.type = none"
"connections.max.idle.ms = 540000"
"delivery.timeout.ms = 120000"
"enable.idempotence = false"
"interceptor.classes = []"
"key.serializer = class org.apache.kafka.common.serialization.StringSerializer"
"linger.ms = 0"
"max.block.ms = 10000"
"max.in.flight.requests.per.connection = 5"
"max.request.size = 1048576"
"metadata.max.age.ms = 300000"
"metadata.max.idle.ms = 300000"
"metric.reporters = []"
"metrics.num.samples = 2"
"metrics.recording.level = INFO"
"metrics.sample.window.ms = 30000"
"partitioner.adaptive.partitioning.enable = true"
"partitioner.availability.timeout.ms = 0"
"partitioner.class = null"
"partitioner.ignore.keys = false"
"receive.buffer.bytes = 32768"
"reconnect.backoff.max.ms = 1000"
"reconnect.backoff.ms = 50"
"request.timeout.ms = 30000"
"retries = 1"
"retry.backoff.ms = 100"
"sasl.client.callback.handler.class = null"
"sasl.jaas.config = null"
"sasl.kerberos.kinit.cmd = /usr/bin/kinit"
"sasl.kerberos.min.time.before.relogin = 60000"
"sasl.kerberos.service.name = null"
"sasl.kerberos.ticket.renew.jitter = 0.05"
"sasl.kerberos.ticket.renew.window.factor = 0.8"
"sasl.login.callback.handler.class = null"
"sasl.login.class = null"
"sasl.login.connect.timeout.ms = null"
"sasl.login.read.timeout.ms = null"
"sasl.login.refresh.buffer.seconds = 300"
"sasl.login.refresh.min.period.seconds = 60"
"sasl.login.refresh.window.factor = 0.8"
"sasl.login.refresh.window.jitter = 0.05"
"sasl.login.retry.backoff.max.ms = 10000"
"sasl.login.retry.backoff.ms = 100"
"sasl.mechanism = GSSAPI"
"sasl.oauthbearer.clock.skew.seconds = 30"
"sasl.oauthbearer.expected.audience = null"
"sasl.oauthbearer.expected.issuer = null"
"sasl.oauthbearer.jwks.endpoint.refresh.ms = 3600000"
"sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms = 10000"
"sasl.oauthbearer.jwks.endpoint.retry.backoff.ms = 100"
"sasl.oauthbearer.jwks.endpoint.url = null"
"sasl.oauthbearer.scope.claim.name = scope"
"sasl.oauthbearer.sub.claim.name = sub"
"sasl.oauthbearer.token.endpoint.url = null"
"security.protocol = PLAINTEXT"
"security.providers = null"
"send.buffer.bytes = 131072"
"socket.connection.setup.timeout.max.ms = 30000"
"socket.connection.setup.timeout.ms = 10000"
"ssl.cipher.suites = null"
"ssl.enabled.protocols = [TLSv1.2, TLSv1.3]"
"ssl.endpoint.identification.algorithm = https"
"ssl.engine.factory.class = null"
"ssl.key.password = null"
"ssl.keymanager.algorithm = SunX509"
"ssl.keystore.certificate.chain = null"
"ssl.keystore.key = null"
"ssl.keystore.location = null"
"ssl.keystore.password = null"
"ssl.keystore.type = JKS"
"ssl.protocol = TLSv1.3"
"ssl.provider = null"
"ssl.secure.random.implementation = null"
"ssl.trustmanager.algorithm = PKIX"
"ssl.truststore.certificates = null"
"ssl.truststore.location = null"
"ssl.truststore.password = null"
"ssl.truststore.type = JKS"
"transaction.timeout.ms = 60000"
"transactional.id = null"
"value.serializer = class org.apache.kafka.common.serialization.StringSerializer"

关于如何修复此错误有什么想法吗?

apache-kafka apache-kafka-connect debezium
1个回答
0
投票

生产者配置不是您需要查看的(客户端 ID 不同)。

您需要查看 Debezium / Kafka Connect 工作线程配置,以获得

offsets.storage.topic=connect-distributed-offsets
。该错误表明该主题没有健康的副本(另请参阅
offset.storage.replication.factor

用它来检查 ISR 列表

kafka-topics --describe --topic=connect-distributed-offsets
© www.soinside.com 2019 - 2024. All rights reserved.