85 lines
1.6 KiB
Markdown
85 lines
1.6 KiB
Markdown
# 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 配置,自动维护连接健康
|
||
|