Skip to content

Commit f478922

Browse files
committed
feat(core): refactor configcenter
1 parent c4e5857 commit f478922

2 files changed

Lines changed: 53 additions & 2 deletions

File tree

core/configcenter/configcenter.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package configcenter
2+
3+
import (
4+
configurator "github.com/zeromicro/go-zero/core/configcenter"
5+
"github.com/zeromicro/go-zero/core/configcenter/subscriber"
6+
"github.com/zeromicro/go-zero/core/logx"
7+
)
8+
9+
type Config configurator.Config
10+
11+
type ConfigCenter[T any] interface {
12+
configurator.Configurator[T]
13+
MustGetConfig() T
14+
}
15+
16+
type configCenter[T any] struct {
17+
configurator.Configurator[T]
18+
}
19+
20+
func (c *configCenter[T]) MustGetConfig() T {
21+
config, err := c.Configurator.GetConfig()
22+
logx.Must(err)
23+
return config
24+
}
25+
26+
func (c *configCenter[T]) GetConfig() (T, error) {
27+
return c.Configurator.GetConfig()
28+
}
29+
30+
func (c *configCenter[T]) AddListener(listener func()) {
31+
c.Configurator.AddListener(listener)
32+
}
33+
34+
func MustNewConfigCenter[T any](c Config, subscriber subscriber.Subscriber) ConfigCenter[T] {
35+
cc, err := NewConfigCenter[T](c, subscriber)
36+
logx.Must(err)
37+
return cc
38+
}
39+
40+
func NewConfigCenter[T any](c Config, subscriber subscriber.Subscriber) (ConfigCenter[T], error) {
41+
cc := &configCenter[T]{}
42+
43+
center, err := configurator.NewConfigCenter[T](configurator.Config(c), subscriber)
44+
if err != nil {
45+
return nil, err
46+
}
47+
cc.Configurator = center
48+
return cc, nil
49+
}

core/configcenter/subscriber/etcd.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ import (
55
"github.com/zeromicro/go-zero/core/logx"
66
)
77

8+
type EtcdConf subscriber.EtcdConf
9+
810
// MustNewEtcdSubscriber returns an etcd Subscriber, exits on errors.
9-
func MustNewEtcdSubscriber(conf subscriber.EtcdConf) subscriber.Subscriber {
10-
s, err := subscriber.NewEtcdSubscriber(conf)
11+
func MustNewEtcdSubscriber(conf EtcdConf) subscriber.Subscriber {
12+
s, err := subscriber.NewEtcdSubscriber(subscriber.EtcdConf(conf))
1113
logx.Must(err)
1214
return s
1315
}

0 commit comments

Comments
 (0)