You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haiyux
da70e22201
|
3 years ago | |
---|---|---|
.. | ||
README.md | 3 years ago | |
discovery.go | 3 years ago | |
discovery_helper.go | 3 years ago | |
go.mod | 3 years ago | |
go.sum | 3 years ago | |
impl_discover.go | 3 years ago | |
impl_registrar.go | 3 years ago |
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() {
logger := log.NewStdLogger(os.Stdout)
logger = log.With(logger, "service", "example.registry.discovery")
// initialize a registry
r := discovery.New(&discovery.Config{
Nodes: []string{"0.0.0.0:7171"},
Env: "dev",
Region: "sh1",
Zone: "zone1",
Host: "hostname",
}, logger)
// 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
}