我正在使用卡夫卡2.9.2-0.8.1
版本..
从文档来看,这似乎load balancing
是为配置的集群自动完成的。
这是我的 Java 生产者配置:
Properties props = new Properties();
props.put("batch.size", "200");
props.put("producer.type", "async");
props.put("connect.timeout.ms", "5000");
props.put("request.required.acks", "0");
props.put("metadata.broker.list", "10.10.73.52:9092,10.10.70.15:9092");
props.put("serializer.class", "kafka.serializer.DefaultEncoder");
props.put("partitioner.class", "kafka.producer.DefaultPartitioner");
注意:我保留了 Kafka 发行版提供的所有默认配置。
Zookeeper 似乎发现了我的另一个经纪人:10.10.70.15.. 当我检查日志时..
我test-topic
在其中一个经纪人上创建了一个.. 使用console-producer.sh
.. 然后在所有其他注册的文件夹中创建了适当directory
的文件夹。/tmp/kafka-logs
brokers
zookeeper
-->./kafka-topics.sh --create --zookeeper 10.10.73.52:2181 --replication-factor 2 --partitions 2 --topic test-topic
我已使用以下提供的行来订阅两台代理机器上的主题..
-->./kafka-console-consumer.sh --zookeeper 10.10.73.52:2181 --topic test-topic
生产者代码:
KeyedMessage<String, byte[]> publishData = new KeyedMessage<String, byte[]>("test-topic", data);
producer.send(publishData);
我看到both the brokers
收到相同的数据..负载不平衡。
我是否需要实现任何其他负载平衡/分区逻辑?
任何想法我在这里想念什么?