如果消息队列MQ用户收到堆栈警报,该怎么办?
检查问题
登录到Message Queue MQ控制台,然后选择“组”以管理使用者状态。累计金额列中的值大于预期。
登录到Message Queue MQ控制台,选择一条消息轨道,并创建一个查询任务以通过MessageID进行查询。一些消息已发送给代理,但未传递给中间使用者。
从MQ问题分析消息队列发送中间消息后,配置了GroupID的客户端会根据当前消耗点将部分中间消息提取到本地消耗。
访问共享资源锁,I / O和网络资源的包含,HTTP调用超时等原因。在使用期间,它们是由单个消息的较长使用时间引起的,并且消息开始在服务器上累积。
解决方案请按照以下步骤解决并解决问题。
登录到消息队列的MQ控制台,在资源报告中选择消息使用情况,然后检查历史记录使用情况日志。
如果消息写入速率快于消息消耗速率,请设置业务代码或扩展使用者。
从应用程序的Jstack jstack -l{pid}| grepConsumeMessageThread输出信息。
如果存在消息阻塞现象,请连续打印五次Jstack信息以确认使用者线程卡的位置。解决之后,您可以重新启动应用程序以查看消耗量是否已恢复。
如果未堆叠消息,请检查阈值是否设置得太低而无法累积消息。单击“警报监视”,然后单击“编辑”以增加消息累积警报阈值。
结果验证
应用程序输出Jstack信息jstack-l{pid}| grepConsumeMessageThread。没有任何阻塞使用者线程的现象。
登录到Message Queue MQ控制台,然后选择“组”以管理使用者状态。“ TPS消耗”列中的值增加,而“累积量”列中的值减小。
登录到Message Queue MQ控制台,然后选择“组”以管理使用者状态。累计金额列中的值大于预期。
登录到Message Queue MQ控制台,选择一条消息轨道,并创建一个查询任务以通过MessageID进行查询。一些消息已发送给代理,但未传递给中间使用者。
从MQ问题分析消息队列发送中间消息后,配置了GroupID的客户端会根据当前消耗点将部分中间消息提取到本地消耗。
访问共享资源锁,I / O和网络资源的包含,HTTP调用超时等原因。在使用期间,它们是由单个消息的较长使用时间引起的,并且消息开始在服务器上累积。
解决方案请按照以下步骤解决并解决问题。
登录到消息队列的MQ控制台,在资源报告中选择消息使用情况,然后检查历史记录使用情况日志。
如果消息写入速率快于消息消耗速率,请设置业务代码或扩展使用者。
从应用程序的Jstack jstack -l{pid}| grepConsumeMessageThread输出信息。
如果存在消息阻塞现象,请连续打印五次Jstack信息以确认使用者线程卡的位置。解决之后,您可以重新启动应用程序以查看消耗量是否已恢复。
如果未堆叠消息,请检查阈值是否设置得太低而无法累积消息。单击“警报监视”,然后单击“编辑”以增加消息累积警报阈值。
结果验证
应用程序输出Jstack信息jstack-l{pid}| grepConsumeMessageThread。没有任何阻塞使用者线程的现象。
登录到Message Queue MQ控制台,然后选择“组”以管理使用者状态。“ TPS消耗”列中的值增加,而“累积量”列中的值减小。
下一篇:没有了