是否可以标记消息已在其他线程中使用

遇到一个需求,消费者接收消息后使用netty向客户端发送数据,根据回执判断是否消费成功,现想出种解决办法

1、全局维护一个HashMap,以消息id为键,是否需要消费为值,consumer接收消息先查询HashMap判断是否需要消费,若仍不能返回已消费,调用netty发送给客户端并返回RECONSUME_LATER ,获取客户端回执后存入HashMap,下次consumer查询再进行判断(多线程HashMap加锁性能下降,多次重发消息影响rocketmq性能)

2、直接返回RECONSUME_LATER多次推送,不考虑客户端回执(网络压力大,多次重发消息影响rocketmq性能)

3、获取客户端回执后以某种方式通知consumer,或者直接向broker发送消息标注消息已被消费(不知道是否可以实现) 请问这种需求使用rocketmq是否可以实现呢,谢谢

原提问者GitHub用户zxcvbnm3057

展开
收起
芬奇福贵 2023-05-26 10:50:38 82 分享 版权
1 条回答
写回答
取消 提交回答
  • 消费者接收消息以证明自己已经消费,后续处理是消费成功后的处理,与mq无关。

    原回答者GitHub用户zhaohai666

    2023-05-26 17:15:11
    赞同 展开评论

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

还有其他疑问?
咨询AI助理