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

   ### ✅ 验证清单
   
   - [x] 🔍 我已经搜索过现有 Issues,确信这不是重复问题
   - [x] 📚 我已对照 `dubbo-go-samples/task/shop`、Dubbo Admin 本地运行方式以及流量治理任务文档进行验证
   - [x] 🧪 我已经在本地实际替换 dubbo-go 版本并运行样例复现问题
   
   ### 🚀 Go 版本
   
   go1.25.6 linux/amd64
   
   ### 📦 Dubbo-go 版本
   
   本地替换为新版本 dubbo-go:
   
   `replace dubbo.apache.org/dubbo-go/v3 => /path/to/local/dubbo-go`
   
   本次验证版本为:
   
   `Dubbo-go v3.3.2-20260419`
   
   ### 🖥️ 服务端配置
   
   使用 `dubbo-go-samples/task/shop` 场景,启动:
   
   - `shop-comment` v1
   - `shop-detail` v1
   - `shop-order` v1
   - `shop-user` v1
   - `frontend` v1
   
   同时验证过部分 v2 provider:
   
   - `comment-v2`
   - `detail-v2`
   - `order-v2`
   
   注册中心地址:
   
   - `zookeeper://127.0.0.1:2181`
   
   ### 💻 客户端配置
   
   使用 `task/shop` 自带:
   
   - `frontend/server_v1`
   - `user/go-client`
   - `detail/client`
   - `order/client`
   - `comment/client`
   
   ### 🌐 协议配置
   
   Triple
   
   ### 📋 注册中心配置
   
   Zookeeper `127.0.0.1:2181`
   
   ### ⚙️ 配置中心配置
   
   本地已启动 Dubbo Admin,并可连接到相同的 Zookeeper。  
   但 `task/shop` 中各 Go 实例仅配置了 `WithRegistry(...)`,未配置 `WithConfigCenter(...)`。
   
   例如以下文件中只有 `WithRegistry(...)`:
   
   - `frontend/server_v1/server.go`
   - `user/go-server/cmd/server.go`
   - `comment/server_v1/cmd/server.go`
   - `detail/server_v1/cmd/server.go`
   - `order/server_v1/cmd/server.go`
   - `comment/server_v2/cmd/server.go`
   - `detail/server_v2/cmd/server.go`
   - `order/server_v2/cmd/server.go`
   
   ### 💾 操作系统
   
   Linux
   
   ### 📝 Bug 描述
   
   `task/shop` 的中文说明 `READEME_CN.md` 
表示该样例“用于配合官网流量管控文档”。但本地实际验证发现,当前样例可以正常完成基础注册、发现和调用,却无法直接启用 `Tag Router` / 
`Condition Router` / `Script Router` 来验证动态治理能力。
   
   provider / consumer / client 日志均会持续打印:
   
   ```text
   Config center does not start
   Tag router will not be enabled
   Condition router will not be enabled
   Script router will not be enabled
   ```
   
   进一步检查 `task/shop` 代码后发现,当前样例中的 provider / consumer 只配置了 
`WithRegistry(...)`,没有配置 `WithConfigCenter(...)`。因此虽然 Dubbo Admin 
可以看到服务实例,但动态流量治理规则无法真正下发并生效。
   
   这会带来一个比较明显的错位:
   
   1. 官网流量治理任务默认前提是治理规则可动态生效;
   2. `task/shop` 的说明也会让使用者自然认为该样例可以直接配合完成这类验证;
   3. 但实际样例缺少 `WithConfigCenter(...)` 接入,导致验证时始终停留在“基础调用可用、动态治理不可用”的状态。
   
   这使得用户难以判断问题究竟来自:
   
   - dubbo-go 新版本兼容性
   - config 相关能力迁移后的行为变化
   - 还是 sample 本身未完整接入治理链路
   
   ### 🔄 重现步骤
   
   1. 使用本地新版本 dubbo-go 替换 `dubbo-go-samples/task/shop` 的依赖。
   2. 启动 `task/shop` 的 v1 服务:
      - `comment-v1`
      - `detail-v1`
      - `order-v1`
      - `user`
      - `frontend`
   3. 确认基础调用可用:
      - `GET /grayLogin?username=test&password=123`
      - `user/detail/order/comment` client 调用均可成功
   4. 观察 provider / consumer / client 日志。
   5. 启动 Dubbo Admin,本地连接相同 Zookeeper。
   6. 尝试按照流量治理任务思路验证 `tag route` / `condition route` / `timeout` 等动态规则。
   7. 观察 `/login`、`/timeoutLogin`、v1/v2 路由行为及日志。
   
   ### ✅ 预期行为
   
   1. 如果 `task/shop` 被用于流量治理任务验证,样例应默认具备或清晰说明如何补齐 config center 接入。
   2. 在 Admin / config center 已准备好的前提下,Go 实例应能启用:
      - `Tag Router`
      - `Condition Router`
      - `Script Router`
   3. `/login` 等依赖灰度/tag 路由的入口在完成规则配置后,应能按规则命中对应 provider,而不是因 router 未启用而失败。
   4. `task/shop` 应能作为验证治理兼容性的有效样例,而不只是基础 RPC 调用样例。
   
   ### ❌ 实际行为
   
   1. 基础注册发现与调用正常:
      - `GET /grayLogin` 返回 200
      - `user/detail/order/comment` client 调用成功
   2. 但所有动态治理相关 router 都未启用,日志持续输出:
      - `Config center does not start`
      - `Tag router will not be enabled`
      - `Condition router will not be enabled`
      - `Script router will not be enabled`
   3. `/login` 路径会携带:
      - `dubbo.tag=gray`
      - `dubbo.force.tag=true`
   
      在未启用 `Tag Router` 的情况下,容易报错:
   
   ```text
   Failed to invoke the method GetItem. No provider available ...
   ```
   
   4. 即使 Dubbo Admin 能看到服务实例,也只能说明注册中心可见;动态治理规则并不会对当前 Go 实例生效。
   
   ### 💡 可能的解决方案
   
   建议从两个方向处理:
   
   1. 完善 `task/shop` sample:
      - 为 provider / consumer 增加 `WithConfigCenter(...)` 示例;
      - 给出与 Zookeeper / Nacos 配套的最小本地运行配置;
      - 明确哪些入口是“基础调用验证”,哪些入口依赖“动态治理规则”。
   
   2. 完善文档说明:
      - 明确 `task/shop` 当前是否完整对齐官网流量治理任务;
      - 如果未完整对齐,需在 README / 任务文档中说明:
        - 需要额外接入 config center
        - 需要启动 Dubbo Admin
        - 需要补充 v2 / gray provider 与动态规则
      - 避免用户将“sample 未接入 config center”误判为“dubbo-go 新版本治理能力回归”。
   
   3. 增加回归验证:
      - 基础调用验证
      - config center 已启用时的 `tag route` / `condition route` / `timeout` 验证
      - 使用新版本 dubbo-go 替换后,确认 sample 仍可用于治理链路验收
   


-- 
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