我有一个2节点的kafka集群,有2个经纪人和动物园管理员。然后我创建了一个带有2个分区和复制因子= 2的主题kafka-test。我的生产者配置是: {" partitioner.class" " kafka.producer.DefaultPartitioner" " metadata.broker.list" " 172.32.1.248:9092,172.32.1.251:9092" " request.required.acks" " 1"}
因此对于DefaultPartitoner,它将计算和hashvalue并除以num_partiton来决定它将去往哪个分区,所以我创建了我的keyedMessage val key-msg = KeyedMessage(" kafka-test"," a","测试消息!") prod.send(键-MSG)
"""的hashValue是97和97%2 = 1,所以数据应该转到partition1。但是,数据确实没有发送给经纪人(我有一个控制台消费者正在运行,但没有收到来自该主题的任何消息)。如果我创建没有密钥的密钥消息,它可以正常工作
val key-msg = KeyedMessage(" kafka-test","测试消息!") prod.send(键-MSG)
我使用钥匙错误还是其他什么? 感谢