我在用Kafka 2.9.2-0.8.1
版本。。
从文件上看,似乎 load balancing
为配置的群集自动执行。
以下是我的java producer配置:
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
接收相同的数据。。负载不平衡。
我是否需要实现任何其他负载平衡/分区逻辑?
你知道我在这里遗漏了什么吗?
暂无答案!
目前还没有任何答案,快来回答吧!