- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用基于 Spring Boot 2.0 构建的高性能 Rabbit mq 消费者,并使用 Spring 集成框架。预取计数设置为 150,并发消费者数量为 4 。一切都工作正常,直到有一天 rmq 中的一些消息仍未得到确认。当我们重新启动 java 服务时,未确认的消息会得到处理,但问题会在一定时间内再次出现。任何人都可以帮助解决这个奇怪的问题吗?现在我们已经设置了一个 cron 作业,在 1 小时后重新启动服务,这样就不会出现未确认的消息。
PS Spring Boot 2.0版本兔子MQ版本:3.7.7
编辑
该问题在另一个服务中又出现了。我们已将 Spring Boot 服务升级到 2.1 版本和最新的 spring-amqp 版本。处于未确认状态的消息不断增加,服务中没有任何日志。我正在附加我们服务的线程转储
PS在分析一些消息时我认为问题出在Spring集成 channel 上。我在我们的服务中启用了调试日志,并发现了一个引起我注意的特定日志:
2019-12-17 ; 07:33:35.111 ; WARN ; 1 --- [ Thread-3] ; o.s.a.r.l.SimpleMessageListenerContainer ; ; Closing channel for unresponsive consumer: Consumer@7bc9e6ab: tags=[[]], channel=Cached Rabbit Channel: null, conn: Proxy@40620d8e Shared Rabbit Connection: SimpleConnection@4c060c8f [delegate=amqp://kaarmaapp@10.0.12.209:5672/, localPort= 45896], acknowledgeMode=AUTO local queue size=0
有人可以解释一下吗
最佳答案
一般来说,有两个可能的原因 - 监听器线程“卡在”用户代码中(这在大多数情况下都是问题)或者rabbitmq客户端库有autoRecoveryEnabled=true
;一般来说,Spring AMQP 将其设置为 false,但在某些情况下可以将其设置为 true,并且在某些特殊情况下,消费者会“悬而未决”。 Spring AMQP不需要它,因为它有自己的连接恢复机制。
对于第一种情况,进行线程转储以查看线程正在做什么。
对于第二种情况,升级到最新的 spring amqp (2.0.8 - boot 2.0.6) 或 2.1.0 (这将是 boot 2.1 中的版本)。
关于java - Spring Boot 2.0服务: messages delivered from Rabbit mq but not reaching java code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53007626/
以下两种电子邮件调用方法有什么区别?一个有交付而另一个没有。 mail(:to => 'test@gmail.com', :subject => "Test") do |format| for
example.com 上有一个邮件处理脚本,用于处理发送到以下地址的电子邮件: account1234@example.com 邮件服务器有一个包罗万象的 example.com 并将电子邮件处理到
Mandrill不提供任何支持。我给他们寄了许多票,但仍然没有答案。我希望这里有人能帮助我。 我正在通过SMTP发送电子邮件。我一开始可以发送几千封电子邮件,但是几千封之后,没有电子邮件到达任何邮箱。
我在 firebase 消息传递中创建了一个设备组 - Documentation here并取回 notification_key 现在,当我使用 notification_key 通过 Fireb
我在 firebase 消息传递中创建了一个设备组 - Documentation here并取回 notification_key 现在,当我使用 notification_key 通过 Fireb
在我的 C++ 应用程序中,我有一个执行某些工作的后台线程,将结果放入堆分配的内存块中,然后调用 PostMessage将结果传递给主线程。 通常,当 Window 收到消息时,它会处理结果,然后在
我正在开发一个在 iPhone 和 Apple Watch 之间共享数据的应用程序,使用 WCSession 方法 sendMessage:replyHandler:errorHandler: 执行该
我有一个从AndDev网站获得的FileBrowser Activity 。问题是它停止工作并且崩溃了,这是logcat: 07-05 11:20:35.803: ERROR/AndroidRunti
我正在尝试选择我的图库的图片,我可以访问我的图库,但单击该图像后应用程序崩溃了。 我尝试调试它,但它在该行的 onActivityResult 方法中崩溃了 InputStream openInput
我正在使用 deliver 提交申请以使用 faSTLane 进行审核... 我遇到下一个错误: Multiple commands produce '/Users/admin/Library/Dev
我遇到了一个问题。 我正在开发一个使用 GCM 推送通知功能的应用程序。在调试时,所有消息都被传送(有/没有一些不同的延迟)到设备。但是,当我从 PC 上拔下设备或禁用 Debug模式时,GCM 消息
在回答这个问题时,请考虑到我是 Android 新手这一事实。 在我的应用程序中,Activity A 显式调用 Activity B,后者必须为其提供一些来自用户的数据(即日期)。 Activity
我尝试使用 Amazon SES 和 Java AWS SDK 发送电子邮件,并且成功了。我希望能够(稍后)检查交付是否成功。如果最终的邮件服务器接受邮件进行投递,我将其定义为成功。 我看到当你发送邮
我正在使用 Xamarin 开发 Apple Watch 应用。我正在尝试使用 SendMessage 函数从我的 watch 向 iPhone 发送消息。当我这样做时,我收到了 out 错误消息 p
我有一个 LoginActivity(用户登录)。它基本上是它自己的 Activity 主题,就像一个对话框(看起来好像一个对话框)。它出现在 SherlockFragmentActivity 上。我
我正在尝试在 4.1.1 中调试此邮件错误并且无法弄清楚如何获取有关要查看的内容的更多信息: TypeError (no implicit conversion of nil into String)
我是 android 的新手,现在正在学习内容提供程序。 试着掌握它的基本窍门,但遇到一个不太确定如何解决的错误。 当一个按钮被点击时这个函数被调用 public void getContact(Vi
我正在将应用内结算集成到我的非托管产品应用程序中。我已经在市场上配置了我的应用程序以实现 BILLING 权限。我已经发布了我的应用程序的开发版本所期望的产品 ID。到目前为止,我一直在使用测试产品,
if (preise.kond_basis_preis > 0,preise.kond_basis_preis, a.bruttopreis) as bruttopreis, preise.kond_
我一直在试验时间命令(/usr/bin/time)。我让时间命令运行如下 /usr/bin/time -v sleep 30 在另一个终端上,我执行了一个ps -a 并找到了sleep 进程的PID。
我是一名优秀的程序员,十分优秀!