MarketingSystemDataExportTool/server/GRPC_SETUP.md

85 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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