# gRPC 集成说明 ## 已完成的工作 1. ✅ 更新了配置结构,添加了 `grpc_server` 配置支持 2. ✅ 添加了 gRPC 依赖到 `go.mod` 3. ✅ 创建了 gRPC 客户端包装器 (`server/internal/grpc/user_client.go`) 4. ✅ 修改了 `/api/ymt/users` 接口使用 gRPC 调用 `SimpleListAllUser` 5. ✅ 更新了路由和主程序传递 gRPC 配置 ## 需要完成的步骤 ### 1. 生成 Proto 文件 在项目根目录运行: ```bash cd grpc make generate ``` 这将生成 `grpc/user/userv1/*.pb.go` 文件。 ### 2. 下载 Go 依赖 在 `server` 目录运行: ```bash cd server go mod tidy ``` 这将下载 `google.golang.org/grpc` 和 `google.golang.org/protobuf` 等依赖。 ### 3. 配置 gRPC 服务器地址 确保 `server/config.yaml` 中配置了 gRPC 服务器地址: ```yaml app: grpc_server: host: "121.41.108.37" port: "30900" ``` 或者通过环境变量设置: ```bash export GRPC_SERVER_HOST=121.41.108.37 export GRPC_SERVER_PORT=30900 ``` ### 4. 编译和运行 ```bash cd server go build -o server ./cmd/server/main.go ./server ``` ## 接口变更 `/api/ymt/users` 接口现在通过 gRPC 调用获取数据,而不是直接查询数据库。 **请求参数:** - `limit` (可选): 限制返回数量,默认 2000,最大 10000 - `q` (可选): 搜索关键词 **响应格式:** ```json [ { "id": 1, "name": "用户名(1)" } ] ``` ## 注意事项 - 如果 gRPC 服务器地址未配置,接口会返回错误 - gRPC 连接使用单例模式,整个应用共享一个连接 - 连接包含 keepalive 配置,自动维护连接健康