mirror of
https://github.com/go-kratos/kratos.git
synced 2025-01-16 02:47:03 +02:00
8743f3e50c
* deps: upgrade kratos version v2.5.1 * fix goimport |
||
---|---|---|
.. | ||
discovery_helper.go | ||
discovery.go | ||
go.mod | ||
go.sum | ||
impl_discover.go | ||
impl_registrar.go | ||
README.md |
Discovery Registry
This module implements a registry.Registrar
and registry.Discovery
interface in kratos based bilibili/discovery
.
Quick Start
Register a service
import (
"github.com/go-kratos/kratos/contrib/registry/discovery/v2"
)
func main() {
// initialize a registry
r := discovery.New(&discovery.Config{
Nodes: []string{"0.0.0.0:7171"},
Env: "dev",
Region: "sh1",
Zone: "zone1",
Host: "hostname",
})
// construct srv instance
// ...
app := kratos.New(
kratos.Name("helloworld"),
kratos.Server(
httpSrv,
grpcSrv,
),
kratos.Metadata(map[string]string{"color": "gray"}),
// use Registrar
kratos.Registrar(r),
)
if err := app.Run(); err != nil {
log.NewHelper(logger).Fatal(err)
}
}
Discover a service
import (
"github.com/go-kratos/kratos/contrib/registry/discovery/v2"
"github.com/go-kratos/kratos/v2/transport/grpc"
)
func main() {
// initialize a discovery
r := discovery.New(&discovery.Config{
Nodes: []string{"0.0.0.0:7171"},
Env: "dev",
Region: "sh1",
Zone: "zone1",
Host: "localhost",
}, nil)
conn, err := grpc.DialInsecure(
context.Background(),
grpc.WithEndpoint("discovery:///appid"),
// use discovery
grpc.WithDiscovery(r),
)
if err != nil {
log.Fatal(err)
}
defer conn.Close()
// request and log
}
Config explain
type Config struct {
Nodes []string // discovery nodes address
Region string // region of the service, sh
Zone string // zone of region, sh001
Env string // env of service, dev, prod and etc
Host string // hostname of service
}