Kafka主题存在,但经纪人不提供

ni65a41a  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(323)

我有1000多个主题。在一次中断之后,我发现在列出主题时只显示了少数主题。如果我写了一个现有但不可用的主题,它会说:

[2020-04-17 16:17:09,153] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 2 : {ONLP_NEWORDER_1428=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

但是,在这之后,后续的写操作就成功了,并且当我列出所有主题时,主题就显示出来了。有没有什么技巧可以让我不用写信就能把主题写回来?

8hhllhi2

8hhllhi21#

Kafka经纪人上线的延迟可能是由于以下两种情况之一:
领导人选举推迟
kafka被配置为在发布第一条消息时创建主题。
情景一:领导人选举推迟:
错误消息-onlp\u neworder\u 1428=leader\u not\u available表示主题的leader节点尚未联机。
中断后,领导人选举需要一些时间(根据配置和网络条件,需要几秒钟到几分钟)
通过优化Kafka配置,可以最大限度地减少领导人选举所需的时间。
有关优化Kafka的更多信息:
https://www.confluent.io/wp-content/uploads/optimizing-your-apache-kafka-deployment-1.pdf
场景#2:kafka配置为在发布第一条消息时创建主题
默认情况下,kafka设置为在生产者发布第一条消息时创建主题。

This setting controls the automatic creation of topics.

    producer.auto.create.topics 

    The possible values for this setting are:

    allow-server-side  --> Default. Create topic on first message published

    client-side        --> Create topic at the first request from a consumer

    false              --> Do not create topics automatically

(a) 允许服务器端
这是默认设置
如果代理的“auto.create.topics.enable”设置为true,则此设置允许生产者自动创建主题。
(b) false-允许自动创建主题。
(c) 客户端
允许在使用者尝试使用消息时创建主题(仅在代理>版本0.10.1.1上受支持)
更多信息:
https://cwiki.apache.org/confluence/display/kafka/kip-487%3a+client-side+automatic+topic+creation+on+producer
https://docs.confluent.io/current/installation/configuration/broker-configs.html
https://docs.confluent.io/current/installation/configuration/producer-configs.html
https://docs.cloudera.com/hdpdocuments/hdp3/hdp-3.1.5/kafka-working-with-topics/content/creating_a_kafka_topic.html

sg3maiej

sg3maiej2#

您可以使用kafka-leader-election.sh脚本或scala的leaderelectioncommand对象触发分区的领导人重新选举。

bin/kafka-leader-election.sh --bootstrap-server kafka:9092  --all-topic-partitions --election-type unclear

相关问题