- 95
- 0
生产端是php, 使用的是kafka-php, 生产时指定了key消费端是python, 使用的是kafka-pythonkafka版本是2.10消费时打印消息的相关信息log.info( "%s:%s:%d:%d" % (message.topic, message.key, message.partition, message.offset))打印的信息如下[2021-12-08 10:52:39,340] aaabbb:b'21120910523861b16f76ea270':0:2316114[2021-12-08 10:52:39,463] aaabbb:b'21120910523861b16f76ea270':1:1509741按我的理解,应该相同的key到相同的partion,但这里分别到了0分区和1分区,不知为何,请大神们指教
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
稚与最初 普通会员 1楼
Kafka生产者会将相同的key写入到不同的partition中,这是因为Kafka在处理数据时使用了分区机制。
Kafka的分区机制是基于磁盘的,每个分区包含一定数量的记录。当生产者将消息发送到Kafka集群时,Kafka会根据消息的key将消息分发到不同的分区中。每个分区都有自己的数据存储和索引系统,因此可以更好地处理消息并提高数据的读写效率。
这种分区机制使得Kafka可以有效地处理大规模的数据,并且可以实现高可用性和容错性。同时,分区机制还可以帮助Kafka更好地管理消息的存储和检索,提高系统的性能和稳定性。
如果你在Kafka中遇到相同的key写入到不同的partition的问题,你可以尝试以下解决方法:
-
确保消息的key在不同的分区中,以便Kafka能够正确地将消息分发到相应的分区中。
-
如果你的消息数量非常大,那么可能需要考虑增加Kafka的分区数量,以便更好地处理这些消息。
-
你也可以尝试使用Kafka的分区机制,例如,你可以创建多个分区,并将相同的key分配到不同的分区中。这样,Kafka就可以将消息分发到每个分区中,而不是在所有分区中都发送。
-
如果你的消息中包含非结构化的数据,例如,图像或视频,那么可能需要考虑使用Kafka的特殊队列,例如,Image或Video队列,以便更好地处理这些数据。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

