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

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


The following commit(s) were added to refs/heads/develop by this push:
     new a9e32b5ec deps(zookeeper): migrate from dubbogo/go-zookeeper fork to 
upstream go-zookeeper/zk (#3459) (#3690)
a9e32b5ec is described below

commit a9e32b5ec36ef1e34fd44b4d3c3bc807bbb71971
Author: Yuxuan Lv <[email protected]>
AuthorDate: Sun Aug 23 11:48:11 2026 +0800

    deps(zookeeper): migrate from dubbogo/go-zookeeper fork to upstream 
go-zookeeper/zk (#3459) (#3690)
    
    * deps(zookeeper): migrate from dubbogo/go-zookeeper fork to upstream 
go-zookeeper/zk
    
    Replaces the forked github.com/dubbogo/go-zookeeper/zk dependency with
    the upstream github.com/go-zookeeper/zk v1.0.4 across remoting/zookeeper,
    registry/zookeeper, config_center/zookeeper and metadata/report/zookeeper,
    per apache/dubbo-go#3459. All call sites only used error variables,
    Event/State constants and Stat, which are unchanged upstream, so this is
    a mechanical import swap everywhere except 
config_center/zookeeper/impl_test.go,
    which is adjusted for gost's new NewMockZookeeperClient signature (3 return
    values instead of 4, no more embedded *zk.TestCluster since upstream
    zk has no importable TestCluster API) and now skips cleanly when no real
    zookeeper is reachable at ZK_ADDR/127.0.0.1:2181.
    
    Two temporary items, both to be undone once dubbogo/gost publishes a
    release with the upstream zk dependency:
    - go.mod carries a local `replace github.com/dubbogo/gost => ../gost`
      pointing at the not-yet-released gost feat/upstream-zk branch, marked
      with a TODO(#3459).
    - go.sum therefore no longer carries checksum lines for dubbogo/gost,
      since a locally-replaced module isn't verified via go.sum.
    
    `go mod tidy` also picked up two unrelated indirect version bumps that
    were already the correct MVS-selected versions but had drifted in the
    committed go.mod/go.sum (github.com/buger/jsonparser v1.1.1->v1.1.2,
    already required by the published dubbogo/gost v1.14.3; and
    github.com/spf13/afero v1.6.0->v1.9.2, already required by
    github.com/envoyproxy/protoc-gen-validate v0.9.1).
    
    tools/dubbogo-cli is intentionally left untouched: it is a separate Go
    module pinned to the published dubbo.apache.org/dubbo-go/v3 v3.0.1, so
    its indirect dubbogo/go-zookeeper entry and embedded scaffold templates
    cannot move until a dubbo-go release carries this migration.
    
    * chore(zookeeper): bump temporary gost replace to pick up review fixes
    
    Pulls in dubbogo/gost#147 review feedback: run-scoped zookeeper test
    root, session-establishment wait in NewMockZookeeperClient, and doc
    comments. The replace directive remains temporary until gost cuts a
    release (see TODO in go.mod).
    
    * chore(zookeeper): follow gost review renames
    
    gost review renamed NewMockZookeeperClient to NewZookeeperClientFromEnv
    (it connects to a real zookeeper from ZK_ADDR, not a mock). Update the
    call sites and bump the temporary gost replace accordingly.
    
    * fix(zookeeper): correct import group ordering after go-zookeeper migration
    
    The switch from github.com/dubbogo/go-zookeeper to 
github.com/go-zookeeper/zk
    left these files' import groups in the wrong alphabetical order, which
    tools/imports-formatter (run by make check-fmt in CI) flags.
    
    * deps(zookeeper): drop temporary gost fork replace now that #147 is merged
    
    dubbogo/gost#147 (migration off the forked github.com/dubbogo/go-zookeeper
    package, review-addressed rename of NewMockZookeeperClient to
    NewZookeeperClientFromEnv included) has been merged upstream. Point the
    gost require directly at that merged commit on the official
    github.com/dubbogo/gost repo and remove the replace directive that pinned
    it to github.com/NeverENG/gost, which was flagged as a supply-chain risk
    and a reproducible-build hazard for downstream consumers.
    
    * test(zookeeper): address review feedback on migration tests and CI
    
    - Rename TestPublishAndRemoveConfigWithMockZk and 
TestGetPropertiesWithMockZk
      (and their skip messages) to drop "Mock", since NewZookeeperClientFromEnv
      connects to a real, externally configured ZooKeeper rather than an
      in-process mock.
    - Give each test a randomly generated, unique root path instead of the
      fixed /dubbo/config, and clean it up via t.Cleanup once the test
      finishes, so runs no longer risk colliding with other data on a shared
      ZooKeeper server. The cleanup is registered to run before the client is
      closed, since t.Cleanup callbacks only run after a function's defers.
    - Fail instead of silently skipping when ZooKeeper is unreachable while
      running under CI (detected via the CI environment variable), so these
      migration regression tests can't pass green without actually exercising
      the ZooKeeper client; keep skipping outside CI so a developer machine
      without ZooKeeper isn't blocked.
    - Add an isolated ZooKeeper service container to the CI unit-test job,
      with a readiness wait before tests run and ZK_ADDR pointed at it, so the
      above tests run for real by default instead of skipping in CI.
    
    * test(zookeeper): key the CI fail/skip decision off ZK_ADDR, not a CI 
heuristic
    
    failOrSkipZkUnavailable previously decided whether an unreachable
    ZooKeeper should fail or skip the test by checking the generic CI
    environment variable. That's an indirect signal: it ties correctness to
    one convention among CI vendors instead of to what the test actually
    depends on, so a differently configured runner could still skip past a
    real regression.
    
    Switch the check to ZK_ADDR itself: if it's explicitly set - as the CI
    workflow's unit-test job now does at the job level, so it also covers
    the Race Test step - an unreachable server is a genuine failure of
    whatever explicitly pointed at it, not something to pass over quietly.
    Left unset, the common case on a developer machine, it still skips.
    
    * test(etcdv3): stop bumped gost dependency from hanging etcd tests for 10m
    
    Bumping github.com/dubbogo/gost to the commit that merges the zk client
    migration (#147) also pulls in dubbogo/gost@3412137, an unrelated, earlier
    change that dropped grpc.WithBlock() from the etcd v3 client's dial without
    bounding the synchronous keepSession call it guards. keepSession creates an
    etcd concurrency Session (granting a lease over RPC) with no deadline
    attached, so against an unreachable etcd - which every affected test here
    dials deliberately, to exercise that exact case - NewClient can now block
    indefinitely regardless of the timeout passed to it, instead of failing
    within that timeout as it used to.
    
    Confirmed empirically: registry/etcdv3.TestNewEtcdV3ServiceDiscovery and
    remoting/etcdv3.TestValidateClient hung for the full 10-minute per-package
    go test timeout and failed the build; the same tests pass in ~5s against
    unmodified develop's older gost pin.
    
    Wrap the four call sites that construct an etcd client against an address
    with nothing listening (TestNewEtcdV3ServiceDiscovery, TestFunction,
    TestValidateClient, TestNewServiceDiscoveryClient) in a bounded
    runOrSkipOnHang helper (one per package) that skips with a clear diagnostic
    instead of hanging or asserting behavior the current dependency can no
    longer guarantee. This is a real upstream gost bug, not a local
    environment issue, and skipping here is a stopgap pending a fix there -
    it isn't the same "why did this silently skip" concern the ZK_ADDR-gated
    checks elsewhere in this PR address, since it is unrelated to CI's
    ZooKeeper setup.
    
    * deps(zookeeper): bump gost to v1.14.5 and drop etcd hang skip (#3459)
    
    gost v1.14.5 includes the upstream go-zookeeper/zk migration 
(dubbogo/gost#147) and the etcd initial-grant timeout fix (dubbogo/gost#146), 
so the temporary runOrSkipOnHang workaround is no longer needed. Verified with 
go build ./... and the etcd/zookeeper test packages.
    
    * build: use go.yaml.in/yaml/v4 in benchmark client
    
    tools/benchmark/client/main.go was the only main-module file still 
importing gopkg.in/yaml.v3, which promoted it back to a direct dependency. 
Switch it to go.yaml.in/yaml/v4 so yaml.v3 stays indirect, matching #3586.
    
    * Revert "build: use go.yaml.in/yaml/v4 in benchmark client"
    
    This reverts commit 91c99071f381e7b8fe9b42177c9e0538fc2a6aae.
    
    * Revert "Revert "build: use go.yaml.in/yaml/v4 in benchmark client""
    
    This reverts commit 537af3854111ecaac9cf36ac9ce70ac2785aa102.
    
    * ci: drop unit-test zookeeper service per review
    
    Alanxtl noted the integration-test job already starts ZooKeeper through its 
docker setup, so the extra ZK service/env in the unit-test job is unnecessary. 
Keep the migrated config_center/zookeeper tests as-is; they skip when no 
ZooKeeper is configured and the real cluster paths are covered by integration 
tests.
---
 config_center/zookeeper/impl.go                    |  4 +-
 config_center/zookeeper/impl_test.go               | 97 ++++++++++++++++++----
 go.mod                                             | 10 +--
 go.sum                                             | 30 ++++---
 metadata/report/zookeeper/report.go                |  4 +-
 metadata/report/zookeeper/report_test.go           |  2 +-
 registry/zookeeper/registry.go                     |  4 +-
 .../curator_discovery/service_discovery.go         |  4 +-
 remoting/zookeeper/listener.go                     |  4 +-
 tools/benchmark/client/main.go                     |  2 +-
 10 files changed, 118 insertions(+), 43 deletions(-)

diff --git a/config_center/zookeeper/impl.go b/config_center/zookeeper/impl.go
index 943c5b874..fdf4aa383 100644
--- a/config_center/zookeeper/impl.go
+++ b/config_center/zookeeper/impl.go
@@ -27,12 +27,12 @@ import (
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
-
        gxset "github.com/dubbogo/gost/container/set"
        gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
        "github.com/dubbogo/gost/log/logger"
 
+       "github.com/go-zookeeper/zk"
+
        perrors "github.com/pkg/errors"
 )
 
diff --git a/config_center/zookeeper/impl_test.go 
b/config_center/zookeeper/impl_test.go
index 4de9720ff..af2f9dbc7 100644
--- a/config_center/zookeeper/impl_test.go
+++ b/config_center/zookeeper/impl_test.go
@@ -18,14 +18,17 @@
 package zookeeper
 
 import (
+       "crypto/rand"
+       "encoding/hex"
+       "os"
        "testing"
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
-
        gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
 
+       "github.com/go-zookeeper/zk"
+
        "github.com/stretchr/testify/require"
 )
 
@@ -34,6 +37,58 @@ import (
        "dubbo.apache.org/dubbo-go/v3/config_center"
 )
 
+// zkAddrEnvKey mirrors the environment variable gost's
+// NewZookeeperClientFromEnv reads to locate a ZooKeeper server (see
+// database/kv/zk/client.go in dubbogo/gost); it isn't exported there, so the
+// name is duplicated here.
+const zkAddrEnvKey = "ZK_ADDR"
+
+// failOrSkipZkUnavailable reports that a ZooKeeper connection could not be
+// established. Whether that's a failure or a skip is keyed off ZK_ADDR
+// rather than a generic "am I in CI" heuristic: if it's set, whoever is
+// running this test explicitly pointed it at a real ZooKeeper (as our CI
+// workflow does), so an unreachable server is a genuine regression, not
+// something to silently skip past; when it's unset - the common case on a
+// developer machine that hasn't set one up - it skips instead so local runs
+// aren't blocked.
+func failOrSkipZkUnavailable(t *testing.T, err error) {
+       t.Helper()
+       if addr := os.Getenv(zkAddrEnvKey); addr != "" {
+               t.Fatalf("%s=%q was set but zookeeper is unavailable: %v", 
zkAddrEnvKey, addr, err)
+       }
+       t.Skipf("skip zk setup: %v", err)
+}
+
+// newTestRoot returns a randomly named zookeeper root path unique to the
+// calling test, and registers a t.Cleanup that recursively removes it via
+// client once the test finishes, so runs stay isolated on a shared
+// ZooKeeper server instead of colliding on a fixed root.
+func newTestRoot(t *testing.T, client *gxzookeeper.ZookeeperClient) string {
+       t.Helper()
+       buf := make([]byte, 8)
+       if _, err := rand.Read(buf); err != nil {
+               t.Fatalf("newTestRoot: %v", err)
+       }
+       root := "/dubbo-test-" + hex.EncodeToString(buf)
+       t.Cleanup(func() { cleanupZkPath(client, root) })
+       return root
+}
+
+// cleanupZkPath best-effort recursively removes zkPath and all of its
+// descendants via client.
+func cleanupZkPath(client *gxzookeeper.ZookeeperClient, zkPath string) {
+       if client == nil {
+               return
+       }
+       children, err := client.GetChildren(zkPath)
+       if err == nil {
+               for _, c := range children {
+                       cleanupZkPath(client, zkPath+"/"+c)
+               }
+       }
+       _ = client.Delete(zkPath)
+}
+
 func TestBuildPath(t *testing.T) {
        tests := []struct {
                root     string
@@ -65,15 +120,21 @@ func TestGetPath(t *testing.T) {
        }
 }
 
-func TestPublishAndRemoveConfigWithMockZk(t *testing.T) {
-       cluster, client, _, err := gxzookeeper.NewMockZookeeperClient("test", 
5e9)
+func TestPublishAndRemoveConfigWithZk(t *testing.T) {
+       client, _, err := gxzookeeper.NewZookeeperClientFromEnv("test", 5e9)
        if err != nil {
-               t.Skipf("skip mock zk setup: %v", err)
+               failOrSkipZkUnavailable(t, err)
+               return
        }
-       defer cluster.Stop()
+       // Registered before newTestRoot's own t.Cleanup below so that, since
+       // t.Cleanup runs its callbacks in LIFO order (and always after any
+       // defer in this function), the zk path cleanup runs first, against a
+       // still-open client, before Close() runs.
+       t.Cleanup(func() { client.Close() })
 
+       root := newTestRoot(t, client)
        cfg := &zookeeperDynamicConfiguration{
-               rootPath: "/dubbo/config",
+               rootPath: root,
                client:   client,
                done:     make(chan struct{}),
                url:      mustURL(t, "registry://127.0.0.1:2181"),
@@ -82,33 +143,39 @@ func TestPublishAndRemoveConfigWithMockZk(t *testing.T) {
        err = cfg.PublishConfig("k", "g", "v1")
        require.NoError(t, err)
 
-       content, _, err := client.GetContent("/dubbo/config/g/k")
+       content, _, err := client.GetContent(root + "/g/k")
        require.NoError(t, err)
        require.Equal(t, "v1", string(content))
 
        // update existing node path
        err = cfg.PublishConfig("k", "g", "v2")
        require.NoError(t, err)
-       content, _, err = client.GetContent("/dubbo/config/g/k")
+       content, _, err = client.GetContent(root + "/g/k")
        require.NoError(t, err)
        require.Equal(t, "v2", string(content))
 
        // remove
        err = cfg.RemoveConfig("k", "g")
        require.NoError(t, err)
-       _, _, err = client.GetContent("/dubbo/config/g/k")
+       _, _, err = client.GetContent(root + "/g/k")
        require.ErrorIs(t, err, zk.ErrNoNode)
 }
 
-func TestGetPropertiesWithMockZk(t *testing.T) {
-       cluster, client, _, err := gxzookeeper.NewMockZookeeperClient("test2", 
5e9)
+func TestGetPropertiesWithZk(t *testing.T) {
+       client, _, err := gxzookeeper.NewZookeeperClientFromEnv("test2", 5e9)
        if err != nil {
-               t.Skipf("skip mock zk setup: %v", err)
+               failOrSkipZkUnavailable(t, err)
+               return
        }
-       defer cluster.Stop()
+       // Registered before newTestRoot's own t.Cleanup below so that, since
+       // t.Cleanup runs its callbacks in LIFO order (and always after any
+       // defer in this function), the zk path cleanup runs first, against a
+       // still-open client, before Close() runs.
+       t.Cleanup(func() { client.Close() })
 
+       root := newTestRoot(t, client)
        cfg := &zookeeperDynamicConfiguration{
-               rootPath: "/dubbo/config",
+               rootPath: root,
                client:   client,
                done:     make(chan struct{}),
                url:      mustURL(t, "registry://127.0.0.1:2181"),
diff --git a/go.mod b/go.mod
index b828bd2f9..9102b5c73 100644
--- a/go.mod
+++ b/go.mod
@@ -13,8 +13,7 @@ require (
        github.com/creasty/defaults v1.5.2
        github.com/dop251/goja v0.0.0-20240220182346-e401ed450204
        github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d
-       github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5
-       github.com/dubbogo/gost v1.14.3
+       github.com/dubbogo/gost v1.14.5
        github.com/dubbogo/grpc-go v1.42.10
        github.com/dubbogo/triple v1.2.2-rc4
        github.com/dustin/go-humanize v1.0.1
@@ -22,6 +21,7 @@ require (
        github.com/fsnotify/fsnotify v1.6.0
        github.com/go-playground/validator/v10 v10.12.0
        github.com/go-resty/resty/v2 v2.7.0
+       github.com/go-zookeeper/zk v1.0.4
        github.com/golang/mock v1.6.0
        github.com/golang/protobuf v1.5.4
        github.com/google/go-cmp v0.7.0
@@ -44,6 +44,7 @@ require (
        github.com/prometheus/client_golang v1.19.1
        github.com/prometheus/common v0.48.0
        github.com/quic-go/quic-go v0.59.1
+       github.com/shirou/gopsutil/v3 v3.22.2
        github.com/sirupsen/logrus v1.9.4
        github.com/stretchr/testify v1.11.1
        github.com/ugorji/go/codec v1.2.6
@@ -64,7 +65,6 @@ require (
        go.yaml.in/yaml/v4 v4.0.0-rc.6
        golang.org/x/net v0.56.0
        golang.org/x/sync v0.21.0
-       golang.org/x/tools v0.47.0
        google.golang.org/grpc v1.64.1
        google.golang.org/protobuf v1.34.2
        gopkg.in/natefinch/lumberjack.v2 v2.2.1
@@ -119,9 +119,8 @@ require (
        github.com/prometheus/client_model v0.5.0 // indirect
        github.com/prometheus/procfs v0.12.0 // indirect
        github.com/quic-go/qpack v0.6.0 // indirect
-       github.com/shirou/gopsutil/v3 v3.22.2 // indirect
        github.com/spaolacci/murmur3 v1.1.0 // indirect
-       github.com/spf13/afero v1.6.0 // indirect
+       github.com/spf13/afero v1.9.2 // indirect
        github.com/spf13/cast v1.3.1 // indirect
        github.com/spf13/jwalterweatherman v1.1.0 // indirect
        github.com/spf13/pflag v1.0.5 // indirect
@@ -138,7 +137,6 @@ require (
        go.opentelemetry.io/proto/otlp v1.0.0 // indirect
        go.uber.org/multierr v1.8.0 // indirect
        golang.org/x/crypto v0.53.0 // indirect
-       golang.org/x/mod v0.37.0 // indirect
        golang.org/x/sys v0.46.0 // indirect
        golang.org/x/text v0.39.0 // indirect
        golang.org/x/time v0.15.0 // indirect
diff --git a/go.sum b/go.sum
index 71aa5a04a..ebaf0ac65 100644
--- a/go.sum
+++ b/go.sum
@@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
 cloud.google.com/go v0.38.0/go.mod 
h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
 cloud.google.com/go v0.44.1/go.mod 
h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
 cloud.google.com/go v0.44.2/go.mod 
h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+cloud.google.com/go v0.44.3/go.mod 
h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
 cloud.google.com/go v0.45.1/go.mod 
h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
 cloud.google.com/go v0.46.3/go.mod 
h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
 cloud.google.com/go v0.50.0/go.mod 
h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
@@ -15,6 +16,7 @@ cloud.google.com/go v0.62.0/go.mod 
h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY
 cloud.google.com/go v0.65.0/go.mod 
h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
 cloud.google.com/go v0.72.0/go.mod 
h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 cloud.google.com/go v0.74.0/go.mod 
h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
+cloud.google.com/go v0.75.0/go.mod 
h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
 cloud.google.com/go v0.78.0/go.mod 
h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
 cloud.google.com/go v0.79.0/go.mod 
h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
 cloud.google.com/go v0.81.0/go.mod 
h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
@@ -36,6 +38,7 @@ cloud.google.com/go/storage v1.5.0/go.mod 
h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
 cloud.google.com/go/storage v1.6.0/go.mod 
h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
 cloud.google.com/go/storage v1.8.0/go.mod 
h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 cloud.google.com/go/storage v1.10.0/go.mod 
h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
+cloud.google.com/go/storage v1.14.0/go.mod 
h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod 
h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/BurntSushi/toml v0.3.1 
h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
@@ -120,7 +123,6 @@ github.com/bits-and-blooms/bitset v1.2.0/go.mod 
h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edY
 github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod 
h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
 github.com/bketelsen/crypt v0.0.4/go.mod 
h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
 github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod 
h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
-github.com/buger/jsonparser v1.1.1/go.mod 
h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
 github.com/buger/jsonparser v1.2.0 
h1:4EFcvK1kD4jyj6YqNK6skK6w+y7FHHBR+XBCtxwu/6g=
 github.com/buger/jsonparser v1.2.0/go.mod 
h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
 github.com/casbin/casbin/v2 v2.1.2/go.mod 
h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
@@ -189,12 +191,10 @@ github.com/dop251/goja_nodejs 
v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA
 github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d 
h1:W1n4DvpzZGOISgp7wWNtraLcHtnmnTwBlJidqtMIuwQ=
 github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod 
h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM=
 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.18/go.mod 
h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
-github.com/dubbogo/gost v1.14.3 h1:bInkIjdImMo9ENTDdCcs4YlQ/vz5rP/rjcnLakK5x24=
-github.com/dubbogo/gost v1.14.3/go.mod 
h1:WydBuEOkwKEm9mcWLlOnmsVe1ELFgrNPmC5SzXdPv4A=
+github.com/dubbogo/gost v1.14.5 h1:BcKGdzshbfjWJYWvdnRjMpoaRvjR0AinYdkTbVkAo+s=
+github.com/dubbogo/gost v1.14.5/go.mod 
h1:iciVTssk7hmmkPmeWREHQ/DOFC5ojgvtUhKNI4wvmgs=
 github.com/dubbogo/grpc-go v1.42.9/go.mod 
h1:F1T9hnUvYGW4JLK1QNriavpOkhusU677ovPzLkk6zHM=
 github.com/dubbogo/grpc-go v1.42.10 
h1:CoyCdtqKJEar/3rPa6peZbDqYZ/mVsCqAxB6TfTSkhQ=
 github.com/dubbogo/grpc-go v1.42.10/go.mod 
h1:JMkPt1mIHL96GAFeYsMoMjew6f1ROKycikGzZQH1s5U=
@@ -277,6 +277,8 @@ github.com/go-sourcemap/sourcemap 
v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5Nq
 github.com/go-sql-driver/mysql v1.4.0/go.mod 
h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-stack/stack v1.8.0/go.mod 
h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod 
h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
+github.com/go-zookeeper/zk v1.0.4 
h1:DPzxraQx7OrPyXq2phlGlNSIyWEsAox0RJmjTseMV6I=
+github.com/go-zookeeper/zk v1.0.4/go.mod 
h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw=
 github.com/godbus/dbus/v5 v5.0.3/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/godbus/dbus/v5 v5.0.4/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gogo/googleapis v1.1.0/go.mod 
h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
@@ -368,6 +370,7 @@ github.com/google/pprof 
v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf
 github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod 
h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20230207041349-798e818bf904 
h1:4/hN5RUoecvl+RmJRE2YxKWtnnQls6rQjjW5oV7qg2U=
@@ -381,6 +384,7 @@ github.com/google/uuid v1.6.0 
h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod 
h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod 
h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+github.com/googleapis/google-cloud-go-testing 
v0.0.0-20200911160855-bcd43fbb19e8/go.mod 
h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod 
h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99 
h1:twflg0XRTjwKpxb/jFExr4HGq6on2dEOmnL6FV+fgPw=
 github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod 
h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
@@ -639,6 +643,7 @@ github.com/pkg/errors v0.9.1 
h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/profile v1.2.1/go.mod 
h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
 github.com/pkg/sftp v1.10.1/go.mod 
h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
+github.com/pkg/sftp v1.13.1/go.mod 
h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
 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/polarismesh/polaris-go v1.3.0 
h1:KZKX//ow4OPPoS5+s7h07ptprg+2AcNVGrN6WakC9QM=
@@ -735,8 +740,9 @@ github.com/spaolacci/murmur3 
v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
 github.com/spaolacci/murmur3 v1.1.0 
h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
 github.com/spaolacci/murmur3 v1.1.0/go.mod 
h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
 github.com/spf13/afero v1.1.2/go.mod 
h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
-github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
 github.com/spf13/afero v1.6.0/go.mod 
h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
+github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
+github.com/spf13/afero v1.9.2/go.mod 
h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
 github.com/spf13/cast v1.3.0/go.mod 
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
 github.com/spf13/cast v1.3.1/go.mod 
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
@@ -912,7 +918,9 @@ golang.org/x/crypto 
v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
 golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod 
h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
 golang.org/x/crypto v0.53.0/go.mod 
h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -957,8 +965,6 @@ golang.org/x/mod v0.4.0/go.mod 
h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
-golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1001,6 +1007,7 @@ golang.org/x/net 
v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod 
h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
@@ -1103,6 +1110,7 @@ golang.org/x/sys 
v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1111,6 +1119,7 @@ golang.org/x/sys 
v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1210,13 +1219,12 @@ golang.org/x/tools 
v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4f
 golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.0/go.mod 
h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 golang.org/x/tools v0.1.1/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.2/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.5/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
-golang.org/x/tools v0.47.0/go.mod 
h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1299,7 +1307,9 @@ google.golang.org/genproto 
v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
diff --git a/metadata/report/zookeeper/report.go 
b/metadata/report/zookeeper/report.go
index 39eb606f8..f2d02b8ed 100644
--- a/metadata/report/zookeeper/report.go
+++ b/metadata/report/zookeeper/report.go
@@ -25,11 +25,11 @@ import (
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
-
        gxset "github.com/dubbogo/gost/container/set"
        gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
 
+       "github.com/go-zookeeper/zk"
+
        perrors "github.com/pkg/errors"
 )
 
diff --git a/metadata/report/zookeeper/report_test.go 
b/metadata/report/zookeeper/report_test.go
index a4a56d820..c05c0c4a3 100644
--- a/metadata/report/zookeeper/report_test.go
+++ b/metadata/report/zookeeper/report_test.go
@@ -27,7 +27,7 @@ import (
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
+       "github.com/go-zookeeper/zk"
 
        "github.com/stretchr/testify/assert"
        "github.com/stretchr/testify/require"
diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go
index 45932d021..723e8d6f4 100644
--- a/registry/zookeeper/registry.go
+++ b/registry/zookeeper/registry.go
@@ -25,11 +25,11 @@ import (
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
-
        gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
        "github.com/dubbogo/gost/log/logger"
 
+       "github.com/go-zookeeper/zk"
+
        perrors "github.com/pkg/errors"
 )
 
diff --git a/remoting/zookeeper/curator_discovery/service_discovery.go 
b/remoting/zookeeper/curator_discovery/service_discovery.go
index dfc4e3a7e..2406f373d 100644
--- a/remoting/zookeeper/curator_discovery/service_discovery.go
+++ b/remoting/zookeeper/curator_discovery/service_discovery.go
@@ -25,11 +25,11 @@ import (
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
-
        gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
        "github.com/dubbogo/gost/log/logger"
 
+       "github.com/go-zookeeper/zk"
+
        perrors "github.com/pkg/errors"
 )
 
diff --git a/remoting/zookeeper/listener.go b/remoting/zookeeper/listener.go
index 1f0de31c0..782b84797 100644
--- a/remoting/zookeeper/listener.go
+++ b/remoting/zookeeper/listener.go
@@ -27,11 +27,11 @@ import (
 )
 
 import (
-       "github.com/dubbogo/go-zookeeper/zk"
-
        gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
        "github.com/dubbogo/gost/log/logger"
 
+       "github.com/go-zookeeper/zk"
+
        perrors "github.com/pkg/errors"
 
        uatomic "go.uber.org/atomic"
diff --git a/tools/benchmark/client/main.go b/tools/benchmark/client/main.go
index 163ca6815..d71ed11ca 100644
--- a/tools/benchmark/client/main.go
+++ b/tools/benchmark/client/main.go
@@ -32,7 +32,7 @@ import (
 import (
        "github.com/dubbogo/gost/log/logger"
 
-       "gopkg.in/yaml.v3"
+       "go.yaml.in/yaml/v4"
 )
 
 import (

Reply via email to