#排查手册

本页只保留可对外共享的排查思路,适合与 PetaX 或其他外部协作方对齐问题范围。已移除仅限我方内部环境使用的入口、域名和探活命令。

#1. RabbitMQ 白名单 / TLS 连通性

可用 openssl s_client 对 broker 做一次 mTLS 握手,快速判断网络与证书链是否通过:

openssl s_client -connect <broker_host>:5671 -servername rabbitmq \
  -CAfile <ca.pem> -cert <client.crt> -key <client.key> -tls1_2 </dev/null

#2. 队列是否在投递

如果可以安全观测队列,优先看两个信号:队列消息数与消费者数。若消费者在线但长时间没有新消息,通常更接近“上游未投递”;若消息持续堆积,则更接近“消费侧未处理”。

建议使用不会销毁消息的方式排查,例如临时 basic.getNack(requeue=true),或只读队列元信息。

#3. 区分“未投递” vs “已投递但未落账”

这两类问题只看最终业务记录往往分不出来。更可靠的方法是临时抓取原始消息体:

如需临时查看消息,建议在排查完成后将消息 Nack(requeue) 放回,避免影响正式消费。

#4. HTTP 回调是否实际到达

如果接收侧具备网关、WAF 或应用访问日志,可按 request_path 或回调名聚合调用次数。若某类回调始终为 0,而同类其他回调有量,通常说明该通知未开通、未触发,或上游路由配置遗漏。

例如:settled-round 持续有量,但 settled-ticket 长期为 0,可优先确认该通知是否已在 PetaX 侧启用。

#5. 外部 Service API 返回码含义