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

大佬们,Apache RocketMQ中同步发送报这个是什么原因?

大佬们,Apache RocketMQ中同步发送报这个是什么原因?image.png

展开
收起
真的很搞笑 2023-06-06 14:01:48 91 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    根据提供的截图,同步发送调用的超时时间为3秒,但消息在4秒才被消费者(Consumer)消费成功。这可能是因为RocketMQ同步发送模式需要确认消息已成功写入所有Broker节点的磁盘,并且返回写入成功的响应,然后才会继续执行下一步操作。因此,同步发送模式可能会阻塞消息发送方的线程,直到消息被成功确认。这也是RocketMQ保证消息可靠性的一种方式。

    如果您对消息的实时性要求不高,可以尝试使用异步发送模式来提高消息发送的吞吐量和性能。如果您对消息的实时性和可靠性有很高的要求,建议考虑调整同步发送模式的超时时间,或使用RocketMQ的批量发送模式来发送多条消息,从而提高发送效率和成功率。

    2023-06-06 14:17:34
    赞同 展开评论 打赏
  • Apache RocketMQ 中同步发送消息报错可能有多种原因,下面我列举几个常见的原因及相应的解决办法:

    1. Broker 所在服务器的内存不足:当 Broker 所在服务器内存不足时,可能会导致消息发送失败,报错信息中经常会包含 java.lang.OutOfMemoryError 关键字。此时我们需要检查内存占用情况,及时清理不必要的进程或增加服务器内存。

    2. 网络问题:当网络出现故障时可能会导致消息发送失败。此时我们需要检查网络连接情况,确保网络正常。

    3. 消息体超过大小限制:当消息体大小超过了 Broker 所允许的最大限制时,消息发送会失败。此时我们需要检查消息体大小是否超过限制,并按照规定的方式进行拆分或压缩。

    4. Topic 或者 ProducerGroup 配置错误:当 Producer 端配置的 Topic 或者 ProducerGroup 名称与 Broker 端不一致时,也可能导致消息发送失败。此时我们需要检查配置信息是否正确,并按照文档要求进行修改。

    总之,Apache RocketMQ 中同步发送消息报错可能有很多原因,需要我们根据具体的报错信息去定位和解决问题。建议通过查看具体报错信息来进行判断和排查。

    2023-06-06 14:12:42
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

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

    热门文章

    相关电子书

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

    相关镜像