“为什么是金属?”“这是公司的限制/官僚主义。
我正在尝试在一台机器上启动一个Kafka集群,以便在尝试将东西发送到生产环境之前进行学习。
我的目标是设置1个控制器,1个代理,控制器和1个代理。我直接编辑server.properties
文件。
下面是控制器的代码
process.roles=controller
node.id=1
controller.quorum.voters=1@localhost:9193,2@localhost:9293
listeners=CONTROLLER1://localhost:9193
controller.listener.names=CONTROLLER1
listener.security.protocol.map=CONTROLLER1:PLAINTEXT,CONTROLLER2:PLAINTEXT,CONTROLLER3:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT
下面是Broker、Controller的代码
process.roles=broker,controller
node.id=2
controller.quorum.voters=1@localhost:9193,2@localhost:9293
listeners=CONTROLLER2://localhost:9293,BROKER2://localhost:9292
controller.listener.names=CONTROLLER2
listener.security.protocol.map=BROKER2:PLAINTEXT,CONTROLLER2:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT
advertised.listeners=BROKER2://localhost:9292
inter.broker.listener.name=BROKER2
这是经纪人的密码
process.roles=broker
node.id=3
controller.quorum.voters=1@localhost:9193,2@localhost:9293
listeners=BROKER3://localhost:9392
controller.listener.names=CONTROLLER1
listener.security.protocol.map=BROKER3:PLAINTEXT,CONTROLLER1:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
inter.broker.listener.name=BROKER3
advertised.listeners=BROKER3://localhost:9392
其余的设置几乎是默认的。
我能够使用CLI命令运行所有3个,它们似乎启动时没有任何错误
bin/kafka-storage.sh format -t ffQlsx4mQn-ipKduywm2Ig -c config/server.properties --ignore-formatted
bin/kafka-server-start.sh config/server.properties
然而,我遇到的问题是,当我尝试为测试主题生成/使用消息时(我使用num.partitions=10
运行)
[2023-09-12 11:32:13,844] WARN [Producer clientId=console-producer] 10 partitions have leader brokers without a matching listener, including [test-4, test-7, test-14, test-9, test-3, test-16, test-0, test-10, test-18, test-13] (org.apache.kafka.clients.NetworkClient)
[2023-09-12 11:32:10,709] WARN [Consumer clientId=console-consumer, groupId=console-consumer-96466] 10 partitions have leader brokers without a matching listener, including [test-4, test-7, test-14, test-9, test-3, test-16, test-0, test-10, test-18, test-13] (org.apache.kafka.clients.NetworkClient)
CLI命令包括bin/kafka-console-producer.sh --bootstrap-server localhost:9292 --topic test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9292 --topic test --from-beginning
如果我尝试列出现有的主题(bin/kafka-topics.sh --list --bootstrap-server localhost:9292
),我可以看到我的测试主题是在我的经纪人(9292和9392)上创建的,但错误仍然存在。
有人能给我指个方向吗?我做错了什么?
我正在使用:
- 来自Kafka官方页面的Kafka 3.5.1。Binary下载Scala 2.13
- Ubuntu 22.04操作系统
- openjdk 11.0.20.1
1条答案
按热度按时间8i9zcol21#
你的听众应该都有相同的名字。不要给他们编号
例如,
inter.broker.listener.name
用于复制,并且必须与要复制的分区相匹配。类似地,对于控制器,当quorum voters列表中的任何两个节点之间的
controller.listener.names
不同时,Kraft协议将在领导者选举事件中变得混乱。