

啟動grpc server
package main
import (v
"github.com/micro/go-micro"
"github.com/micro/go-micro/registry"
"github.com/micro/go-micro/registry/etcdv3"
"github.com/micro/go-plugins/registry/consul"
"micro/Services"
"micro/ServicesImpl"
)
func main() {
consulReg := consul.NewRegistry(registry.Addrs("localhost:8500"))
etcdReg := etcdv3.NewRegistry(registry.Addrs("106.12.72.181:23791"))
myservice := micro.NewService(
micro.Name("api.xiahualou.com.test"), //這里在namespace的基礎上多加了一個test,在下面會講解到這個.test的作用
micro.Address(":8001"),
micro.Registry(etcdReg),
micro.Registry(consulReg),
)
Services.RegisterTestServiceHandler(myservice.Server(), new(ServicesImpl.TestService))
myservice.Run()
}
為服務設置網關之后,就可以使用簡單的http請求 只發送json獲取數據了,新版本的micro已經不支持consul了
我們需要在下載好的$GOPATH/src/github.com/micro/micro 下新建plugins.go文件
package main
import (
_ "github.com/micro/go-plugins/registry/etcdv3"
)
然后使用go build -i -o micro ./main.go ./plugins.go重新編譯生成micro.exe然后拷貝到$GOBIN目錄下,執行批處理文件中的命令或者直接執行,micro api從環境變量中讀取配置
set MICRO_REGISTRY=etcdv3 #新版本micro工具已經不支持consul,我們這里使用consul
set MICRO_REGISTRY_ADDRESS=106.12.72.181:23791
set MICRO_API_NAMESPACE=api.xiahualou.com #這里是命名空間 我們注冊的sevice是api.xiahualou.com.test
set MICRO_API_HANDLER=rpc #支持api event http rpc
micro api # 啟動網關
網關默認關口是8080,這里訪問的路徑就是localhost:8080/test/TestService/call,網關會接收到請求並轉發給rpc server
