e071084ebe
govulncheck / govulncheck (push) Waiting to run
Harness (E2E) / Harnesses (mock LLM) (push) Waiting to run
Harness (E2E) / Provider harnesses (live LLM conformance) (push) Waiting to run
Lint / golangci-lint (push) Waiting to run
Run Tests / Unit Tests (push) Waiting to run
Run Tests / Etcd Integration Tests (push) Waiting to run
1.5 KiB
1.5 KiB
layout
| layout |
|---|
| default |
Registry
The registry is responsible for service discovery in Go Micro. It allows services to register themselves and discover other services.
Features
- Service registration and deregistration
- Service lookup
- Watch for changes
Implementations
Go Micro supports multiple registry backends, including:
- MDNS (default)
- Consul
- Etcd
- NATS
You can configure the registry when initializing your service.
Plugins Location
Registry plugins live in this repository under go-micro.dev/v6/registry/<plugin> (e.g., consul, etcd, nats). Import the desired package and pass it via micro.Registry(...).
Configure via environment
MICRO_REGISTRY=etcd MICRO_REGISTRY_ADDRESS=127.0.0.1:2379 micro server
Common variables:
MICRO_REGISTRY: selects the registry implementation (mdns,consul,etcd,nats).MICRO_REGISTRY_ADDRESS: comma-separated list of registry addresses.
Backend-specific variables:
- Etcd:
ETCD_USERNAME,ETCD_PASSWORDfor authenticated clusters.
Example Usage
Here's how to use a custom registry (e.g., Consul) in your Go Micro service:
package main
import (
"go-micro.dev/v6"
"go-micro.dev/v6/registry/consul"
)
func main() {
reg := consul.NewRegistry()
service := micro.NewService("registry-example",
micro.Registry(reg),
)
service.Init()
service.Run()
}