大佬们,问下RocketMQ抢购功能,消费者处理逻辑怎么能拿到抢单者信息?类似美团众包,有个抢单功能,客户下单支付后,我是发mq给所有骑手,一个订单只能被一名骑手接单。是不是得通过前端点击抢单按钮来触发消费逻辑?
对于RocketMQ抢单功能,消费者处理逻辑如何获取抢单者信息,可以通过以下方式实现:
客户下单支付后,将订单信息发送到一个特定的主题(Topic)中,比如"order_topic"。
骑手作为消费者订阅该主题,编写消息监听器来处理订单消息。当有新的订单消息到达时,消费者会触发相应的消费逻辑。
在消费者处理逻辑中,您可以根据业务需求进行抢单的判断和处理。当骑手收到订单消息时,可以在消费者端获取抢单者的信息。
如果抢单需要前端用户点击按钮触发,那么在用户点击抢单按钮时,可以将用户的相关信息(比如骑手ID、骑手名称等)一同发送给RocketMQ,并作为订单消息的一部分。
如果抢单不需要前端用户操作,而是自动根据某种规则或算法选择骑手进行抢单,那么在消费者处理逻辑中,可以通过代码逻辑来获取或生成抢单者的信息。
客户APP下单 然后广播给订阅这个下单消息的骑手 消费逻辑里做该运单的唯一处理逻辑 这样不就可以,我感觉不是这样玩,客户下单后,订单状态变为可抢单,即进入抢单池,一名骑手订阅了说明这名骑手有资格从抢单池获取数据,骑手接单时分布式锁锁住,然后是业务流程。下单后mq消费只需要进入抢单池即可。我是这样想的。,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/