go-micro 找不到服务,server not found是什么原因?编译出来在linux下面可以,windows不行。
我按照go-micro官网介绍,写了一个demo,但是发现服务器可以运行,客服端显示找不到服务器,为什么呢?
server端:
package main
import (
"context"
"fmt" "github.com/micro/go-micro" proto "microservice/src/server/proto"
)
type Greeter struct{}
func (g *Greeter) Hello(ctx context.Context, req *proto.Request, rsp *proto.Response) error {
rsp.Greeting = "Hello " + req.Name
return nil
}
func main() {
// Create a new service. Optionally include some options here.
service := micro.NewService(
micro.Name("greeter"),
)
// Init will parse the command line flags.
service.Init()
// Register handler
_ = proto.RegisterGreeterHandler(service.Server(), new(Greeter))
fmt.Println(service.Name())
// Run the server
if err := service.Run(); err != nil {
fmt.Println(err)
}
}
client端
package main
import (
"context"
"fmt" "github.com/micro/go-micro" proto "microservice/src/server/proto"
)
func main() {
// Create a new service
service := micro.NewService(
micro.Name("greeter.client"),
)
// Initialise the client and parse command line flags
service.Init()
// Create new greeter client
greeter := proto.NewGreeterService("greeter", service.Client())
// Call the greeter
rsp, err := greeter.Hello(context.TODO(), &proto.Request{Name: "John"})
if err != nil {
fmt.Println(err)
}
// Print response
fmt.Println(rsp.Greeting)
}
proto
syntax = "proto3";
service Greeter {
rpc Hello(Request) returns (Response) {}
}
message Request {
string name = 1;
}
message Response {
string greeting = 2;
}
提示:
{"id":"go.micro.client","code":500,"detail":"service greeter: not found","status":"Internal Server Error"}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
windows下无法使用命令行参数,接受不到 --registry=consul
init中将命令行要用的参数直接做进去就可以使用了,效果等同于linux系统下加命令行参数
我的正好是在linux下不行(开启防火墙的情况下),windows下可以。