我看代码的时候发现有这么一个提交 说是当客户端指定分区大于服务端topic时取较小的那个,我不是很清楚为什么要这么做,我感觉取服务端的topic大小不才是最准确的吗。所以想看下#212那个issue到底发现了什么问题 才要这么做 为啥要取两者之间的较小值?
这个case不好追溯了。不过自动创建Topic 这个链路是非常明确的,不适合生产环境。生产环境,资源的CRUD管理还是要严格遵守。否则就会产生这种细节上的纠结。内部的约定很难被业务方理解的。此答案整理自钉群“群1-Apache RocketMQ 中国开发 者钉钉群”
这种情况是为了防止客户端在指定分区时输入错误的分区号。如果服务端的topic只有3个分区,而客户端却指定了4个分区,这将导致客户端的消息无法正确发送到服务端。所以服务端为了避免这种情况,会自动取客户端指定的分区号与服务端topic中分区号的较小值作为实际的分区号来发送消息。这样可以保证消息被正确地路由到正确的分区。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/