无法使用partitioner.class = kafka.producer.DefaultPartitioner向经纪人发送keyedMessage

时间:2015-02-09 14:27:45

标签: apache-kafka

我有一个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)

我使用钥匙错误还是其他什么? 感谢

0 个答案:

没有答案