### 安装golang consul api包
go get -u github.com/hashicorp/consul/api
## 服务端代码
type Children struct{}
// 绑定类方法 实现接口
func (this *Children) SayHello(ctx context.Context, p *pb.Person) (*pb.Person, error) {
p.Name = "hello " + p.Name
return p, nil
}
func main() {
//初始化配置
cfg := api.DefaultConfig()
//创建consul对象 (可以重新指定consule 属性 也可以使用默认)
client, err := api.NewClient(cfg)
if err != nil {
fmt.Println("api.newclient:", err)
return
}
//配置consul的注册服务信息
regServ := api.AgentServiceRegistration{
Tags: []string{"serve"},
Name: "Facid",
Port: 8800,
Address: "192.168.10.130",
Check:&api.AgentServiceCheck{
CheckID:"consul grpc test",
TCP:"192.168.10.130:8800",
Timeout:"1s",
Interval:"5s",
},
}
//注册grpc服务
client.Agent().ServiceRegister(®Serv)
// 初始化对象
gserv := grpc.NewServer()
// 注册服务
fmt.Println(gserv)
pb.RegisterHelloServer(gserv, new(Children))
// 监听
listener, err := net.Listen("tcp", "192.168.10.130:8800")
if err != nil {
fmt.Println("Listen err:", err)
}
defer listener.Close()
// 启动服务
gserv.Serve(listener)
}
- 环境安装
- 基础学习
- 基础语法
- 判断语句
- 数组
- 切片
- 函数
- 协程Goroutine
- 管道channel
- 结构体
- gin框架
- gin安装
- gin模板加载
- gin加载静态文件
- gin路由分组
- gin获取get参数
- gin获取post参数
- gin中cookie会话
- gin中session会话
- beego框架
- rpc
- gorm
- gorm安装
- protobuf
- 安装
- 编译
- grpc
- grpc安装
- 创建proto文件
- 创建服务端
- 创建客户端
- 服务发现consul学习
- consul安装
- consol结合grpc的服务端示例
- consol结合grpc的客户端示例
- go-micro
- go-micro安装
- micro命令创建项目