Я изучаю микро, читая Официальный do c.
Я бы хотел изменить демо в разделе write-client , и сделать так, чтобы он отправлял запрос из других служб.
Вот мое демо:
package main
import (
"context"
"github.com/micro/go-micro/util/log"
cliproto "cli101/proto/tester"
micro "github.com/micro/go-micro"
mic101proto "mic101/proto/greeter"
)
var service = micro.NewService(
micro.Name("backer"),
)
type Backer struct{}
func (e *Backer) Back(ctx context.Context, req *cliproto.BackRequest, rsp *cliproto.BackResponse) error {
log.Log("Received mic101.Hey request")
greeter := mic101proto.NewGreeterService("greeter", service.Client())
rspRemote, err := greeter.Hey(context.TODO(), &mic101proto.Request{Name: "ProxyHere"})
if err != nil {
log.Log(err)
}
rsp.Msgtrans = "Hello " + req.Symbol + ", with remote msg: " + rspRemote.Msg
return nil
}
func main() {
// service := micro.NewService(
// micro.Name("backer"),
// )
service.Init()
cliproto.RegisterBackerHandler(service.Server(), new(Backer))
if err := service.Run(); err != nil {
log.Fatal(err)
}
}
Мне было интересно, если это правильный способ отправить запрос в другой микросервис?
Например, чтобы service
можно было использовать внутри функции Back()
и сделать его глобальным, как:
var service = micro.NewService(
micro.Name("backer"),
)
Я полагаю, что это должно быть в функции main()
в обычном смысле, я прав?