注册中心 - Consul 集成
Github Source: https://github.com/gogf/examples/tree/main/registry/consul
简介
本示例演示了如何在 GoFrame 应用程序中集成 Consul 服务注册中心。主要展示:
- 使用
Consul注册服务 - 使用
Consul发现服务 - 实现服务健康检查
- 构建分布式系统
目录结构
.
├── docker-compose/ # 运行Consul的Docker配置文件
├── grpc/ # gRPC服务示例
│ ├── client/ # gRPC客户端实现
│ ├── controller/ # gRPC服务控制器
│ ├── protobuf/ # Protocol buffer定义
│ └── server/ # gRPC服务器实现
│ ├── main.go # 服务器启动代码
│ └── config.yaml # 服务器配置
├── http/ # HTTP服务示例
│ ├── client/ # HTTP客户端实现
│ └── server/ # HTTP服务器实现
├── go.mod # Go模块文件
└── go.sum # Go模块校验和
环境要求
Go1.22或更高版本Docker(用于运行Consul)Consul
使用说明
-
启动
Consul服务:cd docker-compose
docker-compose up -d -
HTTP服务示例:# 启动HTTP服务器
cd http/server
go run server.go
# 运行HTTP客户端
cd http/client
go run client.go -
gRPC服务示例:# 启动gRPC服务器
cd grpc/server
go run server.go
# 运行gRPC客户端
cd grpc/client
go run client.go
实现说明
-
HTTP服务实现- 服务器使用
g.Server创建HTTP服务 - 通过
gsvc.SetRegistry设置Consul注册中心 - 客户端使用
g.Client()自动发现并访问服务
- 服务器使用
-
gRPC服务实现- 服务器使用
grpc.Server创建gRPC服务 - 通过
gsvc.SetRegistry设置Consul注册中心 - 客户端使用
grpc.Client自动发现并访问服务
- 服务器使用
注意事项
- 确保
Consul服务正常运行在127.0.0.1:8500 - 服务注册时会自动添加健康检查
- 客户端会自动使用服务发现进行负载均衡