, um die Methode zum Erstellen einer Go-Micro-Entwicklungsumgebung vorzustellen. Ich hoffe, dass es den Freunden, die es benötigen, hilfreich sein wird!
Da ich kürzlich go-micro verwenden muss, lerne ich etwas über Microservices. Dieser Artikel zeichnet den Konstruktionsprozess von Micro auf.
Installationsumgebung
Quellcode
go get github.com/micro/micro/v2
Docker
docker pull micro/micro
# MacOS curl -fsSL https://raw.githubusercontent.com/micro/micro/master/scripts/install.sh | /bin/bash # Linux wget -q https://raw.githubusercontent.com/micro/micro/master/scripts/install.sh -O - | /bin/bash # Windows powershell -Command "iwr -useb https://raw.githubusercontent.com/micro/micro/master/scripts/install.ps1 | iex"
https://github.com/micro/micro/releases
micro webNach dem Login kopierenNach dem Login kopierenBesuchen Sie jetzt
, um die Webseite des Mikros anzuzeigen.
Protoc ist der Compiler von Protobuf, und Protobuf ist ein Format zum Übertragen von Daten wie JSON und XML.
Protokoll-Download-Adresse$ micro web2020-07-05 04:24:16 file=http/http.go:90 level=info service=web HTTP API Listening on [::]:80822020-07-05 04:24:16 file=v2@v2.9.1/service.go:200 level=info service=web Starting [service] go.micro.web2020-07-05 04:24:16 file=grpc/grpc.go:864 level=info service=web Server [grpc] Listening on [::]:264492020-07-05 04:24:16 file=grpc/grpc.go:697 level=info service=web Registry [mdns] Registering node: go.micro.web-b76a12a1-5226-429f-9633-ce304f179657
localhost:8082
Empfohlen: „
https://github.com/protocolbuffers/protobuf/releases
Es gibt insgesamt drei Dateien: ,
,go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen-go
server.goserver.go
syntax = "proto3";package protos;service Greeter { rpc Hello (Request) returns (Response){};}message Request { string name = 1;}message Response { string greeting = 2;}
client.go
greeter.proto
client.gopackage mainimport ( "context" "fmt" "github.com/micro/go-micro/v2")type Greeter struct {}func (g *Greeter) Hello(context context.Context, req *Request, rsp *Response) error { rsp.Greeting = "Hello " + req.Name return nil}func main() { service := micro.NewService( micro.Name("greeter"), ) service.Init() err := RegisterGreeterHandler(service.Server(), new(Greeter)) if err != nil { fmt.Println(err) } if err := service.Run(); err != nil { fmt.Println(err) }}
package mainimport ( "context" "fmt" "github.com/micro/go-micro/v2")func main() { service := micro.NewService(micro.Name("greeter.client")) service.Init() greeter := NewGreeterService("greeter", service.Client()) rsp, err := greeter.Hello(context.TODO(), &Request{Name: "Zaun pianist"}) if err != nil { fmt.Println(err) } fmt.Println(rsp.Greeting)}
Ausführen
module hello go 1.14require ( github.com/golang/protobuf v1.4.0 github.com/micro/go-micro/v2 v2.9.1 google.golang.org/protobuf v1.22.0)
protoc --micro_out=. --go_out=. greeter.proto
go run server.go greeter.pb.go greeter.pb.micro.go
greeter.pb.go
micro list services
greeter.pb.micro.go
Testenmicro web
Geben Sie also bei der Registrierung des Dienstes die IP-Adresse ango run ./
$ micro list services go.micro.web greeter
go run client.go greeter.pb.go greeter.pb.micro.go
Das obige ist der detaillierte Inhalt vonSo richten Sie eine Go-Micro-Entwicklungsumgebung ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!