既然你已经查了资料,key的作用可不是你加了随机数这么用的(那还不如不传,null),kafka设计的时候有几个核心。
key你写死不会变的嘛。。。。。
多找了一下资料,kafka生产者消息如何分区:默认是你说的轮询策略,还有随机策略,按key分区策略,其他分区策略,比如按ip地址。我现在改了一下,把key值改为随机:
String key = "key_"+getRandomString(5);
simpleProducer.sendNoPartition(topic, key, message);
如此,生产的消息也会分到各个区。
谢谢你,原来客户端默认是轮询消息到各个分区的。
我的新分区是通过kafka-topics.bat --alter --zookeeper 127.0.0.1:2181 --partitions 2 这种命令行提前更改好的。更改后,才生产消息,但是发现生产的消息 只到其中一个区了,其他区没有消息。