You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by zt...@apache.org on 2022/01/11 14:02:20 UTC

[dubbo-go-pixiu] branch develop updated: improve: get cpu number in container (#340)

This is an automated email from the ASF dual-hosted git repository.

ztelur pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go-pixiu.git


The following commit(s) were added to refs/heads/develop by this push:
     new eedc4e2  improve: get cpu number in container (#340)
eedc4e2 is described below

commit eedc4e2915465b6c041f4674e7d637d3b28cfdbd
Author: marlon <i...@marlon.life>
AuthorDate: Tue Jan 11 22:02:13 2022 +0800

    improve: get cpu number in container (#340)
---
 cmd/pixiu/pixiu.go                                 |  3 +-
 go.mod                                             |  4 +--
 go.sum                                             |  9 +++--
 .../dubboregistry/remoting/zookeeper/client.go     | 42 ++++++++++------------
 4 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/cmd/pixiu/pixiu.go b/cmd/pixiu/pixiu.go
index 477f85f..5e13d91 100644
--- a/cmd/pixiu/pixiu.go
+++ b/cmd/pixiu/pixiu.go
@@ -26,6 +26,7 @@ import (
 )
 
 import (
+	gxruntime "github.com/dubbogo/gost/runtime"
 	"github.com/spf13/cobra"
 )
 
@@ -145,7 +146,7 @@ func initLimitCpus() error {
 		return err
 	}
 	if limitCpuNumber <= 0 {
-		runtime.GOMAXPROCS(runtime.NumCPU())
+		runtime.GOMAXPROCS(gxruntime.GetCPUNum())
 	} else {
 		runtime.GOMAXPROCS(int(limitCpuNumber))
 	}
diff --git a/go.mod b/go.mod
index 58ed6af..52dde1b 100644
--- a/go.mod
+++ b/go.mod
@@ -10,8 +10,8 @@ require (
 	github.com/apache/dubbo-go-hessian2 v1.10.0
 	github.com/creasty/defaults v1.5.2
 	github.com/dubbogo/dubbo-go-pixiu-filter v0.1.4
-	github.com/dubbogo/go-zookeeper v1.0.3
-	github.com/dubbogo/gost v1.11.20-0.20211116110728-26777ca61b4a
+	github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5
+	github.com/dubbogo/gost v1.11.22
 	github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32
 	github.com/gin-gonic/gin v1.7.4
 	github.com/go-playground/assert/v2 v2.0.1
diff --git a/go.sum b/go.sum
index 32b1e0e..0e8e102 100644
--- a/go.sum
+++ b/go.sum
@@ -125,8 +125,9 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB
 github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
-github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23 h1:D21IyuvjDCshj1/qq+pCNd3VZOAEI9jy6Bi131YlXgI=
 github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
+github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
+github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
 github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
 github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
 github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40 h1:xvUo53O5MRZhVMJAxWCJcS5HHrqAiAG9SJ1LpMu6aAI=
@@ -188,14 +189,16 @@ github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZ
 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
 github.com/dubbogo/dubbo-go-pixiu-filter v0.1.4 h1:R7SZYqn+trTQNehpZIOy+ywG2UjkvjJ+FlcPdVjPzXE=
 github.com/dubbogo/dubbo-go-pixiu-filter v0.1.4/go.mod h1:d6SDK5BHl/QCvg84BN+g6LZS9QzVqnI2+yw0NBu0uac=
-github.com/dubbogo/go-zookeeper v1.0.3 h1:UkuY+rBsxdT7Bs63QAzp9z7XqQ53W1j8E5rwl83me8g=
 github.com/dubbogo/go-zookeeper v1.0.3/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c=
+github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5 h1:XoR8SSVziXe698dt4uZYDfsmHpKLemqAgFyndQsq5Kw=
+github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c=
 github.com/dubbogo/gost v1.9.0/go.mod h1:pPTjVyoJan3aPxBPNUX0ADkXjPibLo+/Ib0/fADXSG8=
 github.com/dubbogo/gost v1.11.11/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
 github.com/dubbogo/gost v1.11.12/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
 github.com/dubbogo/gost v1.11.18/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
-github.com/dubbogo/gost v1.11.20-0.20211116110728-26777ca61b4a h1:RLUCy1Rftro4EmUmqWQCdofwgo9mzPbrZ6d6xWgZNwo=
 github.com/dubbogo/gost v1.11.20-0.20211116110728-26777ca61b4a/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
+github.com/dubbogo/gost v1.11.22 h1:7g1CCzq5PlnB2JothjWjVCoZ7ZVtPbwR+ijaEGPtdRk=
+github.com/dubbogo/gost v1.11.22/go.mod h1:PhJ8+qZJx+Txjx1KthNPuVkCvUca0jRLgKWj/noGgeI=
 github.com/dubbogo/grpc-go v1.42.6-triple h1:NDTATpffyaAkwC+GBk3SDB45eeMTdvZhJKkkX4nIKHs=
 github.com/dubbogo/grpc-go v1.42.6-triple/go.mod h1:F1T9hnUvYGW4JLK1QNriavpOkhusU677ovPzLkk6zHM=
 github.com/dubbogo/jsonparser v1.0.1/go.mod h1:tYAtpctvSP/tWw4MeelsowSPgXQRVHHWbqL6ynps8jU=
diff --git a/pkg/adapter/dubboregistry/remoting/zookeeper/client.go b/pkg/adapter/dubboregistry/remoting/zookeeper/client.go
index f3e310f..5b2b7f2 100644
--- a/pkg/adapter/dubboregistry/remoting/zookeeper/client.go
+++ b/pkg/adapter/dubboregistry/remoting/zookeeper/client.go
@@ -68,7 +68,7 @@ type ZooKeeperClient struct {
 	exit         chan struct{}
 	Wait         sync.WaitGroup
 
-	eventRegistry     map[string][]*chan struct{}
+	eventRegistry     map[string][]chan zk.Event
 	eventRegistryLock sync.RWMutex
 }
 
@@ -84,7 +84,7 @@ func NewZooKeeperClient(name string, zkAddrs []string, timeout time.Duration) (*
 		ZkAddrs:       zkAddrs,
 		Timeout:       timeout,
 		exit:          make(chan struct{}),
-		eventRegistry: make(map[string][]*chan struct{}),
+		eventRegistry: make(map[string][]chan zk.Event),
 	}
 	// connect to zookeeper
 	z.conn, event, err = zk.Connect(zkAddrs, timeout)
@@ -95,7 +95,7 @@ func NewZooKeeperClient(name string, zkAddrs []string, timeout time.Duration) (*
 	return z, event, nil
 }
 
-// StateToString translate the state to string
+// StateToString will transfer zk state to string
 func StateToString(state zk.State) string {
 	switch state {
 	case zk.StateDisconnected:
@@ -113,13 +113,9 @@ func StateToString(state zk.State) string {
 	case zk.StateConnected:
 		return "zookeeper connected"
 	case zk.StateHasSession:
-		return "zookeeper has session"
+		return "zookeeper has Session"
 	case zk.StateUnknown:
 		return "zookeeper unknown state"
-	case zk.State(zk.EventNodeDeleted):
-		return "zookeeper node deleted"
-	case zk.State(zk.EventNodeDataChanged):
-		return "zookeeper node data changed"
 	default:
 		return state.String()
 	}
@@ -150,7 +146,7 @@ func (z *ZooKeeperClient) ExistW(zkPath string) (<-chan zk.Event, error) {
 func (z *ZooKeeperClient) HandleZkEvent(s <-chan zk.Event) {
 	var (
 		state int
-		e     zk.Event
+		event zk.Event
 	)
 
 	defer func() {
@@ -162,40 +158,40 @@ func (z *ZooKeeperClient) HandleZkEvent(s <-chan zk.Event) {
 		select {
 		case <-z.exit:
 			return
-		case e = <-s:
+		case event = <-s:
 			logger.Infof("client{%s} get a zookeeper event{type:%s, server:%s, path:%s, state:%d-%s, err:%v}",
-				z.name, e.Type, e.Server, e.Path, e.State, StateToString(e.State), e.Err)
-			switch (int)(e.State) {
-			case (int)(zk.StateDisconnected):
+				z.name, event.Type, event.Server, event.Path, event.State, StateToString(event.State), event.Err)
+			switch event.State {
+			case zk.StateDisconnected:
 				logger.Warnf("zk{addr:%s} state is StateDisconnected, so close the zk client{name:%s}.", z.ZkAddrs, z.name)
 				z.Destroy()
 				return
-			case (int)(zk.EventNodeDataChanged), (int)(zk.EventNodeChildrenChanged):
-				logger.Infof("zkClient{%s} get zk node changed event{path:%s}", z.name, e.Path)
+			case zk.StateConnected:
+				logger.Infof("zkClient{%s} get zk node changed event{path:%s}", z.name, event.Path)
 				z.eventRegistryLock.RLock()
-				for p, a := range z.eventRegistry {
-					if strings.HasPrefix(p, e.Path) {
+				for path, a := range z.eventRegistry {
+					if strings.HasPrefix(event.Path, path) {
 						logger.Infof("send event{state:zk.EventNodeDataChange, Path:%s} notify event to path{%s} related listener",
-							e.Path, p)
+							event.Path, path)
 						for _, e := range a {
-							*e <- struct{}{}
+							e <- event
 						}
 					}
 				}
 				z.eventRegistryLock.RUnlock()
-			case (int)(zk.StateConnecting), (int)(zk.StateConnected), (int)(zk.StateHasSession):
+			case zk.StateConnecting, zk.StateHasSession:
 				if state == (int)(zk.StateHasSession) {
 					continue
 				}
 				z.eventRegistryLock.RLock()
-				if a, ok := z.eventRegistry[e.Path]; ok && 0 < len(a) {
+				if a, ok := z.eventRegistry[event.Path]; ok && 0 < len(a) {
 					for _, e := range a {
-						*e <- struct{}{}
+						e <- event
 					}
 				}
 				z.eventRegistryLock.RUnlock()
 			}
-			state = (int)(e.State)
+			state = (int)(event.State)
 		}
 	}
 }