[英]Apache Kafka Java consumer does not receive message for topic with replication factor more than one
[英]Error creating Kafka topic :- replication factor larger than available brokers
我正在尝试使用以下代码Source通过AdminCommand创建一个kafka主题
ZkClient zkClient = new ZkClient(kafkaHost, 10000, 10000, ZKStringSerializer$.MODULE$);
AdminUtils.createTopic(zkClient, "pa_reliancepoc_telecom_usageevent", 10, 2, new Properties());
但得到以下例外
Exception in thread "main" kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:155)
但是,我可以使用shell命令创建主题。
在你的代码中,
AdminUtils.createTopic(zkClient, "pa_reliancepoc_telecom_usageevent", 10, 2, new Properties());
第四个参数是复制因子。 因此,您尝试创建名为pa_reliancepoc_telecom_usageevent
且分区count of 10
且replication of 2
。 因此在创建主题时应该有two kafka brokers
。 如果少于两个,则会出现以下异常。
Exception in thread "main" kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:155)
确保您正在运行kafka cluster with two broker nodes
并且should be alive while creating the topic.
这两个节点should be alive while creating the topic.
要在群集中运行kafka,请参阅此链接中的步骤6
配置本地计算机以启动并运行多个代理,以防您决定使replication_factor > 1
。
您只需拥有server.properties
文件的多个副本即可。 例如
server-1.properties
和server-2.properties
然后,您需要在每个文件中指定不同的broker.id
和port
,以使它们唯一。
config/server-1.properties:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
然后使用以下命令启动多个实例
> bin/kafka-server-start.sh config/server-1.properties &
> bin/kafka-server-start.sh config/server-2.properties &
有关更多详细信息,请查看步骤6:设置多代理群集
在设置多个经纪人时我遇到了同样的问题。
我缺少的步骤是:
编辑配置文件时:config / server-1.properties:broker.id = 1 listeners = PLAINTEXT://:9093 log.dir = / tmp / kafka-logs-1
还需要更新LOG BASICS部分(见下文):
#######################日志基础知识 log.dirs=/tmp/kafka-logs-1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.