feat: registry.

This commit is contained in:
Bobo
2025-06-02 11:53:18 +08:00
parent b0e91998e1
commit 59c731904a
83 changed files with 7154 additions and 1784 deletions

View File

@@ -2,70 +2,42 @@ package registry
import (
"github.com/go-kratos/kratos/v2/registry"
"github.com/tx7do/kratos-bootstrap/registry/consul"
"github.com/tx7do/kratos-bootstrap/registry/etcd"
"github.com/tx7do/kratos-bootstrap/registry/eureka"
"github.com/tx7do/kratos-bootstrap/registry/kubernetes"
"github.com/tx7do/kratos-bootstrap/registry/nacos"
"github.com/tx7do/kratos-bootstrap/registry/servicecomb"
"github.com/tx7do/kratos-bootstrap/registry/zookeeper"
conf "github.com/tx7do/kratos-bootstrap/api/gen/go/conf/v1"
)
// NewRegistry 创建一个注册客户端
func NewRegistry(cfg *conf.Registry) registry.Registrar {
if cfg == nil {
return nil
}
type RegistrarCreator func(c *conf.Registry) registry.Registrar
type DiscoveryCreator func(c *conf.Registry) registry.Discovery
switch Type(cfg.Type) {
case Consul:
return consul.NewRegistry(cfg)
case Etcd:
return etcd.NewRegistry(cfg)
case ZooKeeper:
return zookeeper.NewRegistry(cfg)
case Nacos:
return nacos.NewRegistry(cfg)
case Kubernetes:
return kubernetes.NewRegistry(cfg)
case Eureka:
return eureka.NewRegistry(cfg)
case Polaris:
return nil
case Servicecomb:
return servicecomb.NewRegistry(cfg)
}
type RegistrarCreatorMap map[string]RegistrarCreator
type DiscoveryCreatorMap map[string]DiscoveryCreator
return nil
var registrars RegistrarCreatorMap
var discoveries DiscoveryCreatorMap
func RegisterRegistrarCreator(name string, reg RegistrarCreator) {
if registrars == nil {
registrars = make(RegistrarCreatorMap)
}
registrars[name] = reg
}
// NewDiscovery 创建一个发现客户端
func NewDiscovery(cfg *conf.Registry) registry.Discovery {
if cfg == nil {
func GetRegistrarCreator(name string) RegistrarCreator {
if registrars == nil {
return nil
}
switch Type(cfg.Type) {
case Consul:
return consul.NewRegistry(cfg)
case Etcd:
return etcd.NewRegistry(cfg)
case ZooKeeper:
return zookeeper.NewRegistry(cfg)
case Nacos:
return nacos.NewRegistry(cfg)
case Kubernetes:
return kubernetes.NewRegistry(cfg)
case Eureka:
return eureka.NewRegistry(cfg)
case Polaris:
return nil
case Servicecomb:
return servicecomb.NewRegistry(cfg)
}
return nil
return registrars[name]
}
func RegisterDiscoveryCreator(name string, dis DiscoveryCreator) {
if discoveries == nil {
discoveries = make(DiscoveryCreatorMap)
}
discoveries[name] = dis
}
func GetDiscoveryCreator(name string) DiscoveryCreator {
if discoveries == nil {
return nil
}
return discoveries[name]
}