gpt4 book ai didi

java - 使用大量 CPU 的 spring-rabbit 客户端

转载 作者:行者123 更新时间:2023-11-29 05:05:23 25 4
gpt4 key购买 nike

我在 c3.large 机器上的 ec2 中运行一个 spring-boot 应用程序。它初始化一个 spring-rabbit 客户端,该客户端启动自己的线程。

在使用 YourKit 分析我的应用程序后,我发现在 rabbit 客户端线程中花费了大量时间,具体在:com.rabbitmq.client.impl.AMQConnection$MainLoop.run()java.io.DataStream.readUnsignedByte()

中向下

对我来说,这看起来像是有一个 while 循环不断阻止从 RabbitMQ 服务器的套接字上获取一些输入。

有没有人遇到过这个?我是否正确阅读了分析结果?有没有办法让 amqp 客户端成为非阻塞的?

最佳答案

该代码 (com.rabbitmq.client) 位于 Spring AMQP 使用的底层 amqp-client(RabbitMQ Java 客户端)代码中。

To me this looks like there is a while loop that continuously blocks on getting some input on a socket from the RabbitMQ server.

是的,但是当它阻塞等待数据时,它不使用 CPU - 只有当数据可用时该方法才会返回。它不会让 CPU 旋转等待数据。

关于java - 使用大量 CPU 的 spring-rabbit 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30553461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com