安裝go-plugins
go get -v github.com/micro/go-plugins,原來go-micro consul的支持已經遷移到了go-plugins里面
package main
import (
"github.com/gin-gonic/gin"
"github.com/micro/go-micro/registry"
"github.com/micro/go-micro/web"
"github.com/micro/go-plugins/registry/consul"
)
func main() {
consulReg := consul.NewRegistry( //新建一個consul注冊的地址,也就是我們consul服務啟動的機器ip+端口
registry.Addrs("localhost:8500"),
)
ginRouter := gin.Default()
ginRouter.Handle("GET", "/user", func(context *gin.Context) {
context.String(200, "user api")
})
ginRouter.Handle("GET", "/news", func(context *gin.Context) {
context.String(200, "news api")
})
server := web.NewService( //go-micro很靈性的實現了注冊和反注冊,我們啟動后直接ctrl+c退出這個server,它會自動幫我們實現反注冊
web.Name("prodservice"), //注冊進consul服務中的service名字
web.Address(":8001"), //注冊進consul服務中的端口
web.Handler(ginRouter), //web.Handler()返回一個Option,我們直接把ginRouter穿進去,就可以和gin完美的結合
web.Registry(consulReg),//注冊到哪個服務器傷的consul中
)
server.Run()
}