Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring RabbitMQ的性能很慢_Rabbitmq_Spring Amqp - Fatal编程技术网

使用Spring RabbitMQ的性能很慢

使用Spring RabbitMQ的性能很慢,rabbitmq,spring-amqp,Rabbitmq,Spring Amqp,我试图在30秒内通过13个线程向另一台机器发送51MB的数据。这意味着,每30秒,51*13=663Mb的数据以突发方式发送到目标机器 接下来的步骤: 我在发送方和接收方rabbitmq服务器之间使用了铲子来传输消息 发送方和接收方都有自己的rabbitMq服务器在运行 我正在使用rabbitmplate.send(routingKey,51mbMessage)发送消息 我正在目标机器上使用OnMessageListener来接收消息 on接收方的消息侦听器: 接收器端的连接工厂: clas

我试图在30秒内通过13个线程向另一台机器发送51MB的数据。这意味着,每30秒,51*13=663Mb的数据以突发方式发送到目标机器

接下来的步骤:
  • 我在发送方和接收方rabbitmq服务器之间使用了铲子来传输消息
  • 发送方和接收方都有自己的rabbitMq服务器在运行
  • 我正在使用rabbitmplate.send(routingKey,51mbMessage)发送消息
  • 我正在目标机器上使用OnMessageListener来接收消息
  • on接收方的消息侦听器:
    
    
    接收器端的连接工厂:
    class=“org.springframework.amqp.rabbit.connection.CachingConnectionFactory”>
    

    观察结果:
  • 消息到达目标机器要花很多时间。我得到大约10-15分钟的延迟

  • 你能帮我克服这次耽搁吗。我真的很感激这里提供的任何帮助。提前感谢。

    您需要隔离问题-例如,您是否只在Spring AMQP中看到这一点?如果直接使用Java客户机生成类似的负载,会发生什么?只有这样,你才能把手指指向弹簧。也许您的网络无法处理负载。您的网络设置是什么?例如,托管在单个AWS区域,远程在CloudAMQP上,等等。?这通常是最大的瓶颈。编写一个非常简单的脚本(无框架),将大型数据集推送到Rabbit,看看它是否能够足够快地加载。嗨,我理解这个问题。。不知不觉地,我把同样的信息作为确认发送了回来。这意味着发送了51Mb消息,并且在Acknowledgement消息中返回了相同的51Mb消息。这导致带宽阻塞,进而导致吞吐量降低。感谢Gary和Matt的时间。您需要隔离问题-例如,您是否只在Spring AMQP中看到这一点?如果直接使用Java客户机生成类似的负载,会发生什么?只有这样,你才能把手指指向弹簧。也许您的网络无法处理负载。您的网络设置是什么?例如,托管在单个AWS区域,远程在CloudAMQP上,等等。?这通常是最大的瓶颈。编写一个非常简单的脚本(无框架),将大型数据集推送到Rabbit,看看它是否能够足够快地加载。嗨,我理解这个问题。。不知不觉地,我把同样的信息作为确认发送了回来。这意味着发送了51Mb消息,并且在Acknowledgement消息中返回了相同的51Mb消息。这导致带宽阻塞,进而导致吞吐量降低。谢谢加里和马特抽出时间。
    <rabbit:listener-container connection-factory="connectionFactory"          prefetch="10" >
        <rabbit:listener ref="onMessageReceiverforMyTestQueue"   queue- names="MyTestQueue" /> 
    </rabbit:listener-container>
    
    <bean id = "onMessageReceiverforLoadTestQueue"      class="MyPackage.MyMessageListener">
    </bean>
    
      class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
        <constructor-arg value="***.**.**.**"/>
        <property name="username" value="abcd"/>
        <property name="password" value="abcd"/>
        <property name="channelCacheSize" value="50"/>