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  ```