2.7 KiB
2.7 KiB
修复:资源「申请下架」HTTP 503 错误(ProductFeignClient 服务名遗漏改名)
类型: 后端 BUG 修复 关联: 工单 #1553 / PR #1554 / Release PR #1555 日期: 2026-04-30 影响范围: 所有资源(酒店/景点/活动/餐厅/车辆/服务/备品/员工/成本/房型) 的「申请下架」功能,及产品审批通过/驳回回调链路
现象
正式 + 测试环境管理后台对任意酒店点「申请下架」均报:
服务暂时不可用,请稍后重试 (HTTP 503)
后端日志:
WARN GlobalExceptionHandler - Feign call failed: status=503,
[ProductFeignClient#checkResourceInUse(...)]:
[Load balancer does not contain an instance for the service hl-product-service]
根因
正式 + 测试 Nacos 实际注册的产品服务名是 hl-product-service-v2(v1→v2 重命名后)。但仓库里 2 个 FeignClient 仍写旧名 hl-product-service(重命名时遗漏),Feign 解析失败 → 503。
影响清单
| 文件 | 错处 | 用途 |
|---|---|---|
hl-resource-service/.../ProductFeignClient.java:10 |
name="hl-product-service" |
资源申请下架时检查产品占用 |
hl-common-feign/.../ProductApprovalFeignClient.java:9 |
同上 | 产品审批通过后回调推送给 product-service |
参照对比仓库其他模块均已用对的名:
hl-order-service-v2/.../ProductFeignClient.java:hl-product-service-v2✅hl-mp-service/.../MpProductFeignClient.java:hl-product-service-v2✅hl-mp-service/.../MpProductV2FeignClient.java:hl-product-service-v2✅
间接影响(隐藏更久)
ProductApprovalFeignClient.handleApprovalResult 是企微审批通过后回调通知 product-service 处理产品 status 变更的链路。它的 fallback factory 直接吞错返回 Result.error(不抛异常),业务侧不感知。所以这条链路实际坏了一段时间,产品上架/下架审批通过后 status 可能没真更新,本次顺手一起修了。
修复
2 个文件 2 行,统一改为 name = "hl-product-service-v2",与同仓其他模块对齐。
修复后行为
测试服 round-trip
hotelId=3001000000000000001 海拉尔洲季酒店
申请下架 (targetStatus=0) → code=200, spNo=202604300006
正式部署
- ✅ Image tag
c598641e(main HEAD) - ✅ 4 个 Pod (user×2 + resource×2) 全部 Running 1/1
- ✅ 启动日志无 ERROR/Exception/FATAL
- ✅ Gateway → resource API 200
前端处理
零影响。前端无须改动。
部署状态
- ✅ PR #1554 合并到 dev (sha 11672364)
- ✅ Release PR #1555 合并到 main (sha c598641e)
- ✅ 测试服 hl-resource-service + hl-user-service 滚动重启 + round-trip 通过
- ✅ 正式环境 K8s deploy 滚动更新完成 (deploy panel #50 + #51)