diff --git a/core/discovery/discovery.go b/core/discovery/discovery.go index 05c12d3..951ff57 100644 --- a/core/discovery/discovery.go +++ b/core/discovery/discovery.go @@ -18,12 +18,12 @@ var clientDiscovery = &Discovery{ lock: &sync.RWMutex{}, } -func EnableDiscovery(conf config.RegisterCenter) { +func EnableDiscovery(conf *config.RegisterCenter) { var er *register.ApplicationRegisterCenter if conf.EurekaConfig.ServiceUrls != nil { - er = eureka.NewEurekaRegister() + er = eureka.NewEurekaRegister(conf) } else if conf.EtcdConfig.Endpoints != nil { - er = etcd.NewEtcdRegister() + er = etcd.NewEtcdRegister(conf) } clientDiscovery.lock.Lock() diff --git a/core/discovery/register/etcd/etcd_register_center.go b/core/discovery/register/etcd/etcd_register_center.go index 868346d..fb033b8 100644 --- a/core/discovery/register/etcd/etcd_register_center.go +++ b/core/discovery/register/etcd/etcd_register_center.go @@ -17,17 +17,16 @@ type etcdRegister struct { register *register.ApplicationRegisterCenter } -func NewEtcdRegister() *register.ApplicationRegisterCenter { +func NewEtcdRegister(conf *config.RegisterCenter) *register.ApplicationRegisterCenter { reg := register.NewApplicationRegisterCenter() r := &etcdRegister{ register: reg, } - r.enableEtcdClient() + r.enableEtcdClient(conf) return reg } -func (r *etcdRegister) enableEtcdClient() { - conf := config.GetRegisterCenter() +func (r *etcdRegister) enableEtcdClient(conf *config.RegisterCenter) { etcdRefresh := time.NewTicker(time.Second * conf.RefreshFrequency) cli, err := clientv3.New(clientv3.Config{ diff --git a/core/discovery/register/eureka/eureka_register_center.go b/core/discovery/register/eureka/eureka_register_center.go index 575a7d1..902c55a 100644 --- a/core/discovery/register/eureka/eureka_register_center.go +++ b/core/discovery/register/eureka/eureka_register_center.go @@ -17,12 +17,12 @@ type eurekaRegister struct { register *register.ApplicationRegisterCenter } -func NewEurekaRegister() *register.ApplicationRegisterCenter { +func NewEurekaRegister(conf *config.RegisterCenter) *register.ApplicationRegisterCenter { reg := register.NewApplicationRegisterCenter() r := &eurekaRegister{ register: reg, } - r.enableEurekaClient() + r.enableEurekaClient(conf) return reg } @@ -51,8 +51,7 @@ type eurekaApps struct { } `json:"applications"` } -func (r *eurekaRegister) enableEurekaClient() { - conf := config.GetRegisterCenter() +func (r *eurekaRegister) enableEurekaClient(conf *config.RegisterCenter) { eurekaRefresh := time.NewTicker(time.Second * conf.RefreshFrequency) go func(tick *time.Ticker) { defer tick.Stop() diff --git a/go.mod b/go.mod index 69bb914..6d422d2 100644 --- a/go.mod +++ b/go.mod @@ -18,6 +18,8 @@ require ( github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect @@ -29,4 +31,5 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index 63c5cb0..6368ec1 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,7 @@ github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmf github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -23,10 +24,15 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9K github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= @@ -112,8 +118,10 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=