### 安裝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命令創建項目