xxs588 opened a new issue, #1090:
URL: https://github.com/apache/dubbo-go-samples/issues/1090

   ### ✅ 验证清单
   
   - [x] 🔍 我已经搜索过现有 Issues,确信这不是重复问题
   - [x] 📚 我已阅读 `dubbo-go-samples/task/shop` 相关代码并结合实际运行结果验证
   - [x] 🧪 我已经在本地运行样例并确认问题主要是语义命名错位,而不是基础实现失效
   
   ### 🚀 Go 版本
   
   go1.25.6 linux/amd64
   
   ### 📦 Dubbo-go 版本
   
   本地验证时使用:
   
   `Dubbo-go v3.3.2-20260419`
   
   ### 🖥️ 服务端配置
   
   使用 `dubbo-go-samples/task/shop` 的 `frontend/server_v1/server.go`。
   
   ### 💻 客户端配置
   
   通过 `frontend` 暴露的 HTTP 入口验证:
   
   - `/login`
   - `/grayLogin`
   
   ### 🌐 协议配置
   
   Triple
   
   ### 📋 注册中心配置
   
   Zookeeper `127.0.0.1:2181`
   
   ### 💾 操作系统
   
   Linux
   
   ### 📝 Bug 描述
   
   在验证 `task/shop` 灰度/流量治理相关场景时,发现 `frontend/server_v1/server.go` 中 `CheckItem` 
与 `CheckItemGray` 的函数命名语义与实际行为相反。
   
   当前实现中:
   
   - `CheckItem` 会在 `context` 中附加:
     - `dubbo.tag=gray`
     - `dubbo.force.tag=true`
   
   - `CheckItemGray` 反而直接使用 `context.Background()`,不附加 gray tag
   
   也就是说,从实际行为看:
   
   - `CheckItem` 才是在执行 gray/tag route 语义
   - `CheckItemGray` 才是在执行默认路由语义
   
   本地测试过程中,没有发现这里的基础调用实现本身有功能错误;问题更像是命名语义与实际行为反了。  
   这会导致使用者在阅读代码、对照 HTTP 入口、验证灰度路由时产生明显困惑。
   
   ### 🔄 重现步骤
   
   1. 打开 `task/shop/frontend/server_v1/server.go`。
   2. 查看 `CheckItem` 的实现。
   3. 查看 `CheckItemGray` 的实现。
   4. 对照两个 HTTP 入口的调用链路:
      - `/login`
      - `/grayLogin`
   5. 结合实际请求结果观察:
      - `CheckItem` 实际附加 gray tag
      - `CheckItemGray` 实际不附加 gray tag
   
   ### ✅ 预期行为
   
   函数命名应与实际语义一致:
   
   - `CheckItem`:默认调用,不附加 gray tag
   - `CheckItemGray`:gray 调用,附加 `dubbo.tag=gray` 和 `dubbo.force.tag=true`
   
   这样代码命名、HTTP 入口命名和灰度治理语义才能一致,测试时也更直观。
   
   ### ❌ 实际行为
   
   当前实现相反:
   
   - `CheckItem`:附加 gray tag,实际执行 gray 路由语义
   - `CheckItemGray`:不附加 gray tag,实际执行默认路由语义
   
   这会导致:
   
   1. 阅读代码时对函数职责产生误判
   2. 对照 `/login` 与 `/grayLogin` 的测试结果时容易混淆
   3. 在排查 tag route / gray provider 问题时增加理解成本
   4. 样例作为流量治理演示时,语义表达不够直观
   
   ### 💡 可能的解决方案
   
   建议将两个函数的实现调整为与命名一致:
   
   1. `CheckItem`
      - 使用默认 `context.Background()`
      - 不附加 `dubbo.tag`
   
   2. `CheckItemGray`
      - 在 `context` 中附加:
        - `dubbo.tag=gray`
        - `dubbo.force.tag=true`
   
   如果当前实现是出于历史原因保留下来的,也建议至少补充注释或 README 说明,明确这两个函数当前的真实行为,避免样例使用者在测试时误解。
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to