开发者社区 > 云原生 > 消息队列 > 正文

Apache RocketMQ 的官网有如下介绍, 但是在proxy请求的情况下 发现两者性能差别?

Apache RocketMQ 的官网有如下介绍, 但是在proxy请求的情况下 发现两者性能差别并不大 FlushDiskType SYNC_FLUSH(同步刷新)相比于ASYNC_FLUSH(异步处理)会损失很多性能,但是也更可靠,所以需要根据实际的业务场景做好权衡。这个是针对中间件自身的性能而言,在proxy代理请求的时候实际根据proxy的性能来确定,org.apache.rocketmq.client.java.exception.badrequestexception: [request-id=fedcc908-76bd-44b9-a7df-84822362db85, response-code=40013] INVALID_RECEIPT_HANDLEat org.apache.rocketmq.client.java.exception.StatusChecker.check(StatusChecker.java:63) ~[rocketmq-client-java-5.0.4.jar:?]at%20org.apache.rocketmq.client.java.impl.consumer.SimpleConsumerImpl.lambda$ack0$2(SimpleConsumerImpl.java:247)%20~[rocketmq-client-java-5.0.4.jar:?]at%20org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221)%20~[rocketmq-client-java-5.0.4.jar:?]at%20org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208)%20~[rocketmq-client-java-5.0.4.jar:?]at%20org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122)%20~[rocketmq-client-java-5.0.4.jar:?]at%20java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)%20~[?:1.8.0_362]at%20java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)%20~[?:1.8.0_362]at%20java.lang.Thread.run(Thread.java:750)%20~[?:1.8.0_362]有人消费消息的时候遇到过这个问题吧

展开
收起
cuicuicuic 2023-05-23 19:57:36 295 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    这个异常是RocketMQ的客户端Java API抛出的,通常是消费者在调用ack方法时出现了错误,比如传递了一个无效的消息句柄(Receipt Handle)。根据异常信息可以看出,出现了INVALID_RECEIPT_HANDLE异常,说明传递的消息句柄无效,这个问题可能与消费者的消费逻辑有关,建议检查消费者的代码逻辑,尤其是在处理消息时是否正确地将消息句柄传递给了ack方法。

    另外,在RocketMQ中,消费者消费消息的过程中,需要定期确认消息状态,否则消息将一直处于未确认状态,这会导致消费者无法再次消费该消息,也会占用服务器的资源。因此,建议做好消息状态的处理,保证及时确认消息状态并清理不必要的未确认消息。

    至于性能方面的问题,如果proxy的性能较差,可能会导致性能瓶颈,建议使用高性能的proxy或者对proxy进行优化,以提高性能和稳定性。同时,也可以根据实际业务场景的需要选择合适的FlushDiskType。

    2023-05-23 23:07:39
    赞同 展开评论 打赏
  • 应该时ack的时候, 句柄过期了,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-05-23 20:07:37
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载

    相关镜像