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

rocketmq5.0,生产者发送消息,耗时较长什么原因呢?大量并发时出现耗时(40-100)ms。

rocketmq5.0,生产者发送消息,耗时较长什么原因呢?大量并发时出现耗时(40-100)ms。(rocketmq服务器cpu 和 磁盘io 使用不高)?

展开
收起
真的很搞笑 2023-06-11 22:49:13 775 0
3 条回答
写回答
取消 提交回答
  • 生产者发送消息耗时长的原因可能有很多,以下是一些可能的原因:

    1. 网络延迟:当生产者发送消息时,首先需要与 RocketMQ 服务端建立连接。连接的建立需要经过网络传输,如果网络延迟较大,则建立连接的时间就会比较长。

    2. 频繁的消息序列化和反序列化:在消息发送过程中,消息需要被序列化才能进行传输。如果发送的消息比较多,则频繁的消息序列化和反序列化就会导致性能下降。

    3. 生产者发送消息时的压力测试(大量并发)导致的性能下降。

    建议您使用 RocketMQ 官方提供的性能测试工具 RocketMQBench 进行性能测试,以确定生产者发送消息的吞吐量和延迟状况,从而找到问题所在,并针对性地进行优化。此外,您也可以关注 RocketMQ 官方的最新性能优化经验和技巧,以获得更好的性能表现。

    2023-06-12 11:08:58
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    RocketMQ 生产者发送消息耗时较长的原因可能有很多,可能与消息的大小、网络延迟、消息存储方式等因素有关。下面列举一些可能的原因:

    消息大小过大:如果消息体过大,会导致网络传输的延迟增加,从而导致生产者发送消息耗时较长。可以考虑将消息体进行压缩或者切割成多个较小的消息进行发送。

    网络延迟:生产者发送消息需要与 RocketMQ 服务器进行网络通信,如果存在较大的网络延迟,也会导致发送消息耗时较长。可以考虑在生产者和 RocketMQ 服务器之间增加中间件,如消息队列或缓存,以减小网络延迟的影响。

    消息存储方式:RocketMQ 支持同步刷盘和异步刷盘两种消息存储方式。如果选择同步刷盘,每次发送消息都需要等待消息同步到磁盘后才能返回成功,这会导致发送消息的耗时较长。可以考虑使用异步刷盘方式,将消息异步写入磁盘,以提高发送消息的性能。

    硬件资源限制:如果 RocketMQ 服务器的硬件资源(如 CPU、内存、磁盘)受限,也会导致生产者发送消息耗时较长。可以考虑升级硬件或者调整 RocketMQ 服务器的配置参数,以提高性能。

    代码实现不合理:如果生产者发送消息的代码实现不合理,也可能导致发送消息耗时较长。可以考虑优化代码实现,如使用连接池、提高并发度等方式,以提高发送消息的性能。

    2023-06-12 07:59:04
    赞同 展开评论 打赏
  • 在 RocketMQ 5.0 版本中,生产者发送消息耗时较长的原因可能有多种。以下是一些可能导致问题的原因和解决方法:

    1、网络问题:在高并发场景下,可能会因为网络带宽限制或者网络质量不佳导致消息发送耗时增加。可以通过增加网络带宽或者优化网络质量来解决。

    2、消息发送超时时间过长:在 RocketMQ 5.0 版本中,设置的消息发送超时时间是所有重试的总的超时时间,所以不能直接设置 RocketMQ 的发送 API 的超时时间,而是需要对RocketMQ API 进行包装。可以通过对 RocketMQ API 进行包装,设置合适的超时时间来解决。

    3、Producer 硬件性能不足:在高并发场景下,可能会因为 Producer 的硬件性能不足导致消息发送耗时增加。可以通过升级 Producer 的硬件设备来解决。

    4、Broker 内存写入性能瓶颈:在高并发场景下,可能会因为 Broker 内存写入性能瓶颈导致消息发送耗时增加。可以通过跟踪 Broker 端写入 PageCache 的数据指标来判断 Broker 有没有遇到瓶颈。如果写入 PageCache 的耗时都小于100ms,那么 PageCache 的写入并没有产生瓶颈。

    5、Producer 配置不当:在高并发场景下,可能会因为 Producer 的配置不当导致消息发送耗时增加。可以通过调整 Producer 的配置参数来解决,例如增加 Producer 的实例数、增加发送线程数等。

    综上所述,可以通过分析具体情况来针对性地解决 RocketMQ 5.0 版本中生产者发送消息耗时较长的问题。

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

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

相关产品

  • 云消息队列 MQ
  • 相关电子书

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