otto 2 years ago
parent
commit
9d8f8fb0f3
  1. 17
      client/client.go
  2. 2
      discver/discovery.go
  3. 16
      discver/discver.go
  4. 19
      discver/pool.go
  5. 3
      etcd_test.go
  6. 9
      go.mod
  7. 8
      go.sum
  8. 9
      load/load.go
  9. 21
      register/register.go

17
client/client.go

@ -1,6 +1,7 @@
package client
import (
"git.gz.internal.jumaiyx.cn/jm/jmproto/conf"
"git.gz.internal.jumaiyx.cn/pkg/go-etcd"
"github.com/go-kratos/kratos/v2/config"
"github.com/go-kratos/kratos/v2/log"
@ -16,14 +17,18 @@ var (
)
type Data struct {
Etcd Etcd
Etcd conf.Etcd
}
type Etcd struct {
Host string
Username string
Password string
Timeout time.Duration
Timeout int32
Pool struct {
Min int32
Max int32
}
}
// Client Link etcd
@ -37,7 +42,7 @@ func Client(c clientv3.Config) (*clientv3.Client, error) {
return client, nil
}
func Conf(bc *Etcd) (*clientv3.Config, error) {
func Conf(bc *conf.Etcd) (*clientv3.Config, error) {
if bc.Host == "" {
log.Warn("host empty is not allowed")
return nil, go_etcd.HostNullError
@ -53,7 +58,7 @@ func Conf(bc *Etcd) (*clientv3.Config, error) {
}
cli.DialTimeout = 3 * time.Second
if bc.Timeout != 0 {
cli.DialTimeout = bc.Timeout * time.Second
cli.DialTimeout = time.Duration(bc.Timeout) * time.Second
}
return cli, nil
}
@ -66,11 +71,11 @@ func NewConfClient(c config.Config) (*clientv3.Client, error) {
return getClient(&bc.Etcd)
}
func NewClient(bc *Etcd) (*clientv3.Client, error) {
func NewClient(bc *conf.Etcd) (*clientv3.Client, error) {
return getClient(bc)
}
func getClient(bc *Etcd) (*clientv3.Client, error) {
func getClient(bc *conf.Etcd) (*clientv3.Client, error) {
mux.Lock()
defer mux.Unlock()
if clinet == nil {

2
discovery/discovery.go → discver/discovery.go

@ -1,4 +1,4 @@
package discovery
package discver
import (
"context"

16
discovery/registry.go → discver/discver.go

@ -1,6 +1,7 @@
package discovery
package discver
import (
"git.gz.internal.jumaiyx.cn/jm/jmproto/conf"
cli "git.gz.internal.jumaiyx.cn/pkg/go-etcd/client"
"github.com/go-kratos/kratos/contrib/registry/etcd/v2"
"github.com/go-kratos/kratos/v2/config"
@ -9,8 +10,7 @@ import (
)
var (
registry *etcd.Registry
mu sync.Mutex
mu sync.Mutex
)
type Registry struct {
@ -24,17 +24,21 @@ func NewConfRegistry(c config.Config) (*Registry, error) {
if err := c.Scan(&bc); err != nil {
return nil, err
}
//e := bc.Etcd.(conf.Etcd)
return getRegistry(&bc.Etcd)
}
// NewDail parameters dial
func NewRegistry(bc *cli.Etcd) (*Registry, error) {
func NewRegistry(bc *conf.Etcd) (*Registry, error) {
return getRegistry(bc)
}
func (reg *Registry) GetReg() *etcd.Registry {
return reg.r
}
//discard
func getRegistry(bc *cli.Etcd) (*Registry, error) {
func getRegistry(bc *conf.Etcd) (*Registry, error) {
mu.Lock()
defer mu.Unlock()
conf, err := cli.Conf(bc)

19
discovery/pool.go → discver/pool.go

@ -1,8 +1,8 @@
package discovery
package discver
import (
"git.gz.internal.jumaiyx.cn/jm/jmproto/conf"
"git.gz.internal.jumaiyx.cn/pkg/go-etcd/pool"
"github.com/go-kratos/kratos/v2/config"
"github.com/go-kratos/kratos/v2/log"
"time"
)
@ -20,16 +20,25 @@ type RegistryConfig struct {
MaxOpen int
MinOpen int
MaxLifetime time.Duration
Conf config.Config
Conf *conf.Etcd
}
func New(c *RegistryConfig) *RegistryConfig {
func NewEtcd(c *RegistryConfig) *RegistryConfig {
if c.MaxOpen == 0 {
c.MaxOpen = 10
}
if c.MinOpen == 0 {
c.MinOpen = 5
}
if c.MaxLifetime == 0 {
c.MaxLifetime = 5 * time.Second
}
return c
}
func (dis *RegistryConfig) Dial() (*pool.GenericPool, error) {
genericPool, err := pool.NewGenericPool(dis.MinOpen, dis.MaxOpen, dis.MaxLifetime, func() (pool.Poolable, error) {
confRegistry, err := NewConfRegistry(dis.Conf)
confRegistry, err := NewRegistry(dis.Conf)
if err != nil {
log.Errorf(pool.ErrCreatePoolFailed, err)
return nil, err

3
etcd_test.go

@ -2,6 +2,7 @@ package go_etcd
import (
"context"
"git.gz.internal.jumaiyx.cn/jm/jmproto/conf"
"git.gz.internal.jumaiyx.cn/pkg/go-etcd/client"
"github.com/go-kratos/kratos/v2/log"
"testing"
@ -9,7 +10,7 @@ import (
func TestDial(t *testing.T) {
ctx := context.Background()
c := &client.Etcd{
c := &conf.Etcd{
Host: "127.0.0.1:20000",
Timeout: 3,
}

9
go.mod

@ -10,6 +10,7 @@ require (
)
require (
git.gz.internal.jumaiyx.cn/jm/jmproto v0.0.0-20220922123525-2e147d374272 // indirect
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/go-playground/form/v4 v4.2.0 // indirect
@ -22,10 +23,10 @@ require (
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.17.0 // indirect
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad // indirect
golang.org/x/text v0.3.5 // indirect
google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd // indirect
golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
golang.org/x/text v0.3.7 // indirect
google.golang.org/genproto v0.0.0-20220524023933-508584e28198 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

8
go.sum

@ -1,5 +1,9 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
git.gz.internal.jumaiyx.cn/jm/jmproto v0.0.0-20220922121042-1a90427e07b8 h1:Dg2urvqTVZBgqqJjPQ63/crBHaTYLMKuDdG6mbzMPYA=
git.gz.internal.jumaiyx.cn/jm/jmproto v0.0.0-20220922121042-1a90427e07b8/go.mod h1:Crg7PRCYXQcXVkBzkS/7sOGTmtT19L0KaBu60CxJBDc=
git.gz.internal.jumaiyx.cn/jm/jmproto v0.0.0-20220922123525-2e147d374272 h1:OLh0HID5h/vBGddsJpN41KywDswyhBorx5swoa1tU1M=
git.gz.internal.jumaiyx.cn/jm/jmproto v0.0.0-20220922123525-2e147d374272/go.mod h1:Crg7PRCYXQcXVkBzkS/7sOGTmtT19L0KaBu60CxJBDc=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@ -206,6 +210,7 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -241,12 +246,14 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@ -271,6 +278,7 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd h1:e0TwkXOdbnH/1x5rc5MZ/VYyiZ4v+RdVfrGMqEwT68I=
google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
google.golang.org/genproto v0.0.0-20220524023933-508584e28198/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=

9
load/load.go

@ -0,0 +1,9 @@
package load
import "flag"
var flagconf string
func Load() {
flag.StringVar(&flagconf, "conf", "./configs", "config path, eg: -conf config.yaml")
}

21
register/register.go

@ -0,0 +1,21 @@
package register
import (
"git.gz.internal.jumaiyx.cn/jm/jmproto/conf"
"git.gz.internal.jumaiyx.cn/pkg/go-etcd/discver"
"github.com/go-kratos/kratos/contrib/registry/etcd/v2"
"github.com/go-kratos/kratos/v2/log"
"sync"
)
var mu sync.Mutex
func NewEtcd(bc *conf.Etcd) (*etcd.Registry, error) {
registry, err := discver.NewRegistry(bc)
if err != nil {
log.Error(err)
return nil, err
}
return registry.GetReg(), nil
}
Loading…
Cancel
Save