hl-api-changelog/changelogs/2026-04/30_fix_feign_product-service-v2-rename.md

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)