# trpc-go-demo **Repository Path**: eric114/trpc-go-demo ## Basic Information - **Project Name**: trpc-go-demo - **Description**: trpc-go-demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-04 - **Last Updated**: 2025-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Polaris Go 快速入门示例 这个项目演示了如何使用 Polaris Go SDK 实现服务注册与发现。项目包含三个主要部分: 1. Polaris 服务注册中心(使用 Docker 部署) 2. 服务提供者(Provider) 3. 服务消费者(Consumer) ## 前提条件 - Go 1.20 或更高版本 - Docker 和 Docker Compose - Windows 操作系统(如果使用其他操作系统,需要修改启动脚本) ## 项目结构 ``` . ├── consumer/ # 服务消费者代码 │ ├── main.go # 消费者主程序 │ ├── go.mod # Go 模块文件 │ └── polaris.yaml # Polaris 配置文件 ├── provider/ # 服务提供者代码 │ ├── main.go # 提供者主程序 │ ├── go.mod # Go 模块文件 │ └── polaris.yaml # Polaris 配置文件 ├── docker-compose.yml # Docker Compose 配置文件 ├── start.bat # 启动脚本 └── README.md # 项目说明文件 ``` ## 快速开始 ### 1. 启动所有服务 运行启动脚本: ```bash start.bat ``` 这个脚本会: - 启动 Polaris 服务注册中心 - 编译并启动服务提供者 - 编译并启动服务消费者 ### 2. 测试服务 服务启动后,可以通过以下方式测试: ```bash curl http://localhost:8001/echo ``` 这个请求会发送到消费者,消费者会从 Polaris 获取提供者的地址,然后转发请求到提供者,最后返回提供者的响应。 ### 3. 访问 Polaris 控制台 Polaris 控制台可以通过以下地址访问: ``` http://localhost:8093 ``` 在控制台中,你可以查看服务注册情况、服务调用情况等信息。 ### 4. 停止所有服务 在启动脚本的命令行窗口中按任意键,脚本会停止所有服务。 ## 配置说明 ### Provider 配置 Provider 会注册自己到 Polaris 注册中心,并提供一个简单的 HTTP 服务,响应 "/echo" 路径的请求。 主要参数: - `--namespace`: 服务命名空间,默认为 "default" - `--service`: 服务名称,默认为 "DiscoverEchoServer" - `--token`: 服务令牌,默认为 "token" - `--port`: 服务监听端口,默认为 8000 ### Consumer 配置 Consumer 会从 Polaris 注册中心获取服务实例,并向服务提供者发送请求。 主要参数: - `--namespace`: 要访问的服务命名空间,默认为 "default" - `--service`: 要访问的服务名称,默认为 "DiscoverEchoServer" - `--port`: 服务监听端口,默认为 8001 ## 进阶使用 ### 服务治理 Polaris 提供了丰富的服务治理功能,包括: - 负载均衡 - 熔断降级 - 限流 - 路由规则 你可以通过修改 polaris.yaml 配置文件来启用和配置这些功能。 ### 多实例部署 你可以启动多个 Provider 实例,Polaris 会自动进行负载均衡: ```bash cd provider go run main.go --port=8002 ``` ### 自定义路由规则 你可以在 Polaris 控制台中配置路由规则,实现灰度发布、A/B 测试等功能。