Azure Service Bus:Java发送消息后无法通过Service Bus Explorer查看
排查Azure Service Bus消息在Service Bus Explorer中不可见的问题
确认消息投递的目标实体
- 检查Java代码里发送的是队列还是主题:如果是主题,必须查看对应的订阅才能看到消息,直接查看主题本身看不到投递的内容。
- 核对代码中的实体名称和Service Bus Explorer中选择的实体名称,注意大小写、空格或特殊字符,Azure Service Bus的实体名称区分大小写。
检查消息过期时间(TTL)
- 查看Java代码是否设置了过短的
Time-To-Live属性,比如message.setTimeToLive(Duration.ofSeconds(10)),如果TTL太短,消息可能在你打开工具前就被自动删除了。也可以在Azure门户的实体配置页查看默认TTL值。
- 查看Java代码是否设置了过短的
验证Service Bus Explorer的连接权限
- 确认使用的连接字符串对应的共享访问策略拥有
Listen或Manage权限(至少需要读取权限),可以在Azure门户的Service Bus命名空间「共享访问策略」中查看。 - 检查连接字符串是否正确,确保包含正确的命名空间名称、密钥和策略名称,避免复制时出现错误。
- 确认使用的连接字符串对应的共享访问策略拥有
排查消息是否被消费
- 如果有其他消费端(包括你的Java消费代码)在监听目标实体,消息可能已被接收处理,导致Service Bus Explorer看不到。可以暂时停止所有消费端,重新发送一条消息后立即查看工具。
- 在Azure门户的实体页面查看「消息计数」中的「活跃消息数」,如果发送后数值为0,说明消息要么被消费,要么已过期。
查看Service Bus日志与监控
- 进入Azure门户的Service Bus命名空间「监控」->「日志」,查看消息发送、接收、删除或过期的记录,确认消息的流向。
- 查看「指标」中的「消息已发送」和「消息已接收」数据,对比两者数量判断消息是否被正常消费或丢弃。
检查Service Bus Explorer显示设置
- 确认工具中是否勾选了「显示过期消息」「显示死信消息」选项,如果消息进入死信队列,需要切换到对应视图查看。
- 手动刷新工具的消息列表,避免因界面未自动更新导致看不到新消息。
内容的提问来源于stack exchange,提问作者RagaSGNur
相关产品推荐
相关产品推荐

