go-micronacos.
Nacos:https://nacos.io/en-us/
Go-Micro:https://github.com/micro/go-micro
go-micro(server.go)(client.go).
protobufGreeter,HelloRequestHelloResponseHellonacos
syntax = "proto3";
package helloworld;
service Greeter {
rpc Hello(HelloRequest) returns (HelloResponse) {}
}
message HelloRequest {
string name = 1;
}
message HelloResponse {
string greeting = 2;
}
,Hello,,,
ps:(client.go nacosgo-mircogo-micro registry ,contextnacos, contextnacos :https://github.com/micro/go-plugins/blob/master/registry/nacos/nacos_test.go)
server.go
:go-microDemo,nacos
registry := nacos.NewRegistry(func(options *registry.Options) {
options.Addrs = addrs
})
service := micro.NewService(
// Set service name
micro.Name("my.micro.service"),
// Set service registry
micro.Registry(registry),
)
service.Run()
client.go
:go-microDemo,nacos.
r := nacos.NewRegistry(func(options *registry.Options) {
options.Addrs = addrs
})
service := micro.NewService(
micro.Name("my.micro.service.client"),
micro.Registry(r))
rpc
//
greeter := helloworld.NewGreeterService(serverName, service.Client())
// greeter
rsp, err := greeter.Hello(context.TODO(), &helloworld.HelloRequest{Name: "John"})
services,err:=registry.ListServices()
service, err := registry.GetService(serverName)
//
watch, err := registry.Watch()
for {
result, err := watch.Next()
if len(result.Action) > 0 {
fmt.Println(result, err)
}
}
#clone
$git clone [email protected]:sanxun0325/go-micro-nacos-demo.git
#
$go run server.go
2020-08-25 20:11:52 [email protected]/service.go:200 level=info Starting [service] my.micro.service
2020-08-25 20:11:52 file=grpc/grpc.go:864 level=info Server [grpc] Listening on [::]:64604
2020-08-25 20:11:52 file=grpc/grpc.go:697 level=info Registry [nacos] Registering node: my.micro.service-c23d867d-4752-4dc2-8944-3098a1d2c404
#
$go run client.go
2020-08-25 20:18:35 [email protected]/service.go:200 level=info Starting [service] my.micro.service.client
2020-08-25 20:18:35 file=grpc/grpc.go:864 level=info Server [grpc] Listening on [::]:64957
2020-08-25 20:18:35 file=grpc/grpc.go:697 level=info Registry [nacos] Registering node: my.micro.service.client-ae7d2a0b-3758-49ee-8bd3-d30377a416e4
()
2020-08-25 20:18:35 file=go-micro-demo/server.go:17 level=info Received Helloworld.Call request
nacos