Как использовать Go -micro отправить запрос из микро-службы? - PullRequest
0 голосов
/ 06 января 2020

Я изучаю микро, читая Официальный 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() в обычном смысле, я прав?

...