go-micro.dev/v5@v5.12.0/internal/website/docs/client-server.md (about) 1 --- 2 layout: default 3 --- 4 5 # Client/Server 6 7 Go Micro uses a client/server model for RPC communication between services. 8 9 ## Client 10 The client is used to make requests to other services. 11 12 ## Server 13 The server handles incoming requests. 14 15 Both client and server are pluggable and support middleware wrappers for additional functionality. 16 17 ## Example Usage 18 19 Here's how to define a simple handler and register it with a Go Micro server: 20 21 ```go 22 package main 23 24 import ( 25 "context" 26 "go-micro.dev/v5" 27 "log" 28 ) 29 30 type Greeter struct{} 31 32 func (g *Greeter) Hello(ctx context.Context, req *struct{}, rsp *struct{Msg string}) error { 33 rsp.Msg = "Hello, world!" 34 return nil 35 } 36 37 func main() { 38 service := micro.NewService( 39 micro.Name("greeter"), 40 ) 41 service.Init() 42 micro.RegisterHandler(service.Server(), new(Greeter)) 43 if err := service.Run(); err != nil { 44 log.Fatal(err) 45 } 46 } 47 ```