diff --git a/1-basic/dubbo-samples-annotation/pom.xml b/1-basic/dubbo-samples-annotation/pom.xml
index 531f432..6cd3e1d 100644
--- a/1-basic/dubbo-samples-annotation/pom.xml
+++ b/1-basic/dubbo-samples-annotation/pom.xml
@@ -33,10 +33,11 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
+        <zookeeper_version>3.8.0</zookeeper_version>
     </properties>
 
     <dependencyManagement>
@@ -61,6 +62,13 @@
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -88,6 +96,40 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
     </dependencies>
 
     <profiles>
diff --git a/1-basic/dubbo-samples-api/pom.xml b/1-basic/dubbo-samples-api/pom.xml
index 68cbba6..52fe0a9 100644
--- a/1-basic/dubbo-samples-api/pom.xml
+++ b/1-basic/dubbo-samples-api/pom.xml
@@ -36,7 +36,7 @@
     <description>Dubbo Samples Api</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit5.version>5.9.2</junit5.version>
     </properties>
 
diff --git a/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-consumer/pom.xml b/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-consumer/pom.xml
index 6d1a50c..6da5716 100644
--- a/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-consumer/pom.xml
+++ b/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-consumer/pom.xml
@@ -40,7 +40,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/1-basic/dubbo-samples-spring-boot/pom.xml b/1-basic/dubbo-samples-spring-boot/pom.xml
index 6d4934a..326c571 100644
--- a/1-basic/dubbo-samples-spring-boot/pom.xml
+++ b/1-basic/dubbo-samples-spring-boot/pom.xml
@@ -37,7 +37,7 @@
     <description>Dubbo Samples Spring Boot</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/1-basic/dubbo-samples-spring-xml/pom.xml b/1-basic/dubbo-samples-spring-xml/pom.xml
index ba133ec..f489b96 100644
--- a/1-basic/dubbo-samples-spring-xml/pom.xml
+++ b/1-basic/dubbo-samples-spring-xml/pom.xml
@@ -37,7 +37,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>5.3.25</spring.version>
         <junit.version>4.13.1</junit.version>
     </properties>
diff --git a/10-task/dubbo-samples-develop/dubbo-samples-develop-consumer/pom.xml b/10-task/dubbo-samples-develop/dubbo-samples-develop-consumer/pom.xml
index 4307fb9..ec63ca8 100644
--- a/10-task/dubbo-samples-develop/dubbo-samples-develop-consumer/pom.xml
+++ b/10-task/dubbo-samples-develop/dubbo-samples-develop-consumer/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -73,4 +73,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-develop/dubbo-samples-develop-provider/pom.xml b/10-task/dubbo-samples-develop/dubbo-samples-develop-provider/pom.xml
index 611fed0..8f80247 100644
--- a/10-task/dubbo-samples-develop/dubbo-samples-develop-provider/pom.xml
+++ b/10-task/dubbo-samples-develop/dubbo-samples-develop-provider/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -73,4 +73,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-consumer/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-consumer/pom.xml
index f307fd2..f1c1eff 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-consumer/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-consumer/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -105,4 +105,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-provider/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-provider/pom.xml
index d8a918e..7669af7 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-provider/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-filter-provider/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -104,4 +104,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-common/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-common/pom.xml
index bcaa652..9cdfab5 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-common/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-common/pom.xml
@@ -34,7 +34,7 @@
     <description>Dubbo Extensibility Protocol Task - Common</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
     </properties>
 
     <dependencies>
@@ -46,4 +46,4 @@
         </dependency>
 
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-consumer/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-consumer/pom.xml
index 78a8243..d96c254 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-consumer/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-consumer/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -111,4 +111,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-provider/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-provider/pom.xml
index e62d15c..f440b65 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-provider/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-protocol-provider/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -111,4 +111,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-consumer/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-consumer/pom.xml
index 061bcfd..50c7295 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-consumer/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-consumer/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -105,4 +105,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-provider/pom.xml b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-provider/pom.xml
index 7480085..d6ee5bc 100644
--- a/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-provider/pom.xml
+++ b/10-task/dubbo-samples-extensibility/dubbo-samples-extensibility-router-provider/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -104,4 +104,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/deploy/All.yml b/10-task/dubbo-samples-metrics-demo/deploy/All.yml
new file mode 100644
index 0000000..ca0f075
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/deploy/All.yml
@@ -0,0 +1,626 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Namespace
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: dubbo-shop
+
+---
+
+# Nacos
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: nacos
+  namespace: dubbo-system
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: nacos
+  template:
+    metadata:
+      labels:
+        app: nacos
+    spec:
+      containers:
+        - name: consumer
+          image: nacos/nacos-server:v2.2.0
+          imagePullPolicy: Always
+          resources:
+            requests:
+              memory: "2Gi"
+              cpu: "500m"
+          ports:
+            - containerPort: 8848
+              name: client
+            - containerPort: 9848
+              name: client-rpc
+          env:
+            - name: NACOS_SERVER_PORT
+              value: "8848"
+            - name: NACOS_APPLICATION_PORT
+              value: "8848"
+            - name: PREFER_HOST_MODE
+              value: "hostname"
+            - name: MODE
+              value: "standalone"
+            - name: NACOS_AUTH_ENABLE
+              value: "true"
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: nacos
+  namespace: dubbo-system
+spec:
+  type: ClusterIP
+  sessionAffinity: None
+  selector:
+    app: nacos
+  ports:
+    - port: 8848
+      name: server
+      targetPort: 8848
+    - port: 9848
+      name: client-rpc
+      targetPort: 9848
+---
+
+# App FrontEnd
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-frontend
+  namespace: dubbo-shop
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: shop-frontend
+  template:
+    metadata:
+      labels:
+        app: shop-frontend
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-frontend
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-frontend_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20881
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20991
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-frontend
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+# App Order V1-1
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-order-v1
+  namespace: dubbo-shop
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: shop-order
+      orderVersion: v1
+  template:
+    metadata:
+      labels:
+        app: shop-order
+        orderVersion: v1
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-order
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-order_v1_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20882
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20992
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-order
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+            - name: DUBBO_LABELS
+              value: "orderVersion=v1"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+# App Order V2
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-order-v2
+  namespace: dubbo-shop
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: shop-order
+      orderVersion: v2
+  template:
+    metadata:
+      labels:
+        app: shop-order
+        orderVersion: v2
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-order
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-order_v2_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20883
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20993
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-order
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+            - name: DUBBO_LABELS
+              value: "orderVersion=v2;"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+# App User
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-user
+  namespace: dubbo-shop
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: shop-user
+  template:
+    metadata:
+      labels:
+        app: shop-user
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-user
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-user_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20884
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20994
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-user
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+# App Detail-1
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-detail-v1
+  namespace: dubbo-shop
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: shop-detail
+      detailVersion: v1
+  template:
+    metadata:
+      labels:
+        app: shop-detail
+        detailVersion: v1
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-detail
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-detail_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20885
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20995
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-detail
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+            - name: DUBBO_LABELS
+              value: "detailVersion=v1; region=beijing"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+# App Detail-2
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-detail-v2
+  namespace: dubbo-shop
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: shop-detail
+      detailVersion: v2
+  template:
+    metadata:
+      labels:
+        app: shop-detail
+        detailVersion: v2
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-detail
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-detail_v2_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20886
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20996
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-detail
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+            - name: DUBBO_LABELS
+              value: "detailVersion=v2; region=hangzhou;"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+#App Comment v1
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-comment-v1
+  namespace: dubbo-shop
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: shop-comment
+      commentVersion: v1
+  template:
+    metadata:
+      labels:
+        app: shop-comment
+        commentVersion: v1
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-comment
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-comment_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20887
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20997
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-comment
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+            - name: DUBBO_LABELS
+              value: "commentVersion=v1; region=beijing"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+---
+
+#App Comment v2
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: shop-comment-v2
+  namespace: dubbo-shop
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: shop-comment
+      commentVersion: v2
+  template:
+    metadata:
+      labels:
+        app: shop-comment
+        commentVersion: v2
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/path: /metrics
+        prometheus.io/port: "22222"
+    spec:
+      volumes:
+        - name: skywalking-agent
+          emptyDir: { }
+
+      initContainers:
+        - name: agent-container
+          image: apache/skywalking-java-agent:8.13.0-java17
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /agent
+          command: [ "/bin/sh" ]
+          args: [ "-c", "cp -R /skywalking/agent /agent/" ]
+
+      containers:
+        - name: shop-comment
+          image: albumen/dubbo-demo:dubbo-samples-metrics-demo-comment_v2_0.0.1
+          imagePullPolicy: Always
+          ports:
+            - name: dubbo
+              containerPort: 20888
+              protocol: TCP
+            - name: dubbo-qos
+              containerPort: 20998
+              protocol: TCP
+          volumeMounts:
+            - name: skywalking-agent
+              mountPath: /skywalking
+          env:
+            - name: JAVA_TOOL_OPTIONS
+              value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
+            - name: SW_AGENT_NAME
+              value: shop::shop-comment
+            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
+              value: "skywalking-oap.dubbo-system.svc:11800"
+            - name: DUBBO_LABELS
+              value: "commentVersion=v2; region=hangzhou;"
+          startupProbe:
+            httpGet:
+              port: 22222
+              path: /startup
+            initialDelaySeconds: 10
+            periodSeconds: 1
+            timeoutSeconds: 1
+            failureThreshold: 300
+            successThreshold: 1
+
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-api/pom.xml
similarity index 69%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-api/pom.xml
index 90b1068..31efba2 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-api/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -18,19 +19,18 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+        <relativePath/>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-comment-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
 
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.deploy.skip>true</maven.deploy.skip>
-    </properties>
+    <name>Dubbo Task - Metrics Demo - Comment's API</name>
+    <description>Dubbo Task - Metrics Demo - Comment's API</description>
 
 </project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-api/src/main/java/org/apache/dubbo/samples/CommentService.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-api/src/main/java/org/apache/dubbo/samples/CommentService.java
new file mode 100644
index 0000000..f44dd39
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-api/src/main/java/org/apache/dubbo/samples/CommentService.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+public interface CommentService {
+    String getComment(String itemName);
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/pom.xml
new file mode 100644
index 0000000..e799f08
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/pom.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-comment-v1</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - Comment V1</name>
+    <description>Dubbo Task - Metrics Demo - Comment Version1</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- comment api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-comment-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-comment_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20887</port>
+                            <port>20997</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/java/org/apache/dubbo/samples/comment/CommentApplication.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/java/org/apache/dubbo/samples/comment/CommentApplication.java
new file mode 100644
index 0000000..d296b27
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/java/org/apache/dubbo/samples/comment/CommentApplication.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.comment;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class CommentApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(CommentApplication.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/java/org/apache/dubbo/samples/comment/CommentServiceImpl.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/java/org/apache/dubbo/samples/comment/CommentServiceImpl.java
new file mode 100644
index 0000000..f051e33
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/java/org/apache/dubbo/samples/comment/CommentServiceImpl.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.comment;
+
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.CommentService;
+
+@DubboService
+public class CommentServiceImpl implements CommentService {
+    @Override
+    public String getComment(String itemName) {
+        return "Comment from v1.";
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/resources/application.properties
new file mode 100644
index 0000000..84966ef
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v1/src/main/resources/application.properties
@@ -0,0 +1,35 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# Specify the application name of Dubbo
+dubbo.application.name=shop-comment
+spring.application.name=shop-comment
+# Enable token verification for each invocation
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20887
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/pom.xml
new file mode 100644
index 0000000..09061e1
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/pom.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-comment-v2</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - Comment V2</name>
+    <description>Dubbo Task - Metrics Demo - Comment Version2</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- comment api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-comment-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-comment_v2_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20888</port>
+                            <port>20998</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/java/org/apache/dubbo/samples/comment/CommentApplication2.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/java/org/apache/dubbo/samples/comment/CommentApplication2.java
new file mode 100644
index 0000000..3e59bf5
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/java/org/apache/dubbo/samples/comment/CommentApplication2.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.comment;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class CommentApplication2 {
+
+    public static void main(String[] args) {
+        SpringApplication.run(CommentApplication2.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/java/org/apache/dubbo/samples/comment/CommentServiceImpl2.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/java/org/apache/dubbo/samples/comment/CommentServiceImpl2.java
new file mode 100644
index 0000000..cd4b673
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/java/org/apache/dubbo/samples/comment/CommentServiceImpl2.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.comment;
+
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.CommentService;
+
+@DubboService
+public class CommentServiceImpl2 implements CommentService {
+    @Override
+    public String getComment(String itemName) {
+        return "Comment from v2.";
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/resources/application.properties
new file mode 100644
index 0000000..2bbc3a9
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-comment-v2/src/main/resources/application.properties
@@ -0,0 +1,35 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# Specify the application name of Dubbo
+dubbo.application.name=shop-comment
+spring.application.name=shop-comment
+# Enable token verification for each invocation
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20888
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/pom.xml
similarity index 69%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/pom.xml
index 90b1068..353ed05 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -18,19 +19,18 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+        <relativePath/>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-detail-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
 
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.deploy.skip>true</maven.deploy.skip>
-    </properties>
+    <name>Dubbo Task - Metrics Demo - Detail's API</name>
+    <description>Dubbo Task - Metrics Demo - Detail's API</description>
 
 </project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/src/main/java/org/apache/dubbo/samples/DetailService.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/src/main/java/org/apache/dubbo/samples/DetailService.java
new file mode 100644
index 0000000..0c8b369
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/src/main/java/org/apache/dubbo/samples/DetailService.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+public interface DetailService {
+
+    Item getItem(long sku, String username);
+
+    boolean deductStock(long sku, int count);
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/src/main/java/org/apache/dubbo/samples/Item.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/src/main/java/org/apache/dubbo/samples/Item.java
new file mode 100644
index 0000000..e7eb337
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-api/src/main/java/org/apache/dubbo/samples/Item.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+import java.io.Serializable;
+
+public class Item implements Serializable {
+    private long sku;
+    private String itemName;
+    private String description;
+    private int stock;
+    private long price;
+    private String comment;
+
+    public long getSku() {
+        return sku;
+    }
+
+    public void setSku(long sku) {
+        this.sku = sku;
+    }
+
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public int getStock() {
+        return stock;
+    }
+
+    public void setStock(int stock) {
+        this.stock = stock;
+    }
+
+    public long getPrice() {
+        return price;
+    }
+
+    public void setPrice(long price) {
+        this.price = price;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/pom.xml
new file mode 100644
index 0000000..4ae1c21
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/pom.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-detail-v1</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - Detail V1</name>
+    <description>Dubbo Task - Metrics Demo - Detail Version1</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- common api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-detail-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-comment-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-detail_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20885</port>
+                            <port>20995</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/java/org/apache/dubbo/samples/detail/DetailApplication.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/java/org/apache/dubbo/samples/detail/DetailApplication.java
new file mode 100644
index 0000000..c9fccda
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/java/org/apache/dubbo/samples/detail/DetailApplication.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.detail;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class DetailApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(DetailApplication.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/java/org/apache/dubbo/samples/detail/DetailServiceImpl.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/java/org/apache/dubbo/samples/detail/DetailServiceImpl.java
new file mode 100644
index 0000000..7325138
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/java/org/apache/dubbo/samples/detail/DetailServiceImpl.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.detail;
+
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.CommentService;
+import org.apache.dubbo.samples.DetailService;
+import org.apache.dubbo.samples.Item;
+
+import java.util.concurrent.ThreadLocalRandom;
+
+@DubboService
+public class DetailServiceImpl implements DetailService {
+
+    @DubboReference(check = false)
+    private CommentService commentService;
+
+    @Override
+    public Item getItem(long sku, String username) {
+        return getItem(sku);
+    }
+
+    @Override
+    public boolean deductStock(long sku, int count) {
+        try {
+            // Do something that consumes resources
+            for (int i = 0; i < 500; i++) {
+                Math.pow(ThreadLocalRandom.current().nextDouble(10), ThreadLocalRandom.current().nextDouble(5));
+            }
+            Thread.sleep(ThreadLocalRandom.current().nextInt(50));
+        } catch (InterruptedException ignore) {
+            Thread.currentThread().interrupt();
+        }
+        return true;
+    }
+
+    private Item getItem(long sku) {
+        Item item = new Item();
+        item.setSku(sku);
+        item.setItemName("itemName");
+        item.setDescription("item from detail v1");
+        item.setStock(100);
+        item.setPrice(100);
+        item.setComment(commentService.getComment("itemName"));
+        return item;
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/resources/application.properties
new file mode 100644
index 0000000..769f6bb
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v1/src/main/resources/application.properties
@@ -0,0 +1,35 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# Specify the application name of Dubbo
+dubbo.application.name=shop-detail
+spring.application.name=shop-detail
+# Enable token verification for each invocation
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20885
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/pom.xml
new file mode 100644
index 0000000..7283b74
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/pom.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-detail-v2</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - Detail V2</name>
+    <description>Dubbo Task - Metrics Demo - Detail Version2</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- common api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-detail-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-comment-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-detail_v2_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20886</port>
+                            <port>20996</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/java/org/apache/dubbo/samples/detail/DetailApplication2.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/java/org/apache/dubbo/samples/detail/DetailApplication2.java
new file mode 100644
index 0000000..a9831e6
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/java/org/apache/dubbo/samples/detail/DetailApplication2.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.detail;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class DetailApplication2 {
+
+    public static void main(String[] args) {
+        SpringApplication.run(DetailApplication2.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/java/org/apache/dubbo/samples/detail/DetailServiceImpl2.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/java/org/apache/dubbo/samples/detail/DetailServiceImpl2.java
new file mode 100644
index 0000000..08d6196
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/java/org/apache/dubbo/samples/detail/DetailServiceImpl2.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.detail;
+
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.CommentService;
+import org.apache.dubbo.samples.DetailService;
+import org.apache.dubbo.samples.Item;
+
+import java.util.concurrent.ThreadLocalRandom;
+
+@DubboService
+public class DetailServiceImpl2 implements DetailService {
+
+    @DubboReference(check = false)
+    private CommentService commentService;
+
+    @Override
+    public Item getItem(long sku, String username) {
+        if (username.equals("dubbo")) {
+            return getItemForVip(sku);
+        }
+        return getItem(sku);
+    }
+
+    @Override
+    public boolean deductStock(long sku, int count) {
+        try {
+            // Do something that consumes resources
+            for (int i = 0; i < 500; i++) {
+                Math.pow(ThreadLocalRandom.current().nextDouble(10), ThreadLocalRandom.current().nextDouble(5));
+            }
+            Thread.sleep(ThreadLocalRandom.current().nextInt(50));
+        } catch (InterruptedException ignore) {
+            Thread.currentThread().interrupt();
+        }
+        return true;
+    }
+
+    private Item getItem(long sku) {
+        Item item = new Item();
+        item.setSku(sku);
+        item.setItemName("itemName");
+        item.setDescription("item from detail v2");
+        item.setStock(100);
+        item.setPrice(100);
+        item.setComment(commentService.getComment("itemName"));
+        return item;
+    }
+
+    private Item getItemGray(long sku) {
+        Item item = new Item();
+        item.setSku(sku);
+        item.setItemName("itemName");
+        item.setDescription("item from gray environment");
+        item.setStock(100);
+        item.setPrice(100);
+        item.setComment(commentService.getComment("itemName"));
+        return item;
+    }
+
+    private Item getItemForVip(long sku) {
+        Item item = new Item();
+        item.setSku(sku);
+        item.setItemName("itemName");
+        item.setDescription("item for vip");
+        item.setStock(100);
+        item.setPrice(50);
+        item.setComment(commentService.getComment("itemName"));
+        return item;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/resources/application.properties
new file mode 100644
index 0000000..db8c936
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-detail-v2/src/main/resources/application.properties
@@ -0,0 +1,36 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# Specify the application name of Dubbo
+dubbo.application.name=shop-detail
+spring.application.name=shop-detail
+# Specify the QoS port
+# Enable token verification for each invocation
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20886
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend-api/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend-api/pom.xml
new file mode 100644
index 0000000..05ad4b5
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend-api/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+        <relativePath/>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-frontend-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - FrontEnd's API</name>
+    <description>Dubbo Task - Metrics Demo - FrontEnd's API</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-detail-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-order-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-user-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend-api/src/main/java/org/apache/dubbo/samples/ShopService.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend-api/src/main/java/org/apache/dubbo/samples/ShopService.java
new file mode 100644
index 0000000..9ce36a5
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend-api/src/main/java/org/apache/dubbo/samples/ShopService.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+public interface ShopService {
+
+    boolean register(String username, String password, String realName, String mail, String phone);
+
+    boolean login(String username, String password);
+
+    User getUserInfo(String username);
+
+    boolean timeoutLogin(String username, String password);
+
+    Item checkItem(long sku, String username);
+
+    Item checkItemGray(long sku, String username);
+
+    OrderDetail submitOrder(long sku, int count, String address, String phone, String receiver);
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/pom.xml
new file mode 100644
index 0000000..c37d664
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/pom.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-frontend</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - FrontEnd</name>
+    <description>Dubbo Task - Metrics Demo - FrontEnd</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- common api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-frontend-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-detail-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-order-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-user-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-frontend_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20881</port>
+                            <port>20991</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/BenchmarkClient.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/BenchmarkClient.java
new file mode 100644
index 0000000..78a9dcb
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/BenchmarkClient.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.frontend;
+
+import org.apache.dubbo.samples.ShopService;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Component
+public class BenchmarkClient implements CommandLineRunner {
+    private static final Logger logger = LoggerFactory.getLogger(BenchmarkClient.class);
+
+    @Autowired
+    private ShopService shopService;
+
+    @Override
+    public void run(String... args) {
+        ExecutorService executorService = Executors.newCachedThreadPool();
+
+        // Register (5 Concurrent)
+        for (int i = 0; i < 5; i++) {
+            executorService.submit(() -> {
+                while (true) {
+                    try {
+                        List<String> names = Arrays.asList("John", "Mike", "Kevin", "Grace", "Mark");
+                        String name = names.get(ThreadLocalRandom.current().nextInt(names.size()));
+
+                        List<String> passwords = Arrays.asList("123456", "654321", "admin", "root", "pwd");
+                        String password = passwords.get(ThreadLocalRandom.current().nextInt(passwords.size()));
+                        shopService.register(name, password, name, "dev@dubbo.apache.org", "12345678");
+                    } catch (Throwable t) {
+                        logger.error("Running Register Bench Failed.", t);
+                    }
+                }
+            });
+        }
+        logger.info("Start Register Bench with 5 Concurrent.");
+
+        // Login (10 Concurrent)
+        for (int i = 0; i < 10; i++) {
+            executorService.submit(() -> {
+                while (true) {
+                    try {
+                        List<String> names = Arrays.asList("John", "Mike", "Kevin", "Grace", "Mark");
+                        String name = names.get(ThreadLocalRandom.current().nextInt(names.size()));
+
+                        List<String> passwords = Arrays.asList("123456", "654321", "admin", "root", "pwd");
+                        String password = passwords.get(ThreadLocalRandom.current().nextInt(passwords.size()));
+                        shopService.login(name, password);
+                    } catch (Throwable t) {
+                        logger.error("Running Login Bench Failed.", t);
+                    }
+                }
+            });
+        }
+        logger.info("Start Login Bench with 5 Concurrent.");
+
+        // CreateItem (5 Concurrent)
+        for (int i = 0; i < 5; i++) {
+            executorService.submit(() -> {
+                while (true) {
+                    try {
+                        long sku = ThreadLocalRandom.current().nextLong();
+                        shopService.checkItem(sku, "dubbo");
+                    } catch (Throwable t) {
+                        logger.error("Running CreateItem Bench Failed.", t);
+                    }
+                }
+            });
+        }
+        logger.info("Start CreateItem Bench with 5 Concurrent.");
+
+        // SubmitOrder (50 Concurrent)
+        for (int i = 0; i < 50; i++) {
+            executorService.submit(() -> {
+                while (true) {
+                    try {
+                        long sku = ThreadLocalRandom.current().nextLong();
+                        shopService.submitOrder(sku, 50, "Test Item", "Desc", "Mike");
+                    } catch (Throwable t) {
+                        logger.error("Running SubmitOrder Bench Failed.", t);
+                    }
+                }
+            });
+        }
+        logger.info("Start SubmitOrder Bench with 5 Concurrent.");
+
+        logger.info("All Bench Client started.");
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/FrontEndApplication.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/FrontEndApplication.java
new file mode 100644
index 0000000..a444649
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/FrontEndApplication.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.frontend;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+
+@SpringBootApplication
+public class FrontEndApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(FrontEndApplication.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/ShopServiceImpl.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/ShopServiceImpl.java
new file mode 100644
index 0000000..6eba91d
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/ShopServiceImpl.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.frontend;
+
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.dubbo.samples.DetailService;
+import org.apache.dubbo.samples.Item;
+import org.apache.dubbo.samples.Order;
+import org.apache.dubbo.samples.OrderDetail;
+import org.apache.dubbo.samples.OrderService;
+import org.apache.dubbo.samples.ShopService;
+import org.apache.dubbo.samples.User;
+import org.apache.dubbo.samples.UserService;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class ShopServiceImpl implements ShopService {
+    @DubboReference(check = false, retries = 0)
+    private UserService userService;
+
+    @DubboReference(check = false)
+    private OrderService orderService;
+
+    @DubboReference(check = false)
+    private DetailService detailService;
+
+    @Override
+    public boolean register(String username, String password, String realName, String mail, String phone) {
+        User user = new User();
+        user.setUsername(username);
+        user.setPassword(password);
+        user.setRealName(realName);
+        user.setMail(mail);
+        user.setPhone(phone);
+        return userService.register(user);
+    }
+
+    @Override
+    public boolean login(String username, String password) {
+        return userService.login(username, password) != null;
+    }
+
+    @Override
+    public User getUserInfo(String username) {
+        return userService.getInfo(username);
+    }
+
+    @Override
+    public boolean timeoutLogin(String username, String password) {
+        return userService.timeoutLogin(username, password) != null;
+    }
+
+    @Override
+    public Item checkItem(long sku, String username) {
+        return detailService.getItem(sku, username);
+    }
+
+    public Item checkItemGray(long sku, String username) {
+        return detailService.getItem(sku, username);
+    }
+
+    @Override
+    public OrderDetail submitOrder(long sku, int count, String address, String phone, String receiver) {
+        Order order = new Order();
+        order.setSku(sku);
+        order.setCount(count);
+        order.setAddress(address);
+        order.setPhone(phone);
+        order.setReceiver(receiver);
+        return orderService.submitOrder(order);
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/pages/WebController.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/pages/WebController.java
new file mode 100755
index 0000000..2931023
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/java/org/apache/dubbo/samples/frontend/pages/WebController.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.frontend.pages;
+
+import org.apache.dubbo.rpc.RpcContext;
+import org.apache.dubbo.samples.Item;
+import org.apache.dubbo.samples.OrderDetail;
+import org.apache.dubbo.samples.ShopService;
+import org.apache.dubbo.samples.User;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.ModelAndView;
+
+@RestController
+public class WebController {
+
+    @Autowired
+    private ShopService shopService;
+
+    // user GET to avoid resubmit warning on browser side.
+    @RequestMapping(value = "/login", method = RequestMethod.GET)
+    ModelAndView login(@RequestParam String username, @RequestParam String password) {
+        shopService.login(username, password);
+        // get user info
+
+        // get item detail
+        Item item = shopService.checkItem(1, username);
+
+        ModelAndView modelAndView = new ModelAndView("detail");
+        modelAndView.addObject("username", username);
+        modelAndView.addObject("item", item);
+        return modelAndView;
+    }
+
+    // user GET to avoid resubmit warning on browser side.
+    @RequestMapping(value = "/timeoutLogin", method = RequestMethod.GET)
+    ModelAndView timeoutLogin(@RequestParam String username, @RequestParam String password) {
+        ModelAndView modelAndView;
+
+        try {
+            shopService.timeoutLogin(username, password);
+        } catch (Exception e) {
+            modelAndView = new ModelAndView("index");
+            modelAndView.addObject("result", "Failed to login, request timeout, please add timeout policy and retry!");
+            return modelAndView;
+        }
+
+        modelAndView = new ModelAndView("detail");
+        modelAndView.addObject("username", username);
+        return modelAndView;
+    }
+
+    // user GET to avoid resubmit warning on browser side.
+    @RequestMapping(value = "/grayLogin", method = RequestMethod.GET)
+    ModelAndView grayLogin(@RequestParam String username, @RequestParam String password) {
+        ModelAndView modelAndView;
+        shopService.login(username, password);
+        // get item detail from gray environment
+        RpcContext.getClientAttachment().setAttachment("dubbo.tag", "gray");
+        Item item = shopService.checkItemGray(1, username);
+
+        modelAndView = new ModelAndView("detail");
+        modelAndView.addObject("username", username);
+        modelAndView.addObject("item", item);
+
+        return modelAndView;
+    }
+
+    @RequestMapping(value = "/userinfo", method = RequestMethod.GET)
+    @ResponseBody
+    User userInfo(@RequestParam String username) {
+        // retry
+        try {
+            return shopService.getUserInfo(username);
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    @RequestMapping(value = "/order", method = RequestMethod.POST)
+    @ResponseBody
+    OrderDetail createOrder(@RequestParam String username, @RequestParam long sku) {
+        return shopService.submitOrder(sku, 1, "Hangzhou China", "18069807880", username);
+    }
+
+}
\ No newline at end of file
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/application.properties
new file mode 100644
index 0000000..1823f91
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/application.properties
@@ -0,0 +1,42 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+# Specify the application name of Dubbo
+dubbo.application.name=shop-frontend
+spring.application.name=shop-frontend
+
+# Enable token verification for each invocation
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20881
+#spring.freemarker.template-loader-path: /templates
+spring.freemarker.suffix=.ftl
+server.servlet.encoding.force=true
+server.servlet.encoding.charset=utf-8
+server.servlet.encoding.enabled=true
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/architecture.png b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/architecture.png
new file mode 100644
index 0000000..515efaa
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/architecture.png
Binary files differ
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/goods.png b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/goods.png
new file mode 100644
index 0000000..93663ad
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/goods.png
Binary files differ
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/jquery-3.6.3.min.js b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/jquery-3.6.3.min.js
new file mode 100644
index 0000000..b5329e9
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/static/jquery-3.6.3.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.3 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},S=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||S).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.3",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(E.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||E.isPlainObject(n)?n:{},i=!1,a[t]=E.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},E.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?E.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,S,y,s,c,v,E="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,S)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=E)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{if(d.cssSupportsSelector&&!CSS.supports("selector(:is("+c+"))"))throw new Error;return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===E&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[E]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,S=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssSupportsSelector=ce(function(){return CSS.supports("selector(*)")&&C.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+E+"'></a><select id='"+E+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+E+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssSupportsSelector||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&S&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!S):void 0;return void 0!==r?r:d.attributes||!S?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[E]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[E]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=S?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[E]||(e[E]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[E]&&(y=Ce(y)),v&&!v[E]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Se(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[E]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Se(e.slice(s,n)),n<r&&Se(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Se(t[n]))[E]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!S);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&S&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!S,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=E.split("").sort(j).join("")===E,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);E.find=d,E.expr=d.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=d.uniqueSort,E.text=d.getText,E.isXMLDoc=d.isXML,E.contains=d.contains,E.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=E.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?E(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),N.test(r[1])&&E.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,D=E(S);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(H[r]||E.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(P)||[],function(e,t){n[t]=!0}),n):E.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){E.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){var n;while(-1<(n=E.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),C.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=E.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){C.setTimeout(function(){throw e})};var F=E.Deferred();function $(){S.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),E.ready()}E.fn.ready=function(e){return F.then(e)["catch"](function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||F.resolveWith(S,[E])}}),E.ready.then=F.then,"complete"===S.readyState||"loading"!==S.readyState&&!S.documentElement.doScroll?C.setTimeout(E.ready):(S.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=E.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||E.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),E.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:E.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=S.documentElement,ie=function(e){return E.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===E.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&te.exec(E.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,E.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=E.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}E.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?E(this).show():E(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=S.createDocumentFragment().appendChild(S.createElement("div")),(fe=S.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))E.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;E.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return S.activeElement}catch(e){}}()==("focus"===t)}function Se(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Se(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Ee(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,we)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(re,i),n.guid||(n.guid=E.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=E.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},c=E.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),E.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=E.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||E.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)E.event.remove(e,d+t[l],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=E.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=E.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=E.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<E(i,this).index(l):E.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ee(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ee(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(t,e){E.event.special[t]={setup:function(){return Ee(this,t,Ce),!1},trigger:function(){return Ee(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return Se(this,e,t,n,r)},one:function(e,t,n,r){return Se(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){E.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)E.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=E.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=E.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=E.clone(u,!0,!0),s&&E.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace($e,"$1")||void 0),""!==a||ie(e)||(a=E.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=S.createElement("div"),l=S.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,E.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=S.createElement("table"),t=S.createElement("tr"),n=S.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=S.createElement("div").style,Xe={};function Ve(e){var t=E.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=E.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+ne[a]+"Width",!0,i))):(u+=E.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=E.css(e,"border"+ne[a]+"Width",!0,i):s+=E.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,u){E.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=E.css(e,u)),Je(0,t,s)}}}),E.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=Je)}),E.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),((E.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(E.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||!E.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},E.fx=et.prototype.init,E.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===S.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,E.fx.interval),E.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=E.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:E.extend({},e),opts:E.extend(!0,{specialEasing:{},easing:E.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=E.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=E.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(E._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return E.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),E.fx.timer(E.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}E.Animation=E.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=E._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,E.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||E.style(e,r)}if((u=!E.isEmptyObject(t))||!E.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=E.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=E.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===E.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)E.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),E.speed=function(e,t,n){var r=e&&"object"==typeof e?E.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return E.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in E.fx.speeds?r.duration=E.fx.speeds[r.duration]:r.duration=E.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&E.dequeue(this,r.queue)},r},E.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=E.isEmptyObject(t),o=E.speed(e,n,r),a=function(){var e=ft(this,E.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=E.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||E.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=E.timers,o=n?n.length:0;for(t.finish=!0,E.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),E.each(["toggle","show","hide"],function(e,r){var i=E.fn[r];E.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),E.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){E.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),E.timers=[],E.fx.tick=function(){var e,t=0,n=E.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||E.fx.stop(),tt=void 0},E.fx.timer=function(e){E.timers.push(e),E.fx.start()},E.fx.interval=13,E.fx.start=function(){nt||(nt=!0,st())},E.fx.stop=function(){nt=null},E.fx.speeds={slow:600,fast:200,_default:400},E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=S.createElement("input"),it=S.createElement("select").appendChild(S.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=S.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return B(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||E.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}E.fn.extend({prop:function(e,t){return B(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){E(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){E(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){E(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=E(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:yt(E.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=E.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},v.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||S],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||S,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+E.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[E.expando]?e:new E.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),c=E.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||S)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),E.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),v.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},St=/\?/;E.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Et=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))E.each(e,function(e,t){r||Et.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=S.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,E.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&E.extend(!0,e,r),e}Wt.href=Tt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,E.ajaxSettings),t):Bt(E.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=E.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?E(v):E.event,x=E.Deferred(),b=E.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=S.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=E.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=E.event&&y.global)&&0==E.active++&&E.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(St.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(St.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(E.lastModified[f]&&T.setRequestHeader("If-Modified-Since",E.lastModified[f]),E.etag[f]&&T.setRequestHeader("If-None-Match",E.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<E.inArray("script",y.dataTypes)&&E.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(E.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(E.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--E.active||E.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return E.get(e,t,n,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],function(e,i){E[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),E.ajax(E.extend({url:e,type:i,dataType:r,data:t,success:n},E.isPlainObject(e)&&e))}}),E.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),E._evalUrl=function(e,t,n){return E.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){E.globalEval(e,t,n)}})},E.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=E.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,E.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),E.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),E.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=E("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||E.expando+"_"+Ct.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=S.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&E.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?E("<div>").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;E.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=A,E.isFunction=m,E.isWindow=x,E.camelCase=X,E.type=w,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},E.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var Yt=C.jQuery,Qt=C.$;return E.noConflict=function(e){return C.$===E&&(C.$=Qt),e&&C.jQuery===E&&(C.jQuery=Yt),E},"undefined"==typeof e&&(C.jQuery=C.$=E),E});
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/templates/detail.ftl b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/templates/detail.ftl
new file mode 100755
index 0000000..e50b1bb
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/templates/detail.ftl
@@ -0,0 +1,113 @@
+<html>
+
+<head>
+    <title>Dubbo Onling Shopping Demo</title>
+    <script src="jquery-3.6.3.min.js"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            $.ajax({
+                url: "/userinfo?username=" + "${username}",
+                success: function (result) {
+                    if (result === "") {
+                        $("#userinfo").html("<label id='retry'>Failed to get user info, please add retry policy and refresh!</label>");
+                    } else {
+                        $("#userinfo").html("User Info: " + result.username + ", " + result.realName + ", " + result.mail + ", " + result.phone);
+                    }
+                },
+                error: function (xhr, status, error) {
+                    $("#userinfo").innerHTML = "<label id='retry'>Failed to get user info in background, please add retry policy and refresh!</label>";
+                },
+                complete: function (xhr, status) {
+                }
+            });
+        });
+
+        function buyNow() {
+            console.log("${username}");
+            $.post("/order?username=", {username: "${username}", sku: 1},
+                function (result, status, xhr) {
+                    if (result === "") {
+                        $("#orderDetail").html("<label>Order created successfully!</label>");
+                    } else {
+                        $("#orderDetail").html("Order created successfully! <br/><br/> Here's the package delivery message " + result.receiver + ", " + result.phone + ", " + result.address);
+                    }
+                });
+        }
+    </script>
+    <style>
+        #retry {
+            color: red;
+            font-size: 1.3rem;
+        }
+
+        .image {
+            width: 100%;
+            height: 510px;
+            border: 1px solid black;
+        }
+
+        #userinfo {
+            width: 100%;
+            height: 100px;
+            border: 1px solid black;
+        }
+
+        .image img {
+            margin: 5px;
+            padding-right: 5px;
+            width: 1000px;
+            height: 500px;
+            border: 1px solid black;
+        }
+
+        .detail {
+            margin: 5px;
+            float: right;
+            height: 500px;
+            border: 1px solid black;
+        }
+
+        #orderDetail {
+            margin: 5px;
+            border: 1px solid black;
+        }
+    </style>
+</head>
+
+<body>
+
+<p id="userinfo"></p>
+
+<div>
+    <div>
+        <div class="image">
+            <img src="goods.png"/>
+            <p style="width:100px;float:right;position:absolute;left:1115px;top:550px;">
+                <input style="width:100px;height:50px;" id=login onclick="buyNow()" type="button" value="Buy Now"/>
+            </p>
+            <div class="detail">
+
+                <ul>
+                    <li>SKU: ${item.sku}</li>
+                    <li>Name: ${item.itemName}</li>
+                    <li>Description: ${item.description}</li>
+                    <li><label>Comment: ${item.comment}</label></li>
+                    <li><label>Price: ${item.price}</label></li>
+                </ul>
+
+            </div>
+        </div>
+
+
+    </div>
+
+    <div id="orderDetail">
+
+    </div>
+
+</div>
+
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/templates/index.ftl b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/templates/index.ftl
new file mode 100755
index 0000000..a56ca78
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-frontend/src/main/resources/templates/index.ftl
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <script src="jquery-3.6.3.min.js"></script>
+    <title>Dubbo Onling Shopping Demo</title>
+    <style type="text/css">
+        form {
+            width: 100%;
+            height: 100%;
+            font-size: 1.2rem;
+        }
+
+        div {
+            display: inline-block;
+            padding-bottom: 255px;
+            padding-left: 1px;
+            padding-right: 1px;
+        }
+
+        h2 {
+            font-size: 40px;
+            color: black;
+        }
+
+        #log {
+            color: blue;
+        }
+
+        ul li {
+            text-align: left;
+        }
+
+        .image img {
+            width: 550px;
+            height: 300px;
+            margin: 5px;
+            border: 1px solid black;
+        }
+    </style>
+
+    <script type="text/javascript">
+        function normalLogin() {
+            var username = $("#username").val();
+            var password = $("#password").val();
+
+            window.location.href = "/login?username=" + username + "&password=" + password;
+        }
+
+        function timeoutLogin() {
+            var username = $("#username").val();
+            var password = $("#password").val();
+
+            window.location.href = "/timeoutLogin?username=" + username + "&password=" + password;
+        }
+
+        function grayLogin() {
+            var username = $("#username").val();
+            var password = $("#password").val();
+
+            window.location.href = "/grayLogin?username=" + username + "&password=" + password;
+        }
+    </script>
+</head>
+<body>
+<!--div class="div">
+    <img src="favicon.png" width="100%" height="200px" alt=""  id="picture">
+</div-->
+<form id="loginForm" name="login" method="post">
+    <center>
+        <div>
+            <h2>
+                The Dubbo Online Shopping Mall Demo
+            </h2>
+            <p class="image">
+                <img src="architecture.png"/>
+            </p>
+            <#if result??>
+                <p style="color:red; font-size: 1.3rem">
+                    ${result}
+                </p>
+            </#if>
+            <p>
+            <p>
+                Username: <input id="username" type="text" name="username"/>
+            </p>
+            <p>
+                Password: <input id="password" type="password" name="password"/>
+            </p>
+            </p>
+            <p>
+                <input id=login onclick="normalLogin()" type="button" value="Login"/>
+                <input id=timeout-login onclick="timeoutLogin()" type="button" value="Timeout Login"/>
+                <input id=gray-login onclick="grayLogin()" type="button" value="Login To Gray"/>
+            </p>
+
+            <p>
+            <ul style="list-style-position:inside;">
+                <li>Input any username and password to login.</li>
+                <li>Use username 'dubbo' to test features like traffic isolation, argument routing, etc.</li>
+            </ul>
+            </p>
+        </div>
+    </center>
+</form>
+</body>
+</html>
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/pom.xml
similarity index 69%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/pom.xml
index 90b1068..23e23aa 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -18,19 +19,18 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+        <relativePath/>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-order-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
 
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.deploy.skip>true</maven.deploy.skip>
-    </properties>
+    <name>Dubbo Task - Metrics Demo - Order's API</name>
+    <description>Dubbo Task - Metrics Demo - Order's API</description>
 
 </project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/Order.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/Order.java
new file mode 100644
index 0000000..0dd4398
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/Order.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+import java.io.Serializable;
+
+public class Order implements Serializable {
+    private long sku;
+    private int count;
+
+    private String address;
+    private String phone;
+    private String receiver;
+
+    public long getSku() {
+        return sku;
+    }
+
+    public void setSku(long sku) {
+        this.sku = sku;
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public void setCount(int count) {
+        this.count = count;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getReceiver() {
+        return receiver;
+    }
+
+    public void setReceiver(String receiver) {
+        this.receiver = receiver;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/OrderDetail.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/OrderDetail.java
new file mode 100644
index 0000000..b414313
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/OrderDetail.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+import java.io.Serializable;
+
+public class OrderDetail implements Serializable {
+    private String env;
+    private String address;
+    private String phone;
+    private String receiver;
+
+    public String getEnv() {
+        return env;
+    }
+
+    public void setEnv(String env) {
+        this.env = env;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getReceiver() {
+        return receiver;
+    }
+
+    public void setReceiver(String receiver) {
+        this.receiver = receiver;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/OrderService.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/OrderService.java
new file mode 100644
index 0000000..260d714
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-api/src/main/java/org/apache/dubbo/samples/OrderService.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+public interface OrderService {
+
+    OrderDetail submitOrder(Order order);
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/pom.xml
new file mode 100644
index 0000000..876fa0c
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/pom.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-order-v1</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - Order V1</name>
+    <description>Dubbo Task - Metrics Demo - Order - Version 1</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- common api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-order-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-order_v1_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20882</port>
+                            <port>20992</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/java/org/apache/dubbo/samples/order/OrderApplicationV1.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/java/org/apache/dubbo/samples/order/OrderApplicationV1.java
new file mode 100644
index 0000000..1628e73
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/java/org/apache/dubbo/samples/order/OrderApplicationV1.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.order;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class OrderApplicationV1 {
+
+    public static void main(String[] args) {
+        SpringApplication.run(OrderApplicationV1.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/java/org/apache/dubbo/samples/order/OrderServiceImpl.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/java/org/apache/dubbo/samples/order/OrderServiceImpl.java
new file mode 100644
index 0000000..794d4ad
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/java/org/apache/dubbo/samples/order/OrderServiceImpl.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.order;
+
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.Order;
+import org.apache.dubbo.samples.OrderDetail;
+import org.apache.dubbo.samples.OrderService;
+
+@DubboService
+public class OrderServiceImpl implements OrderService {
+    @Override
+    public OrderDetail submitOrder(Order order) {
+        // Do something that consumes resources
+        return null;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/resources/application.properties
new file mode 100644
index 0000000..7fac9f5
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v1/src/main/resources/application.properties
@@ -0,0 +1,39 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+# Specify the application name of Dubbo
+dubbo.application.name=shop-order
+spring.application.name=shop-order
+
+# Enable token verification for each invocation
+
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20882
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/pom.xml
new file mode 100644
index 0000000..18fb830
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/pom.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-order-v2</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - Order V2</name>
+    <description>Dubbo Task - Metrics Demo - Order - Version 2</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- common api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-order-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-detail-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-order_v2_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20883</port>
+                            <port>20993</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/java/org/apache/dubbo/samples/order/OrderApplicationV2.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/java/org/apache/dubbo/samples/order/OrderApplicationV2.java
new file mode 100644
index 0000000..3e3c273
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/java/org/apache/dubbo/samples/order/OrderApplicationV2.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.order;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class OrderApplicationV2 {
+
+    public static void main(String[] args) {
+        SpringApplication.run(OrderApplicationV2.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/java/org/apache/dubbo/samples/order/OrderServiceImpl2.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/java/org/apache/dubbo/samples/order/OrderServiceImpl2.java
new file mode 100644
index 0000000..4b4964c
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/java/org/apache/dubbo/samples/order/OrderServiceImpl2.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.order;
+
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.DetailService;
+import org.apache.dubbo.samples.Order;
+import org.apache.dubbo.samples.OrderDetail;
+import org.apache.dubbo.samples.OrderService;
+
+@DubboService
+public class OrderServiceImpl2 implements OrderService {
+    @DubboReference
+    private DetailService detailService;
+
+    @Override
+    public OrderDetail submitOrder(Order order) {
+        // Do something that consumes resources
+        detailService.deductStock(order.getSku(), order.getCount());
+
+        OrderDetail orderDetail = new OrderDetail();
+        orderDetail.setEnv("v2");
+        orderDetail.setAddress(order.getAddress());
+        orderDetail.setReceiver(order.getReceiver());
+        orderDetail.setPhone(order.getPhone());
+        return orderDetail;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/resources/application.properties
new file mode 100644
index 0000000..7df09f9
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-order-v2/src/main/resources/application.properties
@@ -0,0 +1,39 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+# Specify the application name of Dubbo
+dubbo.application.name=shop-order
+spring.application.name=shop-order
+
+# Enable token verification for each invocation
+
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20883
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/pom.xml
similarity index 69%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/pom.xml
index 90b1068..dd17423 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -18,19 +19,18 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+        <relativePath/>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-user-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
 
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.deploy.skip>true</maven.deploy.skip>
-    </properties>
+    <name>Dubbo Task - Metrics Demo - User's API</name>
+    <description>Dubbo Task - Metrics Demo - User's API</description>
 
 </project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/src/main/java/org/apache/dubbo/samples/User.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/src/main/java/org/apache/dubbo/samples/User.java
new file mode 100644
index 0000000..6aa4249
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/src/main/java/org/apache/dubbo/samples/User.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+import java.io.Serializable;
+
+public class User implements Serializable {
+    private String username;
+    private String password;
+    private String realName;
+    private String mail;
+    private String phone;
+    private String env;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getMail() {
+        return mail;
+    }
+
+    public void setMail(String mail) {
+        this.mail = mail;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getEnv() {
+        return env;
+    }
+
+    public void setEnv(String env) {
+        this.env = env;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/src/main/java/org/apache/dubbo/samples/UserService.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/src/main/java/org/apache/dubbo/samples/UserService.java
new file mode 100644
index 0000000..d2d8264
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user-api/src/main/java/org/apache/dubbo/samples/UserService.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples;
+
+public interface UserService {
+
+    boolean register(User user);
+
+    User login(String username, String password);
+
+    User timeoutLogin(String username, String password);
+
+    User getInfo(String username);
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/pom.xml b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/pom.xml
new file mode 100644
index 0000000..b58176d
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/pom.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.0.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>org.apache.dubbo.samples</groupId>
+    <artifactId>dubbo-samples-metrics-demo-user</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+
+    <name>Dubbo Task - Metrics Demo - User</name>
+    <description>Dubbo Task - Metrics Demo - User</description>
+
+    <properties>
+        <java.version>17</java.version>
+        <dubbo.version>3.2.1</dubbo.version>
+        <nacos.version>2.2.0</nacos.version>
+    </properties>
+
+    <dependencies>
+        <!-- common api -->
+        <dependency>
+            <groupId>org.apache.dubbo.samples</groupId>
+            <artifactId>dubbo-samples-metrics-demo-user-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- registry dependency -->
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <version>${nacos.version}</version>
+        </dependency>
+
+        <!-- dubbo dependency-->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-observability-autoconfigure</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <version>${dubbo.version}</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>native-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.google.cloud.tools</groupId>
+                <artifactId>jib-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <from>
+                        <image>openjdk:17</image>
+                    </from>
+                    <to>
+                        <image>albumen/dubbo-demo:dubbo-samples-metrics-demo-user_0.0.1</image>
+                    </to>
+                    <container>
+                        <jvmFlags>
+                            <jvmFlag>-Dnacos.address=nacos.dubbo-system.svc</jvmFlag>
+                        </jvmFlags>
+                        <ports>
+                            <port>20884</port>
+                            <port>20994</port>
+                        </ports>
+                    </container>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/java/org/apache/dubbo/samples/user/UserApplication.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/java/org/apache/dubbo/samples/user/UserApplication.java
new file mode 100644
index 0000000..36c34e7
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/java/org/apache/dubbo/samples/user/UserApplication.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.user;
+
+import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class UserApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(UserApplication.class, args);
+    }
+
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/java/org/apache/dubbo/samples/user/UserServiceImpl.java b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/java/org/apache/dubbo/samples/user/UserServiceImpl.java
new file mode 100644
index 0000000..dc088d9
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/java/org/apache/dubbo/samples/user/UserServiceImpl.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.samples.user;
+
+import org.apache.dubbo.config.annotation.DubboService;
+import org.apache.dubbo.samples.User;
+import org.apache.dubbo.samples.UserService;
+
+import java.util.concurrent.ThreadLocalRandom;
+
+@DubboService(timeout = 1000)
+public class UserServiceImpl implements UserService {
+    @Override
+    public boolean register(User user) {
+        // Do something that consumes resources
+        for (int i = 0; i < 100; i++) {
+            Math.pow(ThreadLocalRandom.current().nextDouble(10), ThreadLocalRandom.current().nextDouble(5));
+        }
+
+        return true;
+    }
+
+    @Override
+    public User login(String username, String password) {
+        // Do something that consumes resources
+        User user = new User();
+        user.setUsername(username);
+        user.setPassword(password);
+        user.setPhone("13912345678");
+        user.setMail("dev@dubbo.apache.org");
+        user.setRealName("Dubbo Test");
+        return user;
+    }
+
+    @Override
+    public User timeoutLogin(String username, String password) {
+        try {
+            Thread.sleep(1100);
+        } catch (InterruptedException ignore) {
+            Thread.currentThread().interrupt();
+        }
+        User user = new User();
+        user.setUsername(username);
+        user.setPassword(password);
+        user.setPhone("13912345678");
+        user.setMail("dev@dubbo.apache.org");
+        user.setRealName("Dubbo Test");
+        return user;
+    }
+
+    private int count = 1;
+
+    @Override
+    public User getInfo(String username) {
+        System.out.println("Received getInfo request......");
+        try {
+            if (++count % 3 != 0) {
+                Thread.sleep(3000);
+            }
+        } catch (InterruptedException ignore) {
+            Thread.currentThread().interrupt();
+        }
+        User user = new User();
+        user.setUsername(username);
+        user.setPassword("password");
+        user.setPhone("13912345678");
+        user.setMail("dev@dubbo.apache.org");
+        user.setRealName("Dubbo Test");
+        return user;
+    }
+}
diff --git a/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/resources/application.properties b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/resources/application.properties
new file mode 100644
index 0000000..573f613
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/dubbo-samples-metrics-demo-user/src/main/resources/application.properties
@@ -0,0 +1,41 @@
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+# Specify the application name of Dubbo
+dubbo.application.name=shop-user
+spring.application.name=shop-user
+
+# Specify the QoS port
+
+# Enable token verification for each invocation
+
+
+# Specify the registry address
+# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
+
+# Specify the port of Dubbo protocol
+dubbo.protocol.port=20884
+dubbo.application.qos-anonymous-allow-commands=metrics
+dubbo.metrics.aggregation.enabled=true
+dubbo.metrics.histogram.enabled=true
+
+dubbo.tracing.enabled=true
+dubbo.tracing.sampling.probability=0.001
+dubbo.tracing.propagation.type=W3C
+dubbo.tracing.tracing-exporter.zipkin-config.endpoint=http://zipkin.dubbo-system.svc:9411/api/v2/spans
+dubbo.tracing.tracing-exporter.zipkin-config.connect-timeout=1s
+dubbo.tracing.tracing-exporter.zipkin-config.read-timeout=10s
+
diff --git a/10-task/dubbo-samples-metrics-demo/pom.xml b/10-task/dubbo-samples-metrics-demo/pom.xml
new file mode 100644
index 0000000..6a5bbc9
--- /dev/null
+++ b/10-task/dubbo-samples-metrics-demo/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.dubbo</groupId>
+    <artifactId>dubbo-samples-metrics-demo</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0-SNAPSHOT</version>
+
+    <name>RPC Task - Shop</name>
+    <description>Dubbo Samples RPC Task - Shop</description>
+
+    <modules>
+        <module>dubbo-samples-metrics-demo-frontend-api</module>
+        <module>dubbo-samples-metrics-demo-frontend</module>
+        <module>dubbo-samples-metrics-demo-order-api</module>
+        <module>dubbo-samples-metrics-demo-order-v1</module>
+        <module>dubbo-samples-metrics-demo-order-v2</module>
+        <module>dubbo-samples-metrics-demo-comment-api</module>
+        <module>dubbo-samples-metrics-demo-comment-v1</module>
+        <module>dubbo-samples-metrics-demo-comment-v2</module>
+        <module>dubbo-samples-metrics-demo-detail-api</module>
+        <module>dubbo-samples-metrics-demo-detail-v1</module>
+        <module>dubbo-samples-metrics-demo-detail-v2</module>
+        <module>dubbo-samples-metrics-demo-user</module>
+        <module>dubbo-samples-metrics-demo-user-api</module>
+    </modules>
+</project>
diff --git a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-a/pom.xml b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-a/pom.xml
index a6c87b6..d14ee8d 100644
--- a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-a/pom.xml
+++ b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-a/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v1/pom.xml b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v1/pom.xml
index 984702b..2b2237d 100644
--- a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v1/pom.xml
+++ b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v1/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v2/pom.xml b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v2/pom.xml
index 3cf75f1..1934449 100644
--- a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v2/pom.xml
+++ b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-b-v2/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-c/pom.xml b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-c/pom.xml
index 32732eb..09ab8a7 100644
--- a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-c/pom.xml
+++ b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-c/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-d/pom.xml b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-d/pom.xml
index 223582e..f850e77 100644
--- a/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-d/pom.xml
+++ b/10-task/dubbo-samples-rpc-advanced/dubbo-samples-rpc-advanced-app-d/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-consumer/pom.xml b/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-consumer/pom.xml
index a0c6cfa..66db598 100644
--- a/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-consumer/pom.xml
+++ b/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-consumer/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -105,4 +105,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-provider/pom.xml b/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-provider/pom.xml
index 9dd0266..cc1dab6 100644
--- a/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-provider/pom.xml
+++ b/10-task/dubbo-samples-rpc-basic/dubbo-samples-rpc-basic-provider/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/.run/CommentApplication1.run.xml b/10-task/dubbo-samples-shop/.run/CommentApplication1.run.xml
index 1fcd9ef..29e74c8 100644
--- a/10-task/dubbo-samples-shop/.run/CommentApplication1.run.xml
+++ b/10-task/dubbo-samples-shop/.run/CommentApplication1.run.xml
@@ -1,15 +1,13 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="CommentApplication1" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-comment-v1"/>
-        <selectedOptions>
-            <option name="environmentVariables"/>
-        </selectedOptions>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.comment.CommentApplication"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;commentVersion=v1;region=beijing&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="CommentApplication1" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-comment-v1" />
+    <selectedOptions>
+      <option name="environmentVariables" />
+    </selectedOptions>
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.comment.CommentApplication" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;commentVersion=v1;region=beijing&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/CommentApplication2.run.xml b/10-task/dubbo-samples-shop/.run/CommentApplication2.run.xml
index afab606..a47a5e5 100644
--- a/10-task/dubbo-samples-shop/.run/CommentApplication2.run.xml
+++ b/10-task/dubbo-samples-shop/.run/CommentApplication2.run.xml
@@ -1,15 +1,13 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="CommentApplication2" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-comment-v2"/>
-        <selectedOptions>
-            <option name="environmentVariables"/>
-        </selectedOptions>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.comment.CommentApplication2"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;commentVersion=v2;region=hangzhou;type=vip&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="CommentApplication2" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-comment-v2" />
+    <selectedOptions>
+      <option name="environmentVariables" />
+    </selectedOptions>
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.comment.CommentApplication2" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;commentVersion=v2;region=hangzhou;type=vip&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/CommentApplicationGray.run.xml b/10-task/dubbo-samples-shop/.run/CommentApplicationGray.run.xml
index a3051ac..177ca3a 100644
--- a/10-task/dubbo-samples-shop/.run/CommentApplicationGray.run.xml
+++ b/10-task/dubbo-samples-shop/.run/CommentApplicationGray.run.xml
@@ -1,12 +1,10 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="CommentApplicationGray" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-comment-gray"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.comment.CommentApplicationGray"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="CommentApplicationGray" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-comment-gray" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.comment.CommentApplicationGray" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/DetailApplication1.run.xml b/10-task/dubbo-samples-shop/.run/DetailApplication1.run.xml
index 5c7405b..37d568d 100644
--- a/10-task/dubbo-samples-shop/.run/DetailApplication1.run.xml
+++ b/10-task/dubbo-samples-shop/.run/DetailApplication1.run.xml
@@ -1,21 +1,19 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DetailApplication1" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-detail-v1"/>
-        <selectedOptions>
-            <option name="environmentVariables"/>
-        </selectedOptions>
-        <extension name="coverage">
-            <pattern>
-                <option name="PATTERN" value="org.apache.dubbo.samples.detail.*"/>
-                <option name="ENABLED" value="true"/>
-            </pattern>
-        </extension>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.detail.DetailApplication"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;detailVersion=v1;region=beijing&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="DetailApplication1" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-detail-v1" />
+    <selectedOptions>
+      <option name="environmentVariables" />
+    </selectedOptions>
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.detail.DetailApplication" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;detailVersion=v1;region=beijing&quot;" />
+    <extension name="coverage">
+      <pattern>
+        <option name="PATTERN" value="org.apache.dubbo.samples.detail.*" />
+        <option name="ENABLED" value="true" />
+      </pattern>
+    </extension>
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/DetailApplication2.run.xml b/10-task/dubbo-samples-shop/.run/DetailApplication2.run.xml
index ef928da..7c4d858 100644
--- a/10-task/dubbo-samples-shop/.run/DetailApplication2.run.xml
+++ b/10-task/dubbo-samples-shop/.run/DetailApplication2.run.xml
@@ -1,21 +1,19 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DetailApplication2" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-detail-v2"/>
-        <selectedOptions>
-            <option name="environmentVariables"/>
-        </selectedOptions>
-        <extension name="coverage">
-            <pattern>
-                <option name="PATTERN" value="org.apache.dubbo.samples.detail.*"/>
-                <option name="ENABLED" value="true"/>
-            </pattern>
-        </extension>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.detail.DetailApplication2"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;detailVersion=v2;region=hangzhou;type=vip&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="DetailApplication2" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-detail-v2" />
+    <selectedOptions>
+      <option name="environmentVariables" />
+    </selectedOptions>
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.detail.DetailApplication2" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;detailVersion=v2;region=hangzhou;type=vip&quot;" />
+    <extension name="coverage">
+      <pattern>
+        <option name="PATTERN" value="org.apache.dubbo.samples.detail.*" />
+        <option name="ENABLED" value="true" />
+      </pattern>
+    </extension>
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/DetailApplicationGray.run.xml b/10-task/dubbo-samples-shop/.run/DetailApplicationGray.run.xml
index f9932aa..8d7f038 100644
--- a/10-task/dubbo-samples-shop/.run/DetailApplicationGray.run.xml
+++ b/10-task/dubbo-samples-shop/.run/DetailApplicationGray.run.xml
@@ -1,12 +1,10 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DetailApplicationGray" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-detail-gray"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.detail.DetailApplicationGray"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="DetailApplicationGray" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-detail-gray" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.detail.DetailApplicationGray" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/FrontEndApplication.run.xml b/10-task/dubbo-samples-shop/.run/FrontEndApplication.run.xml
index 5dc6406..b7ba6bd 100644
--- a/10-task/dubbo-samples-shop/.run/FrontEndApplication.run.xml
+++ b/10-task/dubbo-samples-shop/.run/FrontEndApplication.run.xml
@@ -1,11 +1,9 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="FrontEndApplication" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-frontend"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.frontend.FrontEndApplication"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="FrontEndApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-frontend" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.frontend.FrontEndApplication" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/OrderApplication1.run.xml b/10-task/dubbo-samples-shop/.run/OrderApplication1.run.xml
index e2a2709..aa9ff06 100644
--- a/10-task/dubbo-samples-shop/.run/OrderApplication1.run.xml
+++ b/10-task/dubbo-samples-shop/.run/OrderApplication1.run.xml
@@ -1,12 +1,10 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="OrderApplication1" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-order-v1"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.order.OrderApplicationV1"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;orderVersion=v1&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="OrderApplication1" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-order-v1" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.order.OrderApplicationV1" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;orderVersion=v1&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/OrderApplication2.run.xml b/10-task/dubbo-samples-shop/.run/OrderApplication2.run.xml
index d005335..79be85c 100644
--- a/10-task/dubbo-samples-shop/.run/OrderApplication2.run.xml
+++ b/10-task/dubbo-samples-shop/.run/OrderApplication2.run.xml
@@ -1,12 +1,10 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="OrderApplication2" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-order-v2"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.order.OrderApplicationV2"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;orderVersion=v2&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="OrderApplication2" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-order-v2" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.order.OrderApplicationV2" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;orderVersion=v2&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/OrderApplicationGray.run.xml b/10-task/dubbo-samples-shop/.run/OrderApplicationGray.run.xml
index ec7c972..4f5a4ea 100644
--- a/10-task/dubbo-samples-shop/.run/OrderApplicationGray.run.xml
+++ b/10-task/dubbo-samples-shop/.run/OrderApplicationGray.run.xml
@@ -1,12 +1,10 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="OrderApplicationGray" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-order-gray"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.order.OrderApplicationGray"/>
-        <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="OrderApplicationGray" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-order-gray" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.order.OrderApplicationGray" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/UserApplication.run.xml b/10-task/dubbo-samples-shop/.run/UserApplication.run.xml
index c825118..9a5ea8f 100644
--- a/10-task/dubbo-samples-shop/.run/UserApplication.run.xml
+++ b/10-task/dubbo-samples-shop/.run/UserApplication.run.xml
@@ -1,11 +1,9 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="UserApplication" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-user"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.user.UserApplication"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="UserApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-user" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.user.UserApplication" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/.run/UserApplicationGray.run.xml b/10-task/dubbo-samples-shop/.run/UserApplicationGray.run.xml
index 1965595..680a09f 100644
--- a/10-task/dubbo-samples-shop/.run/UserApplicationGray.run.xml
+++ b/10-task/dubbo-samples-shop/.run/UserApplicationGray.run.xml
@@ -1,11 +1,10 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="UserApplicationGray" type="SpringBootApplicationConfigurationType"
-                   factoryName="Spring Boot">
-        <module name="dubbo-samples-shop-user-gray"/>
-        <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.user.UserApplicationGray"/>
-        <option name="ALTERNATIVE_JRE_PATH"/>
-        <method v="2">
-            <option name="Make" enabled="true"/>
-        </method>
-    </configuration>
+  <configuration default="false" name="UserApplicationGray" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" folderName="tasks-shop">
+    <module name="dubbo-samples-shop-user-gray" />
+    <option name="SPRING_BOOT_MAIN_CLASS" value="org.apache.dubbo.samples.user.UserApplicationGray" />
+    <option name="VM_PARAMETERS" value="-Ddubbo.labels=&quot;env=gray&quot;" />
+    <method v="2">
+      <option name="Make" enabled="true" />
+    </method>
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/10-task/dubbo-samples-shop/README.md b/10-task/dubbo-samples-shop/README.md
index 015ec55..48ecbb8 100644
--- a/10-task/dubbo-samples-shop/README.md
+++ b/10-task/dubbo-samples-shop/README.md
@@ -1,4 +1,4 @@
-此任务基于一个简单的线上商城微服务系统演示了 Dubbo 的流量管控能力。用于配合 【Dubbo 官网】-【文档】-【任务】-【流量管控】部分文档。
+此任务基于一个简单的线上商城微服务系统演示了 Dubbo 的流量管控能力。用于配合 [【Dubbo 官网】-【文档】-【任务】-【流量管控】](https://cn.dubbo.apache.org/zh-cn/overview/tasks/traffic-management/)部分文档。
 
 ## 架构
 线上商城的架构图如下：
@@ -27,9 +27,9 @@
 
 ![ide_runnable_task_configuration](./.images/ide_runnable_task_configuration.png)
 
-接下来，你就可以跟随 Dubbo 官网描述的任务，启动相应的任务示例，并运行查看效果。
+接下来，你就可以跟随 [Dubbo 官网描述的任务](https://cn.dubbo.apache.org/zh-cn/overview/tasks/traffic-management/)，启动相应的任务示例，并运行查看效果。
 
-> 注意，要成功的在本地运行这里的示例，还需要先在本地启动 Nacos 注册中心、Dubbo Admin 等基础组件。
+> 注意，要成功的在本地运行这里的示例，还需要先在本地启动 Nacos 注册中心，最好再部署 Dubbo Admin 等以方便进行规则配置。
 
 ### Kubernetes 部署
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-gray/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-gray/pom.xml
index f60c929..4634c0a 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-gray/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-gray/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v1/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v1/pom.xml
index ae0992d..7369543 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v1/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v1/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v2/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v2/pom.xml
index 74047ba..5af1d10 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v2/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-comment-v2/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-gray/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-gray/pom.xml
index 67964b1..35ab43f 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-gray/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-gray/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v1/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v1/pom.xml
index 09f4b36..cb2d3be 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v1/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v1/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v2/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v2/pom.xml
index af05074..d77b2b6 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v2/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-detail-v2/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/pom.xml
index 6a935e0..08fab76 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/src/main/resources/templates/index.ftl b/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/src/main/resources/templates/index.ftl
index a56ca78..3d99810 100755
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/src/main/resources/templates/index.ftl
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-frontend/src/main/resources/templates/index.ftl
@@ -98,6 +98,7 @@
             <ul style="list-style-position:inside;">
                 <li>Input any username and password to login.</li>
                 <li>Use username 'dubbo' to test features like traffic isolation, argument routing, etc.</li>
+                <li>Check <a href="https://cn.dubbo.apache.org/zh-cn/overview/tasks/traffic-management/" target="_blank">the official traffic management task</a> for how to use this demo.</li>
             </ul>
             </p>
         </div>
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-order-gray/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-order-gray/pom.xml
index 1b7a617..3c5fdda 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-order-gray/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-order-gray/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v1/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v1/pom.xml
index 7e619dc..91fb15d 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v1/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v1/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v2/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v2/pom.xml
index eb4c362..5855eed 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v2/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-order-v2/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-user-gray/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-user-gray/pom.xml
index dad364e..2fbf2e8 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-user-gray/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-user-gray/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/dubbo-samples-shop/dubbo-samples-shop-user/pom.xml b/10-task/dubbo-samples-shop/dubbo-samples-shop-user/pom.xml
index b16905c..95a96df 100644
--- a/10-task/dubbo-samples-shop/dubbo-samples-shop-user/pom.xml
+++ b/10-task/dubbo-samples-shop/dubbo-samples-shop-user/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
diff --git a/10-task/pom.xml b/10-task/pom.xml
index 72626d7..4209117 100644
--- a/10-task/pom.xml
+++ b/10-task/pom.xml
@@ -30,7 +30,8 @@
         <module>dubbo-samples-rpc-basic</module>
         <module>dubbo-samples-rpc-advanced</module>
         <module>dubbo-samples-shop</module>
+        <module>dubbo-samples-metrics-demo</module>
         <module>dubbo-samples-develop</module>
         <module>dubbo-samples-extensibility</module>
     </modules>
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/dubbo-samples-async-generated-future-springboot-consumer/pom.xml b/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/dubbo-samples-async-generated-future-springboot-consumer/pom.xml
index 1fd8c2c..224da49 100644
--- a/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/dubbo-samples-async-generated-future-springboot-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/dubbo-samples-async-generated-future-springboot-consumer/pom.xml
@@ -44,7 +44,7 @@
         <!-- zookeeper	-->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/pom.xml b/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/pom.xml
index cc38d7c..2d4f934 100644
--- a/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-sample-async-generated-future-springboot/pom.xml
@@ -37,7 +37,7 @@
     <description>Dubbo Samples Async Generated Future In SpringBoot</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future-springboot/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future-springboot/pom.xml
index dcbf164..637110b 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future-springboot/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future-springboot/pom.xml
@@ -39,7 +39,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
@@ -85,7 +85,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future/pom.xml
index d86cc85..43f01df 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-generated-future/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,12 +60,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -80,10 +89,46 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
+
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-onerror/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-onerror/pom.xml
index 04463ea..7f7ee6a 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-onerror/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-onerror/pom.xml
@@ -34,7 +34,7 @@
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <validation-api.version>1.1.0.Final</validation-api.version>
         <hibernate-validator.version>6.0.23.Final</hibernate-validator.version>
         <resteasy.version>3.0.19.Final</resteasy.version>
@@ -42,6 +42,7 @@
         <tomcat.version>7.0.88</tomcat.version>
         <servlet.version>3.0.1</servlet.version>
         <spring-boot.version>1.5.13.RELEASE</spring-boot.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
     </properties>
 
     <dependencyManagement>
@@ -62,11 +63,6 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
-                <groupId>io.netty</groupId>
-                <artifactId>netty-all</artifactId>
-                <version>4.1.56.Final</version>
-            </dependency>
-            <dependency>
                 <groupId>org.apache.dubbo</groupId>
                 <artifactId>dubbo-bom</artifactId>
                 <version>${dubbo.version}</version>
@@ -74,72 +70,31 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-bom</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo</artifactId>
-                <version>${dubbo.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.thrift</groupId>
-                        <artifactId>libthrift</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-rpc-rest</artifactId>
-                <version>${dubbo.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-configcenter-zookeeper</artifactId>
-                <version>${dubbo.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>javax.validation</groupId>
-                <artifactId>validation-api</artifactId>
-                <version>${validation-api.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.hibernate</groupId>
-                <artifactId>hibernate-validator</artifactId>
-                <version>${hibernate-validator.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.jboss.resteasy</groupId>
-                <artifactId>resteasy-jackson-provider</artifactId>
-                <version>${resteasy.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>${servlet.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tomcat.embed</groupId>
-                <artifactId>tomcat-embed-core</artifactId>
-                <version>${tomcat.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tomcat.embed</groupId>
-                <artifactId>tomcat-embed-logging-juli</artifactId>
-                <version>${tomcat.version}</version>
-            </dependency>
-            <!-- swagger -->
-            <dependency>
-                <groupId>io.swagger</groupId>
-                <artifactId>swagger-annotations</artifactId>
-                <version>${swagger.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>io.swagger</groupId>
-                <artifactId>swagger-jaxrs</artifactId>
-                <version>${swagger.version}</version>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -147,22 +102,13 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.apache.dubbo</groupId>-->
-<!--            <artifactId>dubbo-configcenter-zookeeper</artifactId>-->
-<!--            <version>${dubbo.version}</version>-->
-<!--        </dependency>-->
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-all</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
@@ -184,6 +130,41 @@
             <scope>test</scope>
         </dependency>
 
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
 
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-original-future/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-original-future/pom.xml
index da60eab..d5d6e09 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-original-future/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-original-future/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,12 +60,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -80,7 +89,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -95,6 +104,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/case-configuration.yml b/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/case-configuration.yml
index d88fa20..3c87b81 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/case-configuration.yml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/case-configuration.yml
@@ -22,7 +22,6 @@
   zookeeper_port: 2181
   dubbo_port: 20880
 
-
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/pom.xml
index 27fc382..252a07a 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-provider/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,12 +60,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -80,7 +89,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -95,6 +104,41 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-simple-boot/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-simple-boot/pom.xml
index 2fdb409..c50367f 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-simple-boot/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-simple-boot/pom.xml
@@ -42,7 +42,7 @@
     </modules>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
@@ -106,4 +106,4 @@
             </plugins>
         </pluginManagement>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-async/dubbo-samples-async-simple/pom.xml b/2-advanced/dubbo-samples-async/dubbo-samples-async-simple/pom.xml
index e9ad71e..7eea04f 100644
--- a/2-advanced/dubbo-samples-async/dubbo-samples-async-simple/pom.xml
+++ b/2-advanced/dubbo-samples-async/dubbo-samples-async-simple/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -58,8 +59,16 @@
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -80,7 +89,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -95,6 +104,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-consumer/pom.xml b/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-consumer/pom.xml
index 171bb12..c6e2633 100644
--- a/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-consumer/pom.xml
@@ -35,7 +35,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-provider/pom.xml b/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-provider/pom.xml
index b6a3a08..98799b8 100644
--- a/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-provider/pom.xml
+++ b/2-advanced/dubbo-samples-attachment/dubbo-samples-attachment-provider/pom.xml
@@ -42,7 +42,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-attachment/pom.xml b/2-advanced/dubbo-samples-attachment/pom.xml
index 34dfc0b..0c8de62 100644
--- a/2-advanced/dubbo-samples-attachment/pom.xml
+++ b/2-advanced/dubbo-samples-attachment/pom.xml
@@ -37,7 +37,7 @@
     <description>Dubbo Samples Attachment</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
@@ -71,7 +71,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/2-advanced/dubbo-samples-autowire/dubbo-samples-autowire-consumer/pom.xml b/2-advanced/dubbo-samples-autowire/dubbo-samples-autowire-consumer/pom.xml
index 870f355..5d3b2f6 100644
--- a/2-advanced/dubbo-samples-autowire/dubbo-samples-autowire-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-autowire/dubbo-samples-autowire-consumer/pom.xml
@@ -41,7 +41,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-autowire/pom.xml b/2-advanced/dubbo-samples-autowire/pom.xml
index c86f6b3..696b599 100644
--- a/2-advanced/dubbo-samples-autowire/pom.xml
+++ b/2-advanced/dubbo-samples-autowire/pom.xml
@@ -44,7 +44,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <junit.version>4.13.1</junit.version>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/2-advanced/dubbo-samples-cache/dubbo-samples-cache-consumer/pom.xml b/2-advanced/dubbo-samples-cache/dubbo-samples-cache-consumer/pom.xml
index 0a66d02..3f8e09d 100644
--- a/2-advanced/dubbo-samples-cache/dubbo-samples-cache-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-cache/dubbo-samples-cache-consumer/pom.xml
@@ -34,7 +34,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-cache/dubbo-samples-cache-provider/pom.xml b/2-advanced/dubbo-samples-cache/dubbo-samples-cache-provider/pom.xml
index 3547931..229b29e 100644
--- a/2-advanced/dubbo-samples-cache/dubbo-samples-cache-provider/pom.xml
+++ b/2-advanced/dubbo-samples-cache/dubbo-samples-cache-provider/pom.xml
@@ -42,7 +42,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-cache/pom.xml b/2-advanced/dubbo-samples-cache/pom.xml
index 2b8b3c3..49e5747 100644
--- a/2-advanced/dubbo-samples-cache/pom.xml
+++ b/2-advanced/dubbo-samples-cache/pom.xml
@@ -37,7 +37,7 @@
     <description>Dubbo Samples Cache</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
@@ -71,7 +71,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/2-advanced/dubbo-samples-callback/dubbo-samples-callback-consumer/pom.xml b/2-advanced/dubbo-samples-callback/dubbo-samples-callback-consumer/pom.xml
index 621c90a..78246e2 100644
--- a/2-advanced/dubbo-samples-callback/dubbo-samples-callback-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-callback/dubbo-samples-callback-consumer/pom.xml
@@ -39,7 +39,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-callback/dubbo-samples-callback-provider/pom.xml b/2-advanced/dubbo-samples-callback/dubbo-samples-callback-provider/pom.xml
index 05d9d49..210760c 100644
--- a/2-advanced/dubbo-samples-callback/dubbo-samples-callback-provider/pom.xml
+++ b/2-advanced/dubbo-samples-callback/dubbo-samples-callback-provider/pom.xml
@@ -40,7 +40,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-callback/pom.xml b/2-advanced/dubbo-samples-callback/pom.xml
index caad8f9..da93df3 100644
--- a/2-advanced/dubbo-samples-callback/pom.xml
+++ b/2-advanced/dubbo-samples-callback/pom.xml
@@ -36,7 +36,7 @@
     <description>Dubbo Samples Callback</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
@@ -68,7 +68,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
                 <exclusions>
diff --git a/2-advanced/dubbo-samples-chain/pom.xml b/2-advanced/dubbo-samples-chain/pom.xml
index 41ccc77..914a5ba 100644
--- a/2-advanced/dubbo-samples-chain/pom.xml
+++ b/2-advanced/dubbo-samples-chain/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -64,7 +64,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -79,7 +79,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-cloud-native/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml b/2-advanced/dubbo-samples-cloud-native/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml
index 37a43c8..9503c22 100644
--- a/2-advanced/dubbo-samples-cloud-native/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml
@@ -86,6 +86,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -95,6 +96,7 @@
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
     </dependencies>
 
diff --git a/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/pom.xml b/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/pom.xml
index 51c5dd4..9049f0f 100644
--- a/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/pom.xml
@@ -42,7 +42,7 @@
         <target.level>1.8</target.level>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -63,6 +63,13 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-bom</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>com.google.guava</groupId>
                 <artifactId>guava</artifactId>
                 <version>27.1-jre</version>
diff --git a/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/servicediscovery-provider/pom.xml b/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/servicediscovery-provider/pom.xml
index 8e68f06..5f402e0 100644
--- a/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/servicediscovery-provider/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/servicediscovery-provider/pom.xml
@@ -85,6 +85,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -94,6 +95,7 @@
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
     </dependencies>
 
diff --git a/2-advanced/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/pom.xml b/2-advanced/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/pom.xml
index 27e9698..dda215f 100644
--- a/2-advanced/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/pom.xml
@@ -38,7 +38,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -63,7 +63,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -78,7 +78,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -127,4 +127,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-cloud-native/sc-call-dubbo/sc-dubbo-provider/pom.xml b/2-advanced/dubbo-samples-cloud-native/sc-call-dubbo/sc-dubbo-provider/pom.xml
index 5d00b5a..ad3906e 100644
--- a/2-advanced/dubbo-samples-cloud-native/sc-call-dubbo/sc-dubbo-provider/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/sc-call-dubbo/sc-dubbo-provider/pom.xml
@@ -98,6 +98,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -107,6 +108,7 @@
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
     </dependencies>
 
diff --git a/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/pom.xml b/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/pom.xml
index 1494d1d..d1ebf3e 100644
--- a/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/pom.xml
@@ -43,7 +43,7 @@
         <target.level>1.8</target.level>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -64,6 +64,12 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
                 <groupId>com.google.guava</groupId>
                 <artifactId>guava</artifactId>
                 <version>27.1-jre</version>
@@ -78,7 +84,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider-instance/pom.xml b/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider-instance/pom.xml
index fd576ac..5fab5ae 100644
--- a/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider-instance/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider-instance/pom.xml
@@ -41,6 +41,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -50,6 +51,7 @@
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
     </dependencies>
 
diff --git a/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml b/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml
index 656c5c2..18ee292 100644
--- a/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml
+++ b/2-advanced/dubbo-samples-cloud-native/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml
@@ -41,6 +41,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -50,6 +51,7 @@
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
     </dependencies>
 
diff --git a/2-advanced/dubbo-samples-compatible/pom.xml b/2-advanced/dubbo-samples-compatible/pom.xml
index 93d2d50..dcde397 100644
--- a/2-advanced/dubbo-samples-compatible/pom.xml
+++ b/2-advanced/dubbo-samples-compatible/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -57,10 +58,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -72,7 +80,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -88,6 +96,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-context/pom.xml b/2-advanced/dubbo-samples-context/pom.xml
index 0eecebb..b91a67c 100644
--- a/2-advanced/dubbo-samples-context/pom.xml
+++ b/2-advanced/dubbo-samples-context/pom.xml
@@ -30,9 +30,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -54,10 +55,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -69,7 +77,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -87,6 +95,41 @@
         </dependency>
 
 
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-direct/pom.xml b/2-advanced/dubbo-samples-direct/pom.xml
index 393df29..10d6dfc 100644
--- a/2-advanced/dubbo-samples-direct/pom.xml
+++ b/2-advanced/dubbo-samples-direct/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -54,7 +54,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -69,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-docker/pom.xml b/2-advanced/dubbo-samples-docker/pom.xml
index 5fb4748..e3e101f 100644
--- a/2-advanced/dubbo-samples-docker/pom.xml
+++ b/2-advanced/dubbo-samples-docker/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>1.5.21.RELEASE</spring-boot.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -55,7 +55,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -69,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-echo/dubbo-samples-echo-consumer/pom.xml b/2-advanced/dubbo-samples-echo/dubbo-samples-echo-consumer/pom.xml
index 54dd17f..c63baf4 100644
--- a/2-advanced/dubbo-samples-echo/dubbo-samples-echo-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-echo/dubbo-samples-echo-consumer/pom.xml
@@ -42,7 +42,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -105,4 +105,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-echo/dubbo-samples-echo-provider/pom.xml b/2-advanced/dubbo-samples-echo/dubbo-samples-echo-provider/pom.xml
index d270154..278df52 100644
--- a/2-advanced/dubbo-samples-echo/dubbo-samples-echo-provider/pom.xml
+++ b/2-advanced/dubbo-samples-echo/dubbo-samples-echo-provider/pom.xml
@@ -26,9 +26,6 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>dubbo-samples-echo-provider</artifactId>
-    <properties>
-        <zookeeper.version>3.8.0</zookeeper.version>
-    </properties>
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -43,7 +40,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -64,52 +61,6 @@
             <artifactId>spring-boot-starter-test</artifactId>
         </dependency>
 
-        <!-- The following dependency registries need -->
-        <dependency>
-            <groupId>org.apache.zookeeper</groupId>
-            <artifactId>zookeeper</artifactId>
-            <version>${zookeeper.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>netty-handler</artifactId>
-                    <groupId>io.netty</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>netty-transport-native-epoll</artifactId>
-                    <groupId>io.netty</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>commons-cli</groupId>
-            <artifactId>commons-cli</artifactId>
-            <version>1.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-server</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>jline</groupId>
-            <artifactId>jline</artifactId>
-            <version>2.14.6</version>
-        </dependency>
-        <dependency>
-            <groupId>io.dropwizard.metrics</groupId>
-            <artifactId>metrics-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.xerial.snappy</groupId>
-            <artifactId>snappy-java</artifactId>
-        </dependency>
     </dependencies>
 
     <profiles>
@@ -145,4 +96,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-echo/pom.xml b/2-advanced/dubbo-samples-echo/pom.xml
index a5f31a7..4460295 100644
--- a/2-advanced/dubbo-samples-echo/pom.xml
+++ b/2-advanced/dubbo-samples-echo/pom.xml
@@ -34,10 +34,10 @@
     <description>Dubbo Samples Echo</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>2.7.8</spring-boot.version>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
@@ -63,7 +63,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -90,4 +90,4 @@
         </pluginManagement>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-environment-keys/pom.xml b/2-advanced/dubbo-samples-environment-keys/pom.xml
index 91aff74..6a9d9e2 100644
--- a/2-advanced/dubbo-samples-environment-keys/pom.xml
+++ b/2-advanced/dubbo-samples-environment-keys/pom.xml
@@ -30,8 +30,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <spring.version>4.3.29.RELEASE</spring.version>
     </properties>
 
@@ -53,11 +54,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -73,7 +81,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -88,6 +96,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-consumer/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-consumer/pom.xml
index d441e93..4e42aae 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-consumer/pom.xml
@@ -40,7 +40,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-provider/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-provider/pom.xml
index e75b9f5..2fecc3b 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-provider/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/dubbo-samples-generic-call-provider/pom.xml
@@ -46,7 +46,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/pom.xml
index 9357dbd..d64337f 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-call/pom.xml
@@ -37,7 +37,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
@@ -67,7 +67,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-consumer/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-consumer/pom.xml
index 3280796..679aff1 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-consumer/pom.xml
@@ -46,7 +46,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-provider/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-provider/pom.xml
index c1b4ef7..6694891 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-provider/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/dubbo-samples-generic-impl-provider/pom.xml
@@ -40,7 +40,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -62,6 +62,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
 </project>
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/pom.xml
index b10635f..6effa0a 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-impl/pom.xml
@@ -36,9 +36,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -60,11 +61,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
diff --git a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-type/pom.xml b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-type/pom.xml
index e80bb18..f3fce39 100644
--- a/2-advanced/dubbo-samples-generic/dubbo-samples-generic-type/pom.xml
+++ b/2-advanced/dubbo-samples-generic/dubbo-samples-generic-type/pom.xml
@@ -35,9 +35,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,10 +60,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -74,7 +82,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -90,6 +98,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-group/pom.xml b/2-advanced/dubbo-samples-group/pom.xml
index ca9b1f5..3cb8bcd 100644
--- a/2-advanced/dubbo-samples-group/pom.xml
+++ b/2-advanced/dubbo-samples-group/pom.xml
@@ -31,9 +31,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -55,10 +56,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -70,7 +78,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -86,6 +94,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-local/pom.xml b/2-advanced/dubbo-samples-local/pom.xml
index 4712d95..442744a 100644
--- a/2-advanced/dubbo-samples-local/pom.xml
+++ b/2-advanced/dubbo-samples-local/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -54,7 +54,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -69,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer1/pom.xml b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer1/pom.xml
index 13dbe02..13faf92 100644
--- a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer1/pom.xml
+++ b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer1/pom.xml
@@ -53,7 +53,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer2/pom.xml b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer2/pom.xml
index f7ca289..9399554 100644
--- a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer2/pom.xml
+++ b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-consumer2/pom.xml
@@ -41,7 +41,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider1/pom.xml b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider1/pom.xml
index a5448bc..ab4f8db 100644
--- a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider1/pom.xml
+++ b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider1/pom.xml
@@ -56,7 +56,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider2/pom.xml b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider2/pom.xml
index d4d56f4..24ed349 100644
--- a/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider2/pom.xml
+++ b/2-advanced/dubbo-samples-merge/dubbo-samples-merge-provider2/pom.xml
@@ -57,7 +57,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/2-advanced/dubbo-samples-merge/pom.xml b/2-advanced/dubbo-samples-merge/pom.xml
index dc2fadb..d67f2c0 100644
--- a/2-advanced/dubbo-samples-merge/pom.xml
+++ b/2-advanced/dubbo-samples-merge/pom.xml
@@ -46,7 +46,7 @@
 
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <spring-boot.version>2.7.8</spring-boot.version>
@@ -82,7 +82,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/2-advanced/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml b/2-advanced/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml
index 4dc2e97..645fb31 100644
--- a/2-advanced/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml
+++ b/2-advanced/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml
@@ -19,16 +19,16 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    
+
     <modelVersion>4.0.0</modelVersion>
-    
+
     <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-samples-migration-api</artifactId>
     <version>1.0-SNAPSHOT</version>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml b/2-advanced/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml
index be1d5fe..8d9d23f 100644
--- a/2-advanced/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml
@@ -24,7 +24,7 @@
     <groupId>org.example</groupId>
     <artifactId>dubbo-samples-migration-consumer</artifactId>
     <version>1.0-SNAPSHOT</version>
-    
+
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
@@ -65,12 +65,12 @@
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
         </dependency>
-    
+
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java</artifactId>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-dependencies-zookeeper</artifactId>
@@ -107,4 +107,4 @@
             </dependencies>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml b/2-advanced/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml
index 8435769..c220181 100644
--- a/2-advanced/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml
+++ b/2-advanced/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml
@@ -46,7 +46,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.provider.version}</version>
                 <type>pom</type>
             </dependency>
@@ -65,15 +65,15 @@
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
         </dependency>
-    
+
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java</artifactId>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -100,4 +100,4 @@
             </dependencies>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-mock/pom.xml b/2-advanced/dubbo-samples-mock/pom.xml
index 099a9f8..d661278 100644
--- a/2-advanced/dubbo-samples-mock/pom.xml
+++ b/2-advanced/dubbo-samples-mock/pom.xml
@@ -32,8 +32,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <spring.version>4.3.29.RELEASE</spring.version>
     </properties>
 
@@ -55,11 +56,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>1.7.25</version>
@@ -79,7 +87,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
@@ -96,6 +104,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <build>
diff --git a/2-advanced/dubbo-samples-notify/dubbo-samples-notify-consumer/pom.xml b/2-advanced/dubbo-samples-notify/dubbo-samples-notify-consumer/pom.xml
index 8c995d4..29cca9f 100644
--- a/2-advanced/dubbo-samples-notify/dubbo-samples-notify-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-notify/dubbo-samples-notify-consumer/pom.xml
@@ -39,7 +39,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -78,4 +78,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-notify/pom.xml b/2-advanced/dubbo-samples-notify/pom.xml
index bdbc607..ee243bc 100644
--- a/2-advanced/dubbo-samples-notify/pom.xml
+++ b/2-advanced/dubbo-samples-notify/pom.xml
@@ -37,7 +37,7 @@
     <description>Dubbo Samples Notify</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
         <maven.compiler.source>1.8</maven.compiler.source>
@@ -105,4 +105,4 @@
             </plugins>
         </pluginManagement>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-rpccontext/pom.xml b/2-advanced/dubbo-samples-rpccontext/pom.xml
index 0d48f9c..961dcfe 100644
--- a/2-advanced/dubbo-samples-rpccontext/pom.xml
+++ b/2-advanced/dubbo-samples-rpccontext/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -54,7 +54,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -69,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-scala/pom.xml b/2-advanced/dubbo-samples-scala/pom.xml
index ab5a1ac..544d39b 100644
--- a/2-advanced/dubbo-samples-scala/pom.xml
+++ b/2-advanced/dubbo-samples-scala/pom.xml
@@ -32,8 +32,9 @@
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <scala.version>2.12.5</scala.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -60,9 +61,23 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-bom</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
@@ -100,7 +115,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
@@ -123,6 +138,43 @@
             <groupId>org.scala-lang</groupId>
             <artifactId>scala-library</artifactId>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <build>
diff --git a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-account/pom.xml b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-account/pom.xml
index c5395e3..a48bd6d 100644
--- a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-account/pom.xml
+++ b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-account/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
         <seata.version>1.6.1</seata.version>
         <druid.version>1.2.15</druid.version>
@@ -143,4 +143,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-business/pom.xml b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-business/pom.xml
index 974ab81..4b7dd87 100644
--- a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-business/pom.xml
+++ b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-business/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
         <seata.version>1.6.1</seata.version>
         <druid.version>1.2.15</druid.version>
@@ -147,4 +147,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-order/pom.xml b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-order/pom.xml
index 9afabb1..924a811 100644
--- a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-order/pom.xml
+++ b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-order/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
         <seata.version>1.6.1</seata.version>
         <druid.version>1.2.15</druid.version>
@@ -142,4 +142,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-storage/pom.xml b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-storage/pom.xml
index 89b8b74..b3056f4 100644
--- a/2-advanced/dubbo-samples-seata/dubbo-samples-seata-storage/pom.xml
+++ b/2-advanced/dubbo-samples-seata/dubbo-samples-seata-storage/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
         <seata.version>1.6.1</seata.version>
         <druid.version>1.2.15</druid.version>
@@ -142,4 +142,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-spi-compatible/pom.xml b/2-advanced/dubbo-samples-spi-compatible/pom.xml
index 9f546e5..18adc9a 100644
--- a/2-advanced/dubbo-samples-spi-compatible/pom.xml
+++ b/2-advanced/dubbo-samples-spi-compatible/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -54,7 +54,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -70,7 +70,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-spring-security/pom.xml b/2-advanced/dubbo-samples-spring-security/pom.xml
index a69bf67..7682533 100644
--- a/2-advanced/dubbo-samples-spring-security/pom.xml
+++ b/2-advanced/dubbo-samples-spring-security/pom.xml
@@ -34,7 +34,7 @@
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
         <spring-boot.version>2.7.8</spring-boot.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <dubbo.dependencies.version>3.2.0-beta.6</dubbo.dependencies.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -60,7 +60,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -76,7 +76,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/2-advanced/dubbo-samples-stub/dubbo-samples-stub-consumer/pom.xml b/2-advanced/dubbo-samples-stub/dubbo-samples-stub-consumer/pom.xml
index 905792d..520fe54 100644
--- a/2-advanced/dubbo-samples-stub/dubbo-samples-stub-consumer/pom.xml
+++ b/2-advanced/dubbo-samples-stub/dubbo-samples-stub-consumer/pom.xml
@@ -60,7 +60,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -91,4 +91,4 @@
 <!--            </plugin>-->
 <!--        </plugins>-->
 <!--    </build>-->
-</project>
\ No newline at end of file
+</project>
diff --git a/2-advanced/dubbo-samples-stub/pom.xml b/2-advanced/dubbo-samples-stub/pom.xml
index b2b2b39..c8ca0a7 100644
--- a/2-advanced/dubbo-samples-stub/pom.xml
+++ b/2-advanced/dubbo-samples-stub/pom.xml
@@ -47,7 +47,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <junit.version>4.13.1</junit.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>2.7.8</spring-boot.version>
     </properties>
 
@@ -71,7 +71,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/2-advanced/dubbo-samples-tengine/dubbo-samples-tengine-provider/pom.xml b/2-advanced/dubbo-samples-tengine/dubbo-samples-tengine-provider/pom.xml
index 485134e..f10ac89 100644
--- a/2-advanced/dubbo-samples-tengine/dubbo-samples-tengine-provider/pom.xml
+++ b/2-advanced/dubbo-samples-tengine/dubbo-samples-tengine-provider/pom.xml
@@ -31,7 +31,7 @@
     <description>The demo provider module of dubbo tengine</description>
     <properties>
         <maven.deploy.skip>true</maven.deploy.skip>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
     </properties>
 
     <dependencies>
diff --git a/2-advanced/dubbo-samples-tengine/pom.xml b/2-advanced/dubbo-samples-tengine/pom.xml
index 02daefd..9f44cb3 100644
--- a/2-advanced/dubbo-samples-tengine/pom.xml
+++ b/2-advanced/dubbo-samples-tengine/pom.xml
@@ -25,7 +25,7 @@
     <description>The demo module of tengine dubbo</description>
     <properties>
         <maven.deploy.skip>true</maven.deploy.skip>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>2.1.5.RELEASE</spring-boot.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
diff --git a/2-advanced/dubbo-samples-validation/pom.xml b/2-advanced/dubbo-samples-validation/pom.xml
index 72223cc..a8184d1 100644
--- a/2-advanced/dubbo-samples-validation/pom.xml
+++ b/2-advanced/dubbo-samples-validation/pom.xml
@@ -31,12 +31,13 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <validation.api.version>2.0.1.Final</validation.api.version>
         <hibernate.validator.version>6.1.2.Final</hibernate.validator.version>
         <javax.el.version>3.0.0</javax.el.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -58,10 +59,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -73,7 +81,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -107,6 +115,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/2-advanced/dubbo-samples-version/pom.xml b/2-advanced/dubbo-samples-version/pom.xml
index c22fece..c8e9e00 100644
--- a/2-advanced/dubbo-samples-version/pom.xml
+++ b/2-advanced/dubbo-samples-version/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -55,7 +55,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -70,7 +70,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-annotation/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-annotation/pom.xml
index 3242003..fd6d097 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-annotation/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-annotation/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,12 +60,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -80,7 +89,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -95,6 +104,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-api/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-api/pom.xml
index a692f94..2d20efe 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-api/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-api/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -57,7 +57,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -78,7 +78,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-apollo/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-apollo/pom.xml
index 514a1da..254307c 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-apollo/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-apollo/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <apollo.version>2.0.0</apollo.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -80,7 +80,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-externalconfiguration/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-externalconfiguration/pom.xml
index 5b698a8..932934e 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-externalconfiguration/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-externalconfiguration/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring-boot.version>1.5.21.RELEASE</spring-boot.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,12 +60,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -80,7 +89,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -106,6 +115,42 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-multi-registries/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-multi-registries/pom.xml
index eeaa235..8a572a4 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-multi-registries/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-multi-registries/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -80,7 +80,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-multiprotocol/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-multiprotocol/pom.xml
index 4640ade..aa9a55a 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-multiprotocol/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-multiprotocol/pom.xml
@@ -33,11 +33,12 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <hessian.version>4.0.63</hessian.version>
         <jetty.version>9.4.11.v20180605</jetty.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -61,12 +62,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -100,7 +109,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -130,6 +139,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/configcenter/dubbo-samples-configcenter-xml/pom.xml b/3-extensions/configcenter/dubbo-samples-configcenter-xml/pom.xml
index 4ee0d04..7df9b0c 100644
--- a/3-extensions/configcenter/dubbo-samples-configcenter-xml/pom.xml
+++ b/3-extensions/configcenter/dubbo-samples-configcenter-xml/pom.xml
@@ -33,9 +33,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -59,12 +60,20 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -80,7 +89,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -95,6 +104,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-original/pom.xml b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-original/pom.xml
index 08af05e..e72965a 100644
--- a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-original/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-original/pom.xml
@@ -32,6 +32,7 @@
         <dubbo.version>3.1.6</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <grpc.version>1.34.1</grpc.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <compiler.version>0.0.1</compiler.version>
     </properties>
 
@@ -60,11 +61,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -111,7 +119,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -127,6 +135,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-reactor/pom.xml b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-reactor/pom.xml
index 27864fd..5a168e9 100644
--- a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-reactor/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-reactor/pom.xml
@@ -28,10 +28,11 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <grpc.version>1.31.1</grpc.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <compiler.version>0.0.1</compiler.version>
     </properties>
 
@@ -55,11 +56,18 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
 
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -116,7 +124,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -132,6 +140,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <build>
diff --git a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-rxjava/pom.xml b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-rxjava/pom.xml
index ced5aaf..9e91e59 100644
--- a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-rxjava/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-rxjava/pom.xml
@@ -28,7 +28,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-test.version>4.3.29.RELEASE</spring-test.version>
         <docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
@@ -86,7 +86,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
         </dependency>
diff --git a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-consumer/pom.xml b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-consumer/pom.xml
index 1172e49..eb191b4 100644
--- a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-consumer/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-consumer/pom.xml
@@ -28,7 +28,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-test.version>4.3.29.RELEASE</spring-test.version>
         <docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
@@ -79,7 +79,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
         </dependency>
diff --git a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-provider/pom.xml b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-provider/pom.xml
index abee6ea..93c5165 100644
--- a/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-provider/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-grpc/dubbo-samples-ssl/dubbo-samples-grpc-ssl-provider/pom.xml
@@ -28,7 +28,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-test.version>4.3.29.RELEASE</spring-test.version>
         <docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
@@ -79,7 +79,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
         </dependency>
diff --git a/3-extensions/protocol/dubbo-samples-jetty/pom.xml b/3-extensions/protocol/dubbo-samples-jetty/pom.xml
index 10ecad7..0bc4e21 100644
--- a/3-extensions/protocol/dubbo-samples-jetty/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-jetty/pom.xml
@@ -30,7 +30,7 @@
     <source.level>1.8</source.level>
     <target.level>1.8</target.level>
     <spring.version>4.3.29.RELEASE</spring.version>
-    <dubbo.version>3.1.6</dubbo.version>
+    <dubbo.version>3.2.0</dubbo.version>
     <zookeeper.version>3.4.13</zookeeper.version>
     <curator.version>4.0.1</curator.version>
     <validation-api.version>1.1.0.Final</validation-api.version>
@@ -212,7 +212,7 @@
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-server</artifactId>
-      <version>9.4.11.v20180605</version>
+      <version>10.0.14</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
diff --git a/3-extensions/protocol/dubbo-samples-port-unification/pom.xml b/3-extensions/protocol/dubbo-samples-port-unification/pom.xml
index cad587a..0189b38 100644
--- a/3-extensions/protocol/dubbo-samples-port-unification/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-port-unification/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
@@ -52,7 +52,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -68,7 +68,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <version>${dubbo.version}</version>
         </dependency>
diff --git a/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml b/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml
index 12262cd..94a497e 100644
--- a/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml
@@ -32,7 +32,7 @@
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <zookeeper.version>3.4.13</zookeeper.version>
         <curator.version>4.0.1</curator.version>
         <validation-api.version>1.1.0.Final</validation-api.version>
diff --git a/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/pom.xml b/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/pom.xml
index 1e3e91b..04c0d5e 100644
--- a/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/pom.xml
@@ -33,7 +33,7 @@
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <zookeeper.version>3.4.13</zookeeper.version>
         <curator.version>4.0.1</curator.version>
         <validation-api.version>1.1.0.Final</validation-api.version>
diff --git a/3-extensions/protocol/dubbo-samples-rest/pom.xml b/3-extensions/protocol/dubbo-samples-rest/pom.xml
index ec81521..506539f 100644
--- a/3-extensions/protocol/dubbo-samples-rest/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-rest/pom.xml
@@ -32,11 +32,12 @@
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <validation-api.version>1.1.0.Final</validation-api.version>
         <hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
         <swagger.version>1.5.19</swagger.version>
         <tomcat.version>8.0.53</tomcat.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <spring-boot.version>1.5.13.RELEASE</spring-boot.version>
     </properties>
 
@@ -66,9 +67,23 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-bom</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
             <dependency>
                 <groupId>javax.validation</groupId>
@@ -111,7 +126,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -121,14 +136,6 @@
             </exclusions>
         </dependency>
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-zookeeper</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-all</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
         </dependency>
@@ -200,6 +207,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <build>
diff --git a/3-extensions/protocol/dubbo-samples-rocketmq/pom.xml b/3-extensions/protocol/dubbo-samples-rocketmq/pom.xml
index 7a69dd6..a8ab54a 100644
--- a/3-extensions/protocol/dubbo-samples-rocketmq/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-rocketmq/pom.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	You under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+	license agreements. See the NOTICE file distributed with this work for additional
+	information regarding copyright ownership. The ASF licenses this file to
+	You under the Apache License, Version 2.0 (the "License"); you may not use
+	this file except in compliance with the License. You may obtain a copy of
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+	by applicable law or agreed to in writing, software distributed under the
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+	OF ANY KIND, either express or implied. See the License for the specific
 	language governing permissions and limitations under the License. -->
 <project
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -30,7 +30,7 @@
 
     <properties>
         <spring.version>4.3.29.RELEASE</spring.version>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <validation-api.version>1.1.0.Final</validation-api.version>
         <hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
         <swagger.version>1.5.19</swagger.version>
diff --git a/3-extensions/protocol/dubbo-samples-triple-reactor/pom.xml b/3-extensions/protocol/dubbo-samples-triple-reactor/pom.xml
index 123bb96..ba2cbd6 100644
--- a/3-extensions/protocol/dubbo-samples-triple-reactor/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-triple-reactor/pom.xml
@@ -37,7 +37,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.7</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <reactive.version>1.0.4</reactive.version>
         <reactor.version>3.4.19</reactor.version>
         <protoc.version>3.19.4</protoc.version>
diff --git a/3-extensions/protocol/dubbo-samples-triple/pom.xml b/3-extensions/protocol/dubbo-samples-triple/pom.xml
index b2d406f..308a4b9 100644
--- a/3-extensions/protocol/dubbo-samples-triple/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-triple/pom.xml
@@ -37,7 +37,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.7</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <grpc.version>1.44.1</grpc.version>
         <junit.version>4.13.1</junit.version>
         <spring-test.version>4.3.29.RELEASE</spring-test.version>
diff --git a/3-extensions/protocol/dubbo-samples-triple/src/main/resources/security/serialize.allowlist b/3-extensions/protocol/dubbo-samples-triple/src/main/resources/security/serialize.allowlist
new file mode 100644
index 0000000..f08a259
--- /dev/null
+++ b/3-extensions/protocol/dubbo-samples-triple/src/main/resources/security/serialize.allowlist
@@ -0,0 +1,19 @@
+#
+#
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#
+org.apache.dubbo.sample.tri.api.ChildPojo
diff --git a/3-extensions/protocol/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml b/3-extensions/protocol/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml
index 74d0ac8..a42198e 100644
--- a/3-extensions/protocol/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml
+++ b/3-extensions/protocol/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml
@@ -43,4 +43,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-consumer/pom.xml b/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-consumer/pom.xml
index 27f99ba..13ae754 100644
--- a/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-consumer/pom.xml
+++ b/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-consumer/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.0</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -154,4 +154,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-provider/pom.xml b/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-provider/pom.xml
index ff67898..7a947da 100644
--- a/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-provider/pom.xml
+++ b/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-apiserver-provider/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.0</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -179,4 +179,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-kubernetes-dns/pom.xml b/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-kubernetes-dns/pom.xml
index 240c521..c427aac 100644
--- a/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-kubernetes-dns/pom.xml
+++ b/3-extensions/registry/dubbo-samples-kubernetes/dubbo-samples-kubernetes-dns/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -171,4 +171,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-consumer/pom.xml b/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-consumer/pom.xml
index a47b56a..f0f5da7 100644
--- a/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-consumer/pom.xml
+++ b/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-consumer/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.5</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -241,4 +241,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-provider/pom.xml b/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-provider/pom.xml
index 58a4d14..a716a4c 100644
--- a/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-provider/pom.xml
+++ b/3-extensions/registry/dubbo-samples-mesh-k8s/dubbo-samples-mesh-provider/pom.xml
@@ -28,7 +28,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.5</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <grpc.version>1.31.1</grpc.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
@@ -240,4 +240,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-multi-registry/pom.xml b/3-extensions/registry/dubbo-samples-multi-registry/pom.xml
index 4871d6c..351d62e 100644
--- a/3-extensions/registry/dubbo-samples-multi-registry/pom.xml
+++ b/3-extensions/registry/dubbo-samples-multi-registry/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -57,7 +57,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -78,7 +78,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-conditionrouter/pom.xml b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-conditionrouter/pom.xml
index 5c32526..e6506d6 100644
--- a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-conditionrouter/pom.xml
+++ b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-conditionrouter/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <slf4j.version>1.7.25</slf4j.version>
@@ -58,7 +58,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -108,6 +108,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-configcenter/pom.xml b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-configcenter/pom.xml
index 02f4a56..8deb281 100644
--- a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-configcenter/pom.xml
+++ b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-configcenter/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <alibaba_spring_context_support_version>1.0.11</alibaba_spring_context_support_version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -119,6 +119,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-group/pom.xml b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-group/pom.xml
index 9b9d46c..4962bb9 100644
--- a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-group/pom.xml
+++ b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-group/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <slf4j.version>1.7.25</slf4j.version>
@@ -58,7 +58,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -107,6 +107,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-override/pom.xml b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-override/pom.xml
index 6a6d680..a2c1c5b 100644
--- a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-override/pom.xml
+++ b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-override/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <slf4j.version>1.7.25</slf4j.version>
@@ -58,7 +58,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -108,6 +108,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-registry/pom.xml b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-registry/pom.xml
index a14b102..670178c 100644
--- a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-registry/pom.xml
+++ b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-registry/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <slf4j.version>1.7.25</slf4j.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -116,6 +116,18 @@
             <groupId>com.alibaba.nacos</groupId>
             <artifactId>nacos-client</artifactId>
             <version>${nacos.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>simpleclient</artifactId>
+                    <groupId>io.prometheus</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <artifactId>simpleclient</artifactId>
+            <groupId>io.prometheus</groupId>
+            <version>0.16.0</version>
         </dependency>
 
         <dependency>
@@ -127,6 +139,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-tagrouter/pom.xml b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-tagrouter/pom.xml
index 903bf4b..5d636a7 100644
--- a/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-tagrouter/pom.xml
+++ b/3-extensions/registry/dubbo-samples-nacos/dubbo-samples-nacos-tagrouter/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <slf4j.version>1.7.25</slf4j.version>
@@ -57,7 +57,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -107,6 +107,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-annotation/pom.xml b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-annotation/pom.xml
index f1bd5d1..6b7d56e 100644
--- a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-annotation/pom.xml
+++ b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-annotation/pom.xml
@@ -32,8 +32,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -55,11 +56,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -74,7 +82,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -89,6 +97,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-nosimple/pom.xml b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-nosimple/pom.xml
index 14178c6..36ff02d 100644
--- a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-nosimple/pom.xml
+++ b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-nosimple/pom.xml
@@ -32,8 +32,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -55,11 +56,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -75,7 +83,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -90,6 +98,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-properties/pom.xml b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-properties/pom.xml
index 3a64616..90db796 100644
--- a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-properties/pom.xml
+++ b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-properties/pom.xml
@@ -32,9 +32,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -55,8 +56,15 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -71,7 +79,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -87,6 +95,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-xml/pom.xml b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-xml/pom.xml
index ba1a37b..cb414de 100644
--- a/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-xml/pom.xml
+++ b/3-extensions/registry/dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-xml/pom.xml
@@ -32,8 +32,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -55,11 +56,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -75,7 +83,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -90,6 +98,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-consumer/pom.xml b/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-consumer/pom.xml
index b7e3527..ff34a26 100644
--- a/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-consumer/pom.xml
+++ b/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-consumer/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.0</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -237,4 +237,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-provider/pom.xml b/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-provider/pom.xml
index 3948942..c20b7fd 100644
--- a/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-provider/pom.xml
+++ b/3-extensions/registry/dubbo-samples-xds/dubbo-samples-xds-provider/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.0</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -234,4 +234,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/3-extensions/registry/dubbo-samples-zookeeper/pom.xml b/3-extensions/registry/dubbo-samples-zookeeper/pom.xml
index 52e1fef..e44a417 100644
--- a/3-extensions/registry/dubbo-samples-zookeeper/pom.xml
+++ b/3-extensions/registry/dubbo-samples-zookeeper/pom.xml
@@ -30,7 +30,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -54,7 +54,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -69,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/3-extensions/serialization/dubbo-samples-prefer-serialization/pom.xml b/3-extensions/serialization/dubbo-samples-prefer-serialization/pom.xml
index 211766f..26fb996 100644
--- a/3-extensions/serialization/dubbo-samples-prefer-serialization/pom.xml
+++ b/3-extensions/serialization/dubbo-samples-prefer-serialization/pom.xml
@@ -33,9 +33,10 @@
     <description>Dubbo Samples Prefer Serialization</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <slf4j-log4j12.version>1.7.25</slf4j-log4j12.version>
     </properties>
 
@@ -57,11 +58,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>${slf4j-log4j12.version}</version>
@@ -81,7 +89,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
@@ -94,6 +102,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <build>
diff --git a/3-extensions/serialization/dubbo-samples-serialization/dubbo-samples-serialization-java/pom.xml b/3-extensions/serialization/dubbo-samples-serialization/dubbo-samples-serialization-java/pom.xml
index cb237e9..f5e8809 100644
--- a/3-extensions/serialization/dubbo-samples-serialization/dubbo-samples-serialization-java/pom.xml
+++ b/3-extensions/serialization/dubbo-samples-serialization/dubbo-samples-serialization-java/pom.xml
@@ -37,8 +37,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <spring.version>4.3.29.RELEASE</spring.version>
     </properties>
 
@@ -60,11 +61,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>1.7.25</version>
@@ -84,7 +92,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
@@ -97,6 +105,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/4-governance/dubbo-samples-applevel-override/pom.xml b/4-governance/dubbo-samples-applevel-override/pom.xml
index bc77fba..6488334 100644
--- a/4-governance/dubbo-samples-applevel-override/pom.xml
+++ b/4-governance/dubbo-samples-applevel-override/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
@@ -60,7 +60,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -87,7 +87,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-configconditionrouter/pom.xml b/4-governance/dubbo-samples-configconditionrouter/pom.xml
index fbd9a70..f057661 100644
--- a/4-governance/dubbo-samples-configconditionrouter/pom.xml
+++ b/4-governance/dubbo-samples-configconditionrouter/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -80,7 +80,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-meshrule-router/pom.xml b/4-governance/dubbo-samples-meshrule-router/pom.xml
index a5c82c9..78df596 100644
--- a/4-governance/dubbo-samples-meshrule-router/pom.xml
+++ b/4-governance/dubbo-samples-meshrule-router/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -80,7 +80,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-metrics-prometheus/dubbo-samples-metrics-prometheus-consumer/pom.xml b/4-governance/dubbo-samples-metrics-prometheus/dubbo-samples-metrics-prometheus-consumer/pom.xml
index 66c01cf..09b58d7 100644
--- a/4-governance/dubbo-samples-metrics-prometheus/dubbo-samples-metrics-prometheus-consumer/pom.xml
+++ b/4-governance/dubbo-samples-metrics-prometheus/dubbo-samples-metrics-prometheus-consumer/pom.xml
@@ -35,7 +35,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/4-governance/dubbo-samples-metrics-prometheus/pom.xml b/4-governance/dubbo-samples-metrics-prometheus/pom.xml
index d09eda8..5f16746 100644
--- a/4-governance/dubbo-samples-metrics-prometheus/pom.xml
+++ b/4-governance/dubbo-samples-metrics-prometheus/pom.xml
@@ -43,7 +43,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.2.0</dubbo.version>
+        <dubbo.version>3.2.1</dubbo.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.7.8</spring-boot.version>
diff --git a/4-governance/dubbo-samples-metrics-spring-boot/README.md b/4-governance/dubbo-samples-metrics-spring-boot/README.md
index cd7def6..c557eff 100644
--- a/4-governance/dubbo-samples-metrics-spring-boot/README.md
+++ b/4-governance/dubbo-samples-metrics-spring-boot/README.md
@@ -1,35 +1,33 @@
-# 使用Metrics模块进行数据采集然后暴漏数据给普罗米修斯监控
-如果需要在springboot-actuator中返回dubbo的指标信息,dubbo 版本必须为3.2.0-beta.6 以上
-* 服务端配置参考
+本示例演示如何为 Dubbo 实例开启指标监控，结合 Grafana 和 Prometheus 的完整部署和使用示例请参考 [官方文档](https://cn.dubbo.apache.org/zh-cn/overview/tasks/observability/)。
+
+## 开启 Metrics 数据采集并上报到 Prometheus
+
+Dubbo 支持通过两种方式对外暴露 Metrics 指标给 Prometheus，具体可参见 [官方文档配置说明]()。
+* Spring-boot-actuator，即通过标准的 Spring boot actuator 端口在特定的 endpoint 将 Dubbo 监控指标暴露出去
+* dubbo qos，即通过 Dubbo 内置的 qos 端口将 Dubbo 监控指标暴露出去
+
+本示例中，我们使用 spring-boot-actuator 的方式透出 Dubbo 指标信息，请注意本示例使用的 Dubbo 版本必须为 3.2.0-beta.6 以上。
+
+### Metrics 相关示例配置
+
 ```yaml
-management.metrics.tags.application=dubbo-samples-metrics-spring-boot
+# ......
 management.server.port=18081
 management.endpoints.web.base-path=/management
-management.endpoints.web.exposure.include=info,health,env,prometheus
-spring.main.allow-circular-references=true
-management.endpoint.metrics.enabled=true
-management.endpoint.prometheus.enabled=true
-management.metrics.export.prometheus.enabled=true
-server.port=18080
-dubbo.application.name=metrics-provider
-dubbo.registry.address=zookeeper://${ZOOKEEPER_ADDRESS:127.0.0.1}:2181
 dubbo.metrics.protocol=prometheus
-#如果不使用spring-boot-actuator 可使用下面配置
-#dubbo.metrics.enable-jvm-metrics=true
-#dubbo.metrics.prometheus.exporter.enabled=true
-#dubbo.metrics.prometheus.exporter.metrics-port=20888
-#prometheus.exporter.metrics.path=/prometheus
+
+# 如果不使用 spring-boot-actuator，可使用下面配置开启 qos 配置
+# dubbo.metrics.enable-jvm-metrics=true
+# dubbo.application.qos-port=22222
+# dubbo.application.qos-accept-foreign-ip=true
 ```
 
+启动 MetricsApplication，测试访问监控指标：http://localhost:18081/management/prometheus
 
-启动MetricsApplication  访问监控指标：http://localhost:18081/management/prometheus
+## 部署示例到 Kubernetes
+### 采用 kube-prometheus 部署
 
-可观测性文档如下链接：
-[https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/observability/](https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/observability/)
-
-# 部署到K8S(kube-prometheus)
-本示例通过[kube-prometheus](https://github.com/prometheus-operator/kube-prometheus)
-构建k8s的prometheus环境
+本示例通过 [kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) 构建k8s的prometheus环境
 
 为了方便访问验证可以将`alertmanager-service.yaml` `grafana-service.yaml` `prometheus-service.yaml`设置为NodePort
 
@@ -68,7 +66,8 @@
    ![result.png](result.png)
 
 
-# 部署到K8S(helm-charts)
+### 采用 helm-charts 部署
+
 1. 部署[prometheus](https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus)
 2. 修改Deployment.yml 并部署
  ```yaml
diff --git a/4-governance/dubbo-samples-metrics-spring-boot/pom.xml b/4-governance/dubbo-samples-metrics-spring-boot/pom.xml
index 7aed358..45b4352 100644
--- a/4-governance/dubbo-samples-metrics-spring-boot/pom.xml
+++ b/4-governance/dubbo-samples-metrics-spring-boot/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.2.0</dubbo.version>
+        <dubbo.version>3.2.1</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>5.3.18</spring.version>
         <httpclient.version>4.5.13</httpclient.version>
@@ -70,7 +70,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -104,7 +104,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-metrics-spring-boot/src/main/resources/application.properties b/4-governance/dubbo-samples-metrics-spring-boot/src/main/resources/application.properties
index 0bb33f3..c500a31 100644
--- a/4-governance/dubbo-samples-metrics-spring-boot/src/main/resources/application.properties
+++ b/4-governance/dubbo-samples-metrics-spring-boot/src/main/resources/application.properties
@@ -10,8 +10,4 @@
 dubbo.application.name=metrics-provider
 dubbo.registry.address=zookeeper://${ZOOKEEPER_ADDRESS:127.0.0.1}:2181
 dubbo.metrics.protocol=prometheus
-#如果不使用spring-boot-actuator 可使用下面配置
 #dubbo.metrics.enable-jvm-metrics=true
-#dubbo.metrics.prometheus.exporter.enabled=true
-#dubbo.metrics.prometheus.exporter.metrics-port=20888
-#prometheus.exporter.metrics.path=/prometheus
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-metrics/pom.xml b/4-governance/dubbo-samples-metrics/pom.xml
index 896f2f5..d130ab7 100644
--- a/4-governance/dubbo-samples-metrics/pom.xml
+++ b/4-governance/dubbo-samples-metrics/pom.xml
@@ -36,9 +36,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -60,10 +61,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -80,7 +88,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -102,6 +110,42 @@
             <artifactId>fastjson</artifactId>
             <version>1.2.83</version>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/4-governance/dubbo-samples-monitor/pom.xml b/4-governance/dubbo-samples-monitor/pom.xml
index 68fcb2a..63a8e03 100644
--- a/4-governance/dubbo-samples-monitor/pom.xml
+++ b/4-governance/dubbo-samples-monitor/pom.xml
@@ -31,7 +31,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -55,7 +55,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -70,7 +70,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
index cb70e30..ffac12d 100644
--- a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
+++ b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
@@ -35,7 +35,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
     </properties>
 
@@ -111,4 +111,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
index 57599e9..3fa0979 100644
--- a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
+++ b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
         <sentinel.version>1.8.6</sentinel.version>
     </properties>
diff --git a/4-governance/dubbo-samples-servicelevel-override/pom.xml b/4-governance/dubbo-samples-servicelevel-override/pom.xml
index a888108..84fde96 100644
--- a/4-governance/dubbo-samples-servicelevel-override/pom.xml
+++ b/4-governance/dubbo-samples-servicelevel-override/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -59,7 +59,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -86,7 +86,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-spring-boot-hystrix/pom.xml b/4-governance/dubbo-samples-spring-boot-hystrix/pom.xml
index 31adcc2..8b03ee2 100644
--- a/4-governance/dubbo-samples-spring-boot-hystrix/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-hystrix/pom.xml
@@ -31,11 +31,12 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <spring-boot.version>1.5.21.RELEASE</spring-boot.version>
         <hystrix-starter.version>1.4.7.RELEASE</hystrix-starter.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -56,8 +57,15 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -72,7 +80,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
@@ -106,6 +114,43 @@
             <version>${spring-boot.version}</version>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/4-governance/dubbo-samples-spring-boot-tracing-skywalking/dubbo-samples-spring-boot-tracing-skwalking-interface/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing-skywalking/dubbo-samples-spring-boot-tracing-skwalking-interface/pom.xml
index 30a3a4e..aeef9fa 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing-skywalking/dubbo-samples-spring-boot-tracing-skwalking-interface/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing-skywalking/dubbo-samples-spring-boot-tracing-skwalking-interface/pom.xml
@@ -29,8 +29,8 @@
     <artifactId>dubbo-samples-spring-boot-tracing-skwalking-interface</artifactId>
 
     <properties>
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/4-governance/dubbo-samples-spring-boot-tracing-skywalking/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing-skywalking/pom.xml
index f71c9cc..9986c45 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing-skywalking/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing-skywalking/pom.xml
@@ -44,7 +44,7 @@
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <java.version>17</java.version>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.2.0</nacos.version>
         <micrometer.version>1.10.3</micrometer.version>
         <micrometer-tracing.version>1.0.1</micrometer-tracing.version>
@@ -116,6 +116,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -125,6 +126,7 @@
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
 
         <dependency>
@@ -143,4 +145,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/README.md b/4-governance/dubbo-samples-spring-boot-tracing/README.md
index f7e68ab..6418973 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/README.md
+++ b/4-governance/dubbo-samples-spring-boot-tracing/README.md
@@ -1,109 +1,113 @@
-# Overview
+## 说明
 
-This example demonstrates the basic usage of tracing in Dubbo application and report tracing information to zipkin. This
-example contains three parts, `dubbo-samples-spring-boot-tracing-provider`
-, `dubbo-samples-spring-boot-tracing-consumer` and `dubbo-samples-spring-boot-tracing-interface`.
+目前 Dubbo 内置了 [Micrometer](https://micrometer.io/)（Micrometer 为最流行的可观察性系统在检测客户端上提供了一个统一的门面，相当于日志领域的SLF4J，SpringBoot3
+内置的可观测门面组件）。
 
-Apache Dubbo has inbuilt tracing through [Micrometer Observations](https://micrometer.io/)
-and [Micrometer Tracing](https://github.com/micrometer-metrics/tracing).
+## 案例模块说明
 
-## Quick Start
+- dubbo-samples-spring-boot-tracing-zipkin：在SpringBoot项目中如何使用Dubbo-tracing相关的starter，将trace信息上报到zipkin
+- dubbo-samples-spring-boot-tracing-otel-otlp：在SpringBoot项目中如何使用Dubbo-tracing相关的starter，以 Opentelemetry 作为 Tracer，将 Trace 信息上报到 Otlp（Opentelemetry 自定义的协议，[详细文档](https://opentelemetry.io/docs/specs/otel/protocol/)）
 
-### Install & Start Zipkin
+## Tracing相关概念
 
-Follow [Zipkin's quick start](https://zipkin.io/pages/quickstart.html) to install zipkin.
+- Span：基本工作单元。例如，发送 RPC 是一个新的 span，发送对 RPC 的响应也是如此。Span还有其他数据，例如description、带时间戳的事件、键值注释（标签）、导致它们的跨度的
+  ID 和进程 ID（通常是 IP 地址）。跨度可以启动和停止，并且它们会跟踪它们的时间信息。创建跨度后，您必须在将来的某个时间点停止它。
 
-Here we use docker to quickly start a zipkin server.
+- Trace：一组形成树状结构的跨度。例如，如果您运行分布式大数据存储，则可能会通过请求形成跟踪PUT。
 
-```bash
-docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin
-```
+- Annotation/Event : 用于及时记录一个事件的存在。
 
-Then you can verify zipkin server works by access [http://localhost:9411](http://localhost:9411)
+- Tracing context：为了使分布式跟踪工作，跟踪上下文（跟踪标识符、跨度标识符等）必须通过进程（例如通过线程）和网络传播。
 
-![zipkin_home](static/zipkin_home.png)
+- Log correlation：部分跟踪上下文（例如跟踪标识符、跨度标识符）可以填充到给定应用程序的日志中。然后可以将所有日志收集到一个存储中，并通过跟踪
+  ID 对它们进行分组。这样就可以从所有按时间顺序排列的服务中获取单个业务操作（跟踪）的所有日志。
 
-### Start Provider
+- Latency analysis tools：一种收集导出跨度并可视化整个跟踪的工具。允许轻松进行延迟分析。
 
-Start `org.apache.dubbo.springboot.demo.provider.ProviderApplication` directly from IDE.
+- Tracer: 处理span生命周期的库（Dubbo 目前支持 Opentelemetry 和 Brave）。它可以通过 Exporter 创建、启动、停止和报告 Spans
+  到外部系统（如 Zipkin、Jagger 等）。
 
-### Start Consumer
+- Exporter: 将产生的 Trace 信息通过 http 等接口上报到外部系统，比如上报到 Zipkin。
 
-Start `org.apache.dubbo.springboot.demo.consumer.ConsumerApplication` directly from IDE.
+## SpringBoot Starters
 
-### Check Result
+对于 SpringBoot 用户，Dubbo 提供了 Tracing 相关的 starters，自动装配 Micrometer 相关的配置代码，且用户可自由选择 Tracer
+和Exporter。
 
-Open [http://localhost:9411/zipkin/](http://localhost:9411/zipkin/) in browser.
-
-![zipkin.png](static/zipkin.png)
-
-## How To Use Dubbo Tracing In Your Project
-
-### 1. Adding `dubbo-spring-boot-observability-starter` To Your Project
-
-For the Springboot project, you can use `dubbo-spring-boot-observability-starter` to easily have observability, Dubbo
-provides two types of starters at present, select one to add to pom:
-
-```xml
-
-<!-- Opentelemetry as Tracer, Zipkin as exporter -->
-<dependency>
-    <groupId>org.apache.dubbo</groupId>
-    <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
-</dependency>
-```
-
-```xml
-
-<!-- Brave as Tracer, Zipkin as exporter -->
-<dependency>
-    <groupId>org.apache.dubbo</groupId>
-    <artifactId>dubbo-spring-boot-tracing-brave-zipkin-starter</artifactId>
-</dependency>
-```
-
-Dubbo will support more in the future, such as skywalking, Jagger.
-
-### 2. Configuration Tracing
-
-#### application.yml:
+### Opentelemetry 作为 Tracer，将 Trace 信息 export 到 Zipkin
 
 ```yaml
-dubbo:
-  tracing:
-    enabled: true # default is false
-    sampling:
-      probability: 0.5 # sampling rate, default is 0.1
-    propagation:
-      type: W3C # W3C/B3 default is W3C
-    tracing-exporter:
-      zipkin-config:
-        endpoint: http://localhost:9411/api/v2/spans
-        connect-timeout: 1s # connect timeout, default is 1s
-        read-timeout: 10s # read timeout, default is 10s
-
-# tracing info output to logging
-logging:
-  pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+  <dependency>
+      <groupId>org.apache.dubbo</groupId>
+      <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+      <version>${version}</version>
+  </dependency>
 ```
 
-### 3. Customizing Observation Filters
+### Brave 作为 Tracer，将 Trace 信息 export 到 Zipkin
 
-To customize the tags present in metrics (low cardinality tags) and in spans (low and high cardinality tags) you should
-create your own versions of `DubboServerObservationConvention` (server side) and `DubboClientObservationConvention` (
-client side) and register them in the `ApplicationModel`'s `BeanFactory`. To reuse the existing ones
-check `DefaultDubboServerObservationConvention` (server side) and `DefaultDubboClientObservationConvention` (client
-side).
+```yaml
+  <dependency>
+      <groupId>org.apache.dubbo</groupId>
+      <artifactId>dubbo-spring-boot-tracing-brave-zipkin-starter</artifactId>
+      <version>${version}</version>
+  </dependency>
+```
 
-## Extension
+### Opentelemetry 作为 Tracer，将 Trace 信息 export 到 Otlp Collector
 
-An OpenZipkin URL sender dependency to send out spans to Zipkin via a URLConnectionSender
+```yaml
+ <dependency>
+      <groupId>org.apache.dubbo</groupId>
+      <artifactId>dubbo-spring-boot-tracing-otel-otlp-starter</artifactId>
+      <version>${version}</version>
+  </dependency>
+```
 
-```xml
+### 自由组装 Tracer 和 Exporter
 
-<dependency>
-    <groupId>io.zipkin.reporter2</groupId>
-    <artifactId>zipkin-sender-urlconnection</artifactId>
-</dependency>
-```
\ No newline at end of file
+如果用户基于 Micrometer 有自定义的需求，想将 Trace 信息上报至其他外部系统观测，可参照如下自由组装 Tracer 和 Exporter：
+
+```yaml
+  <!-- 自动装配 -->
+  <dependency>
+      <groupId>org.apache.dubbo</groupId>
+      <artifactId>dubbo-spring-boot-observability-starter</artifactId>
+      <version>${version}</version>
+  </dependency>
+  <!-- otel作为tracer -->
+  <dependency>
+      <groupId>io.micrometer</groupId>
+      <artifactId>micrometer-tracing-bridge-otel</artifactId>
+      <version>${version}</version>
+  </dependency>
+  <!-- export到zipkin -->
+  <dependency>
+      <groupId>io.opentelemetry</groupId>
+      <artifactId>opentelemetry-exporter-zipkin</artifactId>
+      <version>${version}</version>
+  </dependency>
+```
+
+```yaml
+  <!-- 自动装配 -->
+  <dependency>
+      <groupId>org.apache.dubbo</groupId>
+      <artifactId>dubbo-spring-boot-observability-starter</artifactId>
+      <version>${version}</version>
+  </dependency>
+  <!-- brave作为tracer  -->
+  <dependency>
+      <groupId>io.micrometer</groupId>
+      <artifactId>micrometer-tracing-bridge-brave</artifactId>
+      <version>${version}</version>
+  </dependency>
+  <!-- export到zipkin -->
+  <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-reporter-brave</artifactId>
+      <version>${version}</version>
+  </dependency>
+```
+
+后续还会补齐更多的 starters，如 Jagger、SkyWalking等。
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/log4j.properties b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/log4j.properties
deleted file mode 100644
index 8de4c4f..0000000
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-###set log levels###
-log4j.rootLogger=info, stdout
-###output to the console###
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Target=System.out
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/README.md b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/README.md
new file mode 100644
index 0000000..a533b3e
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/README.md
@@ -0,0 +1,84 @@
+## 概述
+
+这个案例展示了在 Dubbo 项目中以 Opentelemetry 作为 Tracer，将 Trace 信息上报到 Otlp Collector，再由 collector 转发至Zipkin、Jagger。
+
+有三部分组成：
+
+- dubbo-samples-spring-boot-tracing-otel-oltp-interface
+- dubbo-samples-spring-boot-tracing-otel-oltp-provider
+- dubbo-samples-spring-boot-tracing-otel-oltp-consumer
+
+## 案例架构图
+
+![案例架构图](static/demo_arch.png)
+
+## 快速开始
+
+### 安装 & 启动 Otlp Collector
+
+按照 [Opentelemetry Collector Quick Start](https://opentelemetry.io/docs/collector/getting-started/) 去启动 otlp collector.
+
+### 启动 Provider
+
+直接运行`org.apache.dubbo.springboot.demo.provider.ProviderApplication` directly from IDE.
+
+### 启动 Consumer
+
+Start `org.apache.dubbo.springboot.demo.consumer.ConsumerApplication` directly from IDE.
+
+### 查看 Trace 信息
+
+在浏览器中打开zipkin看板 [http://localhost:9411/zipkin/](http://localhost:9411/zipkin/) :
+
+![zipkin.png](static/zipkin_search.png)
+
+![zipkin.png](static/zipkin_detail.png)
+
+在浏览器中打开Jaeger看板 [http://localhost:16686/search](http://localhost:16686/search) :
+
+![jaeger_search.png](static/jaeger_search.png)
+
+![jaeger_detail.png](static/jaeger_detail.png)
+
+## 如何在项目中使用
+
+### 1. 在你的项目中添加依赖
+
+对于 SpringBoot 项目，你可以使用`dubbo-spring-boot-tracing-otel-otlp-starter` ：
+
+```xml
+
+<!-- Opentelemetry as Tracer, Otlp as exporter -->
+<dependency>
+    <groupId>org.apache.dubbo</groupId>
+    <artifactId>dubbo-spring-boot-tracing-otel-otlp-starter</artifactId>
+</dependency>
+```
+
+### 2. 配置
+
+#### application.yml:
+
+```yaml
+dubbo:
+  tracing:
+    enabled: true # default is false
+    sampling:
+      probability: 0.5 # sampling rate, default is 0.1
+    propagation:
+      type: W3C # W3C/B3 default is W3C
+    tracing-exporter:
+      otlp-config:
+        endpoint: http://localhost:4317
+        timeout: 10s # default is 10s
+        compression-method: none # none/gzip The method used to compress payloads, default is "none"
+        headers: # customized added headers, default is empty
+          auth: admin
+
+# tracing info output to logging
+logging:
+  level:
+    root: info
+  pattern:
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
+```
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/pom.xml
similarity index 81%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/pom.xml
index d309d24..6fd1dcf 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/pom.xml
@@ -19,12 +19,12 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
+        <artifactId>dubbo-samples-spring-boot-tracing-otel-otlp</artifactId>
         <version>1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>dubbo-samples-spring-boot-tracing-consumer</artifactId>
+    <artifactId>dubbo-samples-spring-boot-tracing-otel-oltp-consumer</artifactId>
 
     <properties>
         <slf4j-log4j12.version>1.7.25</slf4j-log4j12.version>
@@ -33,7 +33,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+            <artifactId>dubbo-samples-tracing-otel-otlp-interface</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
 
@@ -46,8 +46,14 @@
         <!-- registry dependency -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-reload4j</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- spring starter -->
@@ -58,7 +64,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <artifactId>dubbo-spring-boot-tracing-otel-otlp-starter</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/application.yml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/src/main/resources/application.yml
similarity index 77%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/application.yml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/src/main/resources/application.yml
index 4c23fac..fadf4ca 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/application.yml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/consumer/src/main/resources/application.yml
@@ -38,11 +38,15 @@
     propagation:
       type: W3C # W3C/B3 default is W3C
     tracing-exporter:
-      zipkin-config:
-        endpoint: http://localhost:9411/api/v2/spans
-        connect-timeout: 1s # connect timeout, default is 1s
-        read-timeout: 10s # read timeout, default is 10s
+      otlp-config:
+        endpoint: http://localhost:4317
+        timeout: 10s # default is 10s
+        compression-method: none # none/gzip The method used to compress payloads, default is "none"
+        headers: # customized added headers, default is empty
+          auth: admin
 
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/interface/pom.xml
similarity index 83%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/interface/pom.xml
index 90b1068..e136b09 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/interface/pom.xml
@@ -19,18 +19,18 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
+        <artifactId>dubbo-samples-spring-boot-tracing-otel-otlp</artifactId>
         <version>1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <artifactId>dubbo-samples-tracing-otel-otlp-interface</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <maven.deploy.skip>true</maven.deploy.skip>
     </properties>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/pom.xml
similarity index 74%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/pom.xml
index 90b1068..32d64bc 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,6 +15,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
   -->
+
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -25,12 +27,19 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <artifactId>dubbo-samples-spring-boot-tracing-otel-otlp</artifactId>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>interface</module>
+        <module>provider</module>
+        <module>consumer</module>
+    </modules>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.deploy.skip>true</maven.deploy.skip>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/pom.xml
similarity index 81%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/pom.xml
index d309d24..b0bcb48 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/pom.xml
@@ -19,12 +19,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
+        <artifactId>dubbo-samples-spring-boot-tracing-otel-otlp</artifactId>
         <version>1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>dubbo-samples-spring-boot-tracing-consumer</artifactId>
+
+    <artifactId>dubbo-samples-spring-boot-tracing-otel-oltp-provider</artifactId>
 
     <properties>
         <slf4j-log4j12.version>1.7.25</slf4j-log4j12.version>
@@ -33,7 +34,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+            <artifactId>dubbo-samples-tracing-otel-otlp-interface</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
 
@@ -46,8 +47,14 @@
         <!-- registry dependency -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-reload4j</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- spring starter -->
@@ -58,7 +65,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+            <artifactId>dubbo-spring-boot-tracing-otel-otlp-starter</artifactId>
         </dependency>
     </dependencies>
 
@@ -78,4 +85,5 @@
             </plugin>
         </plugins>
     </build>
+
 </project>
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/application.yml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/resources/application.yml
similarity index 79%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/application.yml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/resources/application.yml
index 91ef28e..a2fa62e 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/application.yml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/provider/src/main/resources/application.yml
@@ -38,11 +38,15 @@
     propagation:
       type: W3C # W3C/B3 default is W3C
     tracing-exporter:
-      zipkin-config:
-        endpoint: http://localhost:9411/api/v2/spans
-        connect-timeout: 1s # connect timeout, default is 1s
-        read-timeout: 10s # read timeout, default is 10s
+      otlp-config:
+        endpoint: http://localhost:4317
+        timeout: 10s # default is 10s
+        compression-method: none # none/gzip The method used to compress payloads, default is "none"
+        headers:
+          auth: admin
 
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/demo_arch.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/demo_arch.png
new file mode 100644
index 0000000..a625d05
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/demo_arch.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/jaeger_detail.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/jaeger_detail.png
new file mode 100644
index 0000000..3d5bfe6
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/jaeger_detail.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/jaeger_search.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/jaeger_search.png
new file mode 100644
index 0000000..5354489
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/jaeger_search.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/zipkin_detail.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/zipkin_detail.png
new file mode 100644
index 0000000..e73b9e9
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/zipkin_detail.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/zipkin_search.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/zipkin_search.png
new file mode 100644
index 0000000..8503b85
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-otel-otlp/static/zipkin_search.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/log4j.properties b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/log4j.properties
deleted file mode 100644
index 8de4c4f..0000000
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-###set log levels###
-log4j.rootLogger=info, stdout
-###output to the console###
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Target=System.out
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/README.md b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/README.md
new file mode 100644
index 0000000..90e57b4
--- /dev/null
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/README.md
@@ -0,0 +1,111 @@
+# Overview
+
+This example demonstrates the basic usage of tracing in Dubbo application and report tracing information to zipkin. This
+example contains three parts, `dubbo-samples-spring-boot-tracing-provider`
+, `dubbo-samples-spring-boot-tracing-consumer` and `dubbo-samples-spring-boot-tracing-interface`.
+
+Apache Dubbo has inbuilt tracing through [Micrometer Observations](https://micrometer.io/)
+and [Micrometer Tracing](https://github.com/micrometer-metrics/tracing).
+
+## Quick Start
+
+### Install & Start Zipkin
+
+Follow [Zipkin's quick start](https://zipkin.io/pages/quickstart.html) to install zipkin.
+
+Here we use docker to quickly start a zipkin server.
+
+```bash
+docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin
+```
+
+Then you can verify zipkin server works by access [http://localhost:9411](http://localhost:9411)
+
+![zipkin_home](static/zipkin_home.png)
+
+### Start Provider
+
+Start `org.apache.dubbo.springboot.demo.provider.ProviderApplication` directly from IDE.
+
+### Start Consumer
+
+Start `org.apache.dubbo.springboot.demo.consumer.ConsumerApplication` directly from IDE.
+
+### Check Result
+
+Open [http://localhost:9411/zipkin/](http://localhost:9411/zipkin/) in browser.
+
+![zipkin.png](static/zipkin.png)
+
+## How To Use Dubbo Tracing In Your Project
+
+### 1. Adding `dubbo-spring-boot-observability-starter` To Your Project
+
+For the Springboot project, you can use `dubbo-spring-boot-observability-starter` to easily have observability, Dubbo
+provides two types of starters at present, select one to add to pom:
+
+```xml
+
+<!-- Opentelemetry as Tracer, Zipkin as exporter -->
+<dependency>
+    <groupId>org.apache.dubbo</groupId>
+    <artifactId>dubbo-spring-boot-tracing-otel-zipkin-starter</artifactId>
+</dependency>
+```
+
+```xml
+
+<!-- Brave as Tracer, Zipkin as exporter -->
+<dependency>
+    <groupId>org.apache.dubbo</groupId>
+    <artifactId>dubbo-spring-boot-tracing-brave-zipkin-starter</artifactId>
+</dependency>
+```
+
+Dubbo will support more in the future, such as skywalking, Jagger.
+
+### 2. Configuration Tracing
+
+#### application.yml:
+
+```yaml
+dubbo:
+  tracing:
+    enabled: true # default is false
+    sampling:
+      probability: 0.5 # sampling rate, default is 0.1
+    propagation:
+      type: W3C # W3C/B3 default is W3C
+    tracing-exporter:
+      zipkin-config:
+        endpoint: http://localhost:9411/api/v2/spans
+        connect-timeout: 1s # connect timeout, default is 1s
+        read-timeout: 10s # read timeout, default is 10s
+
+# tracing info output to logging
+logging:
+  level:
+    root: info
+  pattern:
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
+```
+
+### 3. Customizing Observation Filters
+
+To customize the tags present in metrics (low cardinality tags) and in spans (low and high cardinality tags) you should
+create your own versions of `DubboServerObservationConvention` (server side) and `DubboClientObservationConvention` (
+client side) and register them in the `ApplicationModel`'s `BeanFactory`. To reuse the existing ones
+check `DefaultDubboServerObservationConvention` (server side) and `DefaultDubboClientObservationConvention` (client
+side).
+
+## Extension
+
+An OpenZipkin URL sender dependency to send out spans to Zipkin via a URLConnectionSender
+
+```xml
+
+<dependency>
+    <groupId>io.zipkin.reporter2</groupId>
+    <artifactId>zipkin-sender-urlconnection</artifactId>
+</dependency>
+```
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/pom.xml
similarity index 88%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/pom.xml
index d309d24..19bef62 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/pom.xml
@@ -19,7 +19,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
+        <artifactId>dubbo-samples-spring-boot-tracing-zipkin</artifactId>
         <version>1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -46,8 +46,14 @@
         <!-- registry dependency -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-reload4j</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- spring starter -->
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java
similarity index 100%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ConsumerApplication.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/application.yml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/src/main/resources/application.yml
similarity index 92%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/application.yml
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/src/main/resources/application.yml
index 4c23fac..e1e1f6c 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-consumer/src/main/resources/application.yml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/consumer/src/main/resources/application.yml
@@ -44,5 +44,7 @@
         read-timeout: 10s # read timeout, default is 10s
 
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/interface/pom.xml
similarity index 87%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/interface/pom.xml
index 90b1068..ea99032 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/interface/pom.xml
@@ -19,7 +19,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
+        <artifactId>dubbo-samples-spring-boot-tracing-zipkin</artifactId>
         <version>1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <maven.deploy.skip>true</maven.deploy.skip>
     </properties>
 
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java
similarity index 100%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/interface/src/main/java/org/apache/dubbo/springboot/demo/DemoService.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/pom.xml
similarity index 73%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/pom.xml
index 90b1068..4ddffb9 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-interface/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,6 +15,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
   -->
+
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -25,12 +27,19 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-samples-spring-boot-tracing-interface</artifactId>
+    <artifactId>dubbo-samples-spring-boot-tracing-zipkin</artifactId>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>interface</module>
+        <module>provider</module>
+        <module>consumer</module>
+    </modules>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.deploy.skip>true</maven.deploy.skip>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/pom.xml
similarity index 88%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/pom.xml
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/pom.xml
index b2aaa55..4e3f84a 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/pom.xml
@@ -19,7 +19,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-samples-spring-boot-tracing</artifactId>
+        <artifactId>dubbo-samples-spring-boot-tracing-zipkin</artifactId>
         <version>1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -47,8 +47,14 @@
         <!-- registry dependency -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-reload4j</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- spring starter -->
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
similarity index 100%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java
similarity index 100%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/EmbeddedZooKeeper.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java
similarity index 100%
copy from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java
copy to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/application.yml b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/resources/application.yml
similarity index 92%
rename from 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/application.yml
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/resources/application.yml
index 91ef28e..6b02c00 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-provider/src/main/resources/application.yml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/provider/src/main/resources/application.yml
@@ -44,5 +44,7 @@
         read-timeout: 10s # read timeout, default is 10s
 
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/static/zipkin.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/static/zipkin.png
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/static/zipkin.png
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/static/zipkin.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/static/zipkin_home.png b/4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/static/zipkin_home.png
similarity index 100%
rename from 4-governance/dubbo-samples-spring-boot-tracing/static/zipkin_home.png
rename to 4-governance/dubbo-samples-spring-boot-tracing/dubbo-samples-spring-boot-tracing-zipkin/static/zipkin_home.png
Binary files differ
diff --git a/4-governance/dubbo-samples-spring-boot-tracing/pom.xml b/4-governance/dubbo-samples-spring-boot-tracing/pom.xml
index f48f59c..7371d6a 100644
--- a/4-governance/dubbo-samples-spring-boot-tracing/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot-tracing/pom.xml
@@ -36,16 +36,15 @@
     <description>Dubbo Samples Tracing</description>
 
     <modules>
-        <module>dubbo-samples-spring-boot-tracing-interface</module>
-        <module>dubbo-samples-spring-boot-tracing-provider</module>
-        <module>dubbo-samples-spring-boot-tracing-consumer</module>
+        <module>dubbo-samples-spring-boot-tracing-zipkin</module>
+        <module>dubbo-samples-spring-boot-tracing-otel-otlp</module>
     </modules>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <dubbo.version>3.2.1-SNAPSHOT</dubbo.version>
+        <dubbo.version>3.2.2-SNAPSHOT</dubbo.version>
         <micrometer.version>1.10.5</micrometer.version>
         <micrometer-tracing.version>1.0.3</micrometer-tracing.version>
         <opentelemetry.version>1.19.0</opentelemetry.version>
@@ -99,7 +98,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -115,20 +114,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>${slf4j-log4j12.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
@@ -149,4 +134,20 @@
         </plugins>
     </build>
 
+    <repositories>
+        <repository>
+            <id>apache.snapshots.https</id>
+            <name>Apache Development Snapshot Repository</name>
+            <url>https://repository.apache.org/content/repositories/snapshots</url>
+            <layout>default</layout>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>daily</updatePolicy>
+            </snapshots>
+        </repository>
+    </repositories>
+
 </project>
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/README.md b/4-governance/dubbo-samples-spring-boot3-tracing/README.md
index 65fe68c..1dc43f7 100644
--- a/4-governance/dubbo-samples-spring-boot3-tracing/README.md
+++ b/4-governance/dubbo-samples-spring-boot3-tracing/README.md
@@ -88,8 +88,10 @@
 
 # tracing info output to logging
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
 ```
 
 ### 3. Customizing Observation Filters
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/application.yml b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/application.yml
index a0a1892..90a670e 100644
--- a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/application.yml
+++ b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/application.yml
@@ -44,5 +44,7 @@
         read-timeout: 10s # read timeout, default is 10s
 
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/log4j.properties b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/log4j.properties
deleted file mode 100644
index 8de4c4f..0000000
--- a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-consumer/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-###set log levels###
-log4j.rootLogger=info, stdout
-###output to the console###
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Target=System.out
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-interface/pom.xml b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-interface/pom.xml
index 0c8037d..b5d493d 100644
--- a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-interface/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-interface/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot3-tracing-interface</artifactId>
 
     <properties>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
         <maven.deploy.skip>true</maven.deploy.skip>
     </properties>
 
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/application.yml b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/application.yml
index 9c9c9d0..bb617df 100644
--- a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/application.yml
+++ b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/application.yml
@@ -44,5 +44,7 @@
         read-timeout: 10s # read timeout, default is 10s
 
 logging:
+  level:
+    root: info
   pattern:
-    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+    console: '[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2} [%X{traceId:-}, %X{spanId:-}]: %m%n'
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/log4j.properties b/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/log4j.properties
deleted file mode 100644
index 8de4c4f..0000000
--- a/4-governance/dubbo-samples-spring-boot3-tracing/dubbo-samples-spring-boot3-tracing-provider/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-###set log levels###
-log4j.rootLogger=info, stdout
-###output to the console###
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Target=System.out
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
diff --git a/4-governance/dubbo-samples-spring-boot3-tracing/pom.xml b/4-governance/dubbo-samples-spring-boot3-tracing/pom.xml
index 5eea433..5352b98 100644
--- a/4-governance/dubbo-samples-spring-boot3-tracing/pom.xml
+++ b/4-governance/dubbo-samples-spring-boot3-tracing/pom.xml
@@ -117,20 +117,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>${slf4j-log4j12.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
diff --git a/4-governance/dubbo-samples-spring-hystrix/pom.xml b/4-governance/dubbo-samples-spring-hystrix/pom.xml
index f1bf87d..ef49790 100644
--- a/4-governance/dubbo-samples-spring-hystrix/pom.xml
+++ b/4-governance/dubbo-samples-spring-hystrix/pom.xml
@@ -31,10 +31,11 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <hystrix.version>1.5.18</hystrix.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -55,8 +56,15 @@
                 <scope>import</scope>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -71,8 +79,14 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jackson-databind</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -85,6 +99,20 @@
             <groupId>com.netflix.hystrix</groupId>
             <artifactId>hystrix-serialization</artifactId>
             <version>${hystrix.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jackson-annotations</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>jackson-core</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>jackson-databind</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -111,6 +139,58 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>2.14.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.14.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+            <version>2.14.2</version>
+        </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-consumer/pom.xml b/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-consumer/pom.xml
index 0b02184..bd00962 100644
--- a/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-consumer/pom.xml
+++ b/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-consumer/pom.xml
@@ -57,7 +57,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-provider/pom.xml b/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-provider/pom.xml
index 7bbe6ee..f2ffacc 100644
--- a/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-provider/pom.xml
+++ b/4-governance/dubbo-samples-ssl/dubbo-samples-ssl-provider/pom.xml
@@ -57,7 +57,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/4-governance/dubbo-samples-ssl/pom.xml b/4-governance/dubbo-samples-ssl/pom.xml
index 72fb117..9863020 100644
--- a/4-governance/dubbo-samples-ssl/pom.xml
+++ b/4-governance/dubbo-samples-ssl/pom.xml
@@ -34,7 +34,7 @@
    </modules>
 
     <properties>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
@@ -75,7 +75,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/4-governance/dubbo-samples-tagrouter/pom.xml b/4-governance/dubbo-samples-tagrouter/pom.xml
index 277201e..4eb068a 100644
--- a/4-governance/dubbo-samples-tagrouter/pom.xml
+++ b/4-governance/dubbo-samples-tagrouter/pom.xml
@@ -32,7 +32,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -58,7 +58,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -79,7 +79,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/99-integration/dubbo-samples-empty-protection-nacos/pom.xml b/99-integration/dubbo-samples-empty-protection-nacos/pom.xml
index 1f0ece6..a05bd86 100644
--- a/99-integration/dubbo-samples-empty-protection-nacos/pom.xml
+++ b/99-integration/dubbo-samples-empty-protection-nacos/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <slf4j.version>1.7.25</slf4j.version>
@@ -63,7 +63,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -112,6 +112,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
@@ -162,4 +163,4 @@
         </repository>
     </repositories>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-empty-protection/pom.xml b/99-integration/dubbo-samples-empty-protection/pom.xml
index 8047ba2..8397642 100644
--- a/99-integration/dubbo-samples-empty-protection/pom.xml
+++ b/99-integration/dubbo-samples-empty-protection/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -60,7 +60,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -75,7 +75,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -123,4 +123,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml
index c083354..4c64e2d 100644
--- a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml
+++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-hibernate-api</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml
index 35ab99f..b6a5eca 100644
--- a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml
+++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-hibernate-consumer</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -45,4 +45,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml
index 22f5c92..ea7a2b0 100644
--- a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml
+++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-hibernate-provider</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -59,4 +59,4 @@
         </dependency>
 
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-hibernate/pom.xml b/99-integration/dubbo-samples-hibernate/pom.xml
index 0349f35..6b9e8df 100644
--- a/99-integration/dubbo-samples-hibernate/pom.xml
+++ b/99-integration/dubbo-samples-hibernate/pom.xml
@@ -42,7 +42,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.4.1</spring-boot.version>
@@ -67,7 +67,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -88,7 +88,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/99-integration/dubbo-samples-isolation-executor/pom.xml b/99-integration/dubbo-samples-isolation-executor/pom.xml
index 1abd8c7..bd874b5 100644
--- a/99-integration/dubbo-samples-isolation-executor/pom.xml
+++ b/99-integration/dubbo-samples-isolation-executor/pom.xml
@@ -26,7 +26,7 @@
     <version>1.0-SNAPSHOT</version>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
         <source.level>1.8</source.level>
@@ -44,7 +44,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -72,7 +72,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -107,4 +107,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-memory-server/src/main/java/org/apache/dubbo/samples/provider/Application.java b/99-integration/dubbo-samples-memory-server/src/main/java/org/apache/dubbo/samples/provider/Application.java
index 0b7dfb9..aaf9d79 100644
--- a/99-integration/dubbo-samples-memory-server/src/main/java/org/apache/dubbo/samples/provider/Application.java
+++ b/99-integration/dubbo-samples-memory-server/src/main/java/org/apache/dubbo/samples/provider/Application.java
@@ -35,9 +35,11 @@
         ServiceConfig<GreetingsService> service = new ServiceConfig<>();
         service.setInterface(GreetingsService.class);
         service.setRef(new GreetingsServiceImpl());
+        service.setTimeout(60000);
         ServiceConfig<QosService> qosService = new ServiceConfig<>();
         qosService.setInterface(QosService.class);
         qosService.setRef(new QosServiceImpl());
+        qosService.setTimeout(60000);
         ApplicationConfig applicationConfig = new ApplicationConfig("first-dubbo-provider");
 
         DubboBootstrap dubboBootstrap = DubboBootstrap.getInstance()
diff --git a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-configcenter/pom.xml b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-configcenter/pom.xml
index 3eda33c..9655bf8 100644
--- a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-configcenter/pom.xml
+++ b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-configcenter/pom.xml
@@ -30,9 +30,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -54,10 +55,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -69,7 +77,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -91,6 +99,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-annotation/pom.xml b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-annotation/pom.xml
index cf24ef1..75ad47f 100644
--- a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-annotation/pom.xml
+++ b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-annotation/pom.xml
@@ -30,9 +30,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -54,10 +55,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -69,7 +77,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -91,6 +99,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-properties/pom.xml b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-properties/pom.xml
index 4f4c025..b84f715 100644
--- a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-properties/pom.xml
+++ b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-properties/pom.xml
@@ -30,9 +30,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -54,10 +55,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -69,7 +77,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -91,6 +99,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-xml/pom.xml b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-xml/pom.xml
index 2951fa1..4177335 100644
--- a/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-xml/pom.xml
+++ b/99-integration/dubbo-samples-metadata-report/dubbo-samples-metadata-report-local-xml/pom.xml
@@ -30,9 +30,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
     </properties>
 
@@ -54,10 +55,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -75,7 +83,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -91,6 +99,42 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml
index cb62091..62a7e26 100644
--- a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml
+++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-mybatis-api</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml
index 35f9ab6..70310cb 100644
--- a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml
+++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-mybatis-consumer</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -45,4 +45,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml
index edab085..2471729 100644
--- a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml
+++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml
@@ -28,8 +28,8 @@
     <artifactId>dubbo-samples-spring-boot-mybatis-provider</artifactId>
 
     <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -64,4 +64,4 @@
             <version>${mybatis-plus-starter.version}</version>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-mybatis/pom.xml b/99-integration/dubbo-samples-mybatis/pom.xml
index c410fd4..d053207 100644
--- a/99-integration/dubbo-samples-mybatis/pom.xml
+++ b/99-integration/dubbo-samples-mybatis/pom.xml
@@ -41,7 +41,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring-boot.version>2.4.1</spring-boot.version>
         <mybatis-plus-starter.version>3.4.2</mybatis-plus-starter.version>
@@ -66,7 +66,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -87,7 +87,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-consumer/pom.xml b/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-consumer/pom.xml
index 3db2626..81102e8 100644
--- a/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-consumer/pom.xml
+++ b/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-consumer/pom.xml
@@ -61,6 +61,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider1/pom.xml b/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider1/pom.xml
index 919a542..5fddf5f 100644
--- a/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider1/pom.xml
+++ b/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider1/pom.xml
@@ -49,6 +49,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider2/pom.xml b/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider2/pom.xml
index e3fc9ef..27b2b46 100644
--- a/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider2/pom.xml
+++ b/99-integration/dubbo-samples-nacos-merge/dubbo-samples-nacos-merge-provider2/pom.xml
@@ -49,6 +49,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/99-integration/dubbo-samples-nacos-merge/pom.xml b/99-integration/dubbo-samples-nacos-merge/pom.xml
index 60b234a..e38b927 100644
--- a/99-integration/dubbo-samples-nacos-merge/pom.xml
+++ b/99-integration/dubbo-samples-nacos-merge/pom.xml
@@ -43,7 +43,7 @@
     </modules>
 
     <properties>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <source.level>1.8</source.level>
diff --git a/99-integration/dubbo-samples-port-unification-netty3/pom.xml b/99-integration/dubbo-samples-port-unification-netty3/pom.xml
index 5da1e4d..fde968b 100644
--- a/99-integration/dubbo-samples-port-unification-netty3/pom.xml
+++ b/99-integration/dubbo-samples-port-unification-netty3/pom.xml
@@ -34,7 +34,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
@@ -52,7 +52,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -68,7 +68,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <version>${dubbo.version}</version>
         </dependency>
diff --git a/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-consumer/pom.xml b/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-consumer/pom.xml
index c7d3ad8..ecf6124 100644
--- a/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-consumer/pom.xml
+++ b/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-consumer/pom.xml
@@ -59,6 +59,12 @@
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-fst</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jackson-core</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -68,7 +74,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -101,4 +107,4 @@
             </dependencies>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-provider/pom.xml b/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-provider/pom.xml
index a4d60bb..ee37312 100644
--- a/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-provider/pom.xml
+++ b/99-integration/dubbo-samples-prefer-serialization-test-31x/dubbo-samples-prefer-serialization-test-31x-provider/pom.xml
@@ -54,6 +54,12 @@
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-fst</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jackson-core</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -63,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -96,4 +102,4 @@
             </dependencies>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-prefer-serialization-test-31x/pom.xml b/99-integration/dubbo-samples-prefer-serialization-test-31x/pom.xml
index c91b124..e5a133d 100644
--- a/99-integration/dubbo-samples-prefer-serialization-test-31x/pom.xml
+++ b/99-integration/dubbo-samples-prefer-serialization-test-31x/pom.xml
@@ -35,7 +35,7 @@
     <description>Dubbo Samples Prefer Serialization Integration Test For 3.1.x compatibility</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <dubbo-serialization-fastjson.version>1.0.1</dubbo-serialization-fastjson.version>
         <dubbo-serialization-gson.version>1.0.1</dubbo-serialization-gson.version>
         <dubbo-serialization-fst.version>1.0.1</dubbo-serialization-fst.version>
@@ -79,7 +79,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -106,6 +106,12 @@
                 <groupId>org.apache.dubbo.extensions</groupId>
                 <artifactId>dubbo-serialization-fst</artifactId>
                 <version>${dubbo-serialization-fst.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>jackson-core</artifactId>
+                        <groupId>com.fasterxml.jackson.core</groupId>
+                    </exclusion>
+                </exclusions>
             </dependency>
 
             <dependency>
@@ -129,4 +135,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-consumer/pom.xml b/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-consumer/pom.xml
index b3909e7..3b8c2cc 100644
--- a/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-consumer/pom.xml
+++ b/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-consumer/pom.xml
@@ -53,11 +53,17 @@
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-fst</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jackson-core</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -90,4 +96,4 @@
             </dependencies>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-provider/pom.xml b/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-provider/pom.xml
index 2a73902..35fbbed 100644
--- a/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-provider/pom.xml
+++ b/99-integration/dubbo-samples-prefer-serialization-test/dubbo-samples-prefer-serialization-test-provider/pom.xml
@@ -54,11 +54,17 @@
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-fst</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jackson-core</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -91,4 +97,4 @@
             </dependencies>
         </profile>
     </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-prefer-serialization-test/pom.xml b/99-integration/dubbo-samples-prefer-serialization-test/pom.xml
index 5cd5e17..89dc9ec 100644
--- a/99-integration/dubbo-samples-prefer-serialization-test/pom.xml
+++ b/99-integration/dubbo-samples-prefer-serialization-test/pom.xml
@@ -35,7 +35,7 @@
     <description>Dubbo Samples Prefer Serialization Integration Test</description>
 
     <properties>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <dubbo-serialization-fastjson.version>1.0.1</dubbo-serialization-fastjson.version>
         <dubbo-serialization-gson.version>1.0.1</dubbo-serialization-gson.version>
         <dubbo-serialization-fst.version>1.0.1</dubbo-serialization-fst.version>
@@ -78,7 +78,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -105,6 +105,12 @@
                 <groupId>org.apache.dubbo.extensions</groupId>
                 <artifactId>dubbo-serialization-fst</artifactId>
                 <version>${dubbo-serialization-fst.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>jackson-core</artifactId>
+                        <groupId>com.fasterxml.jackson.core</groupId>
+                    </exclusion>
+                </exclusions>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -122,4 +128,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-registry-test-curator-instance/pom.xml b/99-integration/dubbo-samples-registry-test-curator-instance/pom.xml
index c1f487d..5b48b50 100644
--- a/99-integration/dubbo-samples-registry-test-curator-instance/pom.xml
+++ b/99-integration/dubbo-samples-registry-test-curator-instance/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <curator.version>4.2.0</curator.version>
         <zookeeper.version>3.7.0</zookeeper.version>
         <junit.version>4.13.1</junit.version>
@@ -115,6 +115,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
@@ -148,4 +149,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-registry-test-curator-interface/pom.xml b/99-integration/dubbo-samples-registry-test-curator-interface/pom.xml
index 66f2e07..595be88 100644
--- a/99-integration/dubbo-samples-registry-test-curator-interface/pom.xml
+++ b/99-integration/dubbo-samples-registry-test-curator-interface/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <curator.version>4.2.0</curator.version>
         <zookeeper.version>3.7.0</zookeeper.version>
         <junit.version>4.13.1</junit.version>
@@ -115,6 +115,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
@@ -148,4 +149,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-registry-test-curator/pom.xml b/99-integration/dubbo-samples-registry-test-curator/pom.xml
index 2c85f57..4831763 100644
--- a/99-integration/dubbo-samples-registry-test-curator/pom.xml
+++ b/99-integration/dubbo-samples-registry-test-curator/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <curator.version>4.2.0</curator.version>
         <zookeeper.version>3.7.0</zookeeper.version>
         <junit.version>4.13.1</junit.version>
@@ -116,6 +116,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
@@ -149,4 +150,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-registry-test-nacos-instance/pom.xml b/99-integration/dubbo-samples-registry-test-nacos-instance/pom.xml
index f5c0ac6..3c3c016 100644
--- a/99-integration/dubbo-samples-registry-test-nacos-instance/pom.xml
+++ b/99-integration/dubbo-samples-registry-test-nacos-instance/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.1.1</nacos.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
@@ -96,11 +96,13 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
 
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
 
         <dependency>
@@ -140,4 +142,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-registry-test-nacos-interface/pom.xml b/99-integration/dubbo-samples-registry-test-nacos-interface/pom.xml
index 52907df..4b662df 100644
--- a/99-integration/dubbo-samples-registry-test-nacos-interface/pom.xml
+++ b/99-integration/dubbo-samples-registry-test-nacos-interface/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.1.1</nacos.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
@@ -96,11 +96,13 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
 
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
 
         <dependency>
@@ -140,4 +142,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-registry-test-nacos/pom.xml b/99-integration/dubbo-samples-registry-test-nacos/pom.xml
index 625f5f0..8ea5c18 100644
--- a/99-integration/dubbo-samples-registry-test-nacos/pom.xml
+++ b/99-integration/dubbo-samples-registry-test-nacos/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <nacos.version>2.1.1</nacos.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
@@ -96,11 +96,13 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
 
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
         </dependency>
 
         <dependency>
@@ -140,4 +142,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-consumer/pom.xml b/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-consumer/pom.xml
index 270d6f5..360cff6 100644
--- a/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-consumer/pom.xml
+++ b/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-consumer/pom.xml
@@ -47,7 +47,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-provider/pom.xml b/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-provider/pom.xml
index e74204d..d6f6701 100644
--- a/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-provider/pom.xml
+++ b/99-integration/dubbo-samples-rest-withtoken/dubbo-samples-rest-withtoken-provider/pom.xml
@@ -48,7 +48,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <exclusions>
                 <exclusion>
diff --git a/99-integration/dubbo-samples-rest-withtoken/pom.xml b/99-integration/dubbo-samples-rest-withtoken/pom.xml
index 1b56885..7186335 100644
--- a/99-integration/dubbo-samples-rest-withtoken/pom.xml
+++ b/99-integration/dubbo-samples-rest-withtoken/pom.xml
@@ -33,7 +33,7 @@
         <spring-boot-maven-plugin.version>2.1.1.RELEASE</spring-boot-maven-plugin.version>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <maven.compiler.source>${source.level}</maven.compiler.source>
         <maven.compiler.target>${target.level}</maven.compiler.target>
     </properties>
@@ -84,7 +84,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/99-integration/dubbo-samples-router-chain-switch/pom.xml b/99-integration/dubbo-samples-router-chain-switch/pom.xml
index f94e775..54f3d81 100644
--- a/99-integration/dubbo-samples-router-chain-switch/pom.xml
+++ b/99-integration/dubbo-samples-router-chain-switch/pom.xml
@@ -33,7 +33,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <dubbo.version>3.2.0-beta.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
@@ -51,7 +51,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -67,7 +67,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
             <version>${dubbo.version}</version>
         </dependency>
@@ -92,4 +92,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-consumer/pom.xml b/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-consumer/pom.xml
index 460ca79..55df55d 100644
--- a/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-consumer/pom.xml
+++ b/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-consumer/pom.xml
@@ -43,7 +43,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider1/pom.xml b/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider1/pom.xml
index 8018e8a..ff02159 100644
--- a/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider1/pom.xml
+++ b/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider1/pom.xml
@@ -43,7 +43,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider2/pom.xml b/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider2/pom.xml
index e13125a..aa0c64c 100644
--- a/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider2/pom.xml
+++ b/99-integration/dubbo-samples-sd-group/dubbo-samples-sd-group-provider2/pom.xml
@@ -43,7 +43,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/99-integration/dubbo-samples-sd-group/pom.xml b/99-integration/dubbo-samples-sd-group/pom.xml
index d014c22..e4888f6 100644
--- a/99-integration/dubbo-samples-sd-group/pom.xml
+++ b/99-integration/dubbo-samples-sd-group/pom.xml
@@ -31,7 +31,7 @@
     <artifactId>dubbo-samples-sd-group</artifactId>
     <version>1.0-SNAPSHOT</version>
     <packaging>pom</packaging>
-    
+
     <name>Dubbo Samples Sd Group</name>
     <description>Dubbo Samples Sd Group</description>
 
@@ -43,7 +43,7 @@
     </modules>
 
     <properties>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <source.level>1.8</source.level>
@@ -77,7 +77,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-consumer/pom.xml b/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-consumer/pom.xml
index d7907a8..de286b9 100644
--- a/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-consumer/pom.xml
+++ b/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-consumer/pom.xml
@@ -43,7 +43,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider1/pom.xml b/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider1/pom.xml
index 8b19a9c..cb9cd25 100644
--- a/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider1/pom.xml
+++ b/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider1/pom.xml
@@ -43,7 +43,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider2/pom.xml b/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider2/pom.xml
index 01b6fd5..8df9906 100644
--- a/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider2/pom.xml
+++ b/99-integration/dubbo-samples-sd-merge/dubbo-samples-sd-merge-provider2/pom.xml
@@ -43,7 +43,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
     </dependencies>
diff --git a/99-integration/dubbo-samples-sd-merge/pom.xml b/99-integration/dubbo-samples-sd-merge/pom.xml
index c680d29..a8a5972 100644
--- a/99-integration/dubbo-samples-sd-merge/pom.xml
+++ b/99-integration/dubbo-samples-sd-merge/pom.xml
@@ -43,7 +43,7 @@
     </modules>
 
     <properties>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <source.level>1.8</source.level>
@@ -77,7 +77,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/99-integration/dubbo-samples-sd-version/pom.xml b/99-integration/dubbo-samples-sd-version/pom.xml
index 6c48ef0..ace2cf6 100644
--- a/99-integration/dubbo-samples-sd-version/pom.xml
+++ b/99-integration/dubbo-samples-sd-version/pom.xml
@@ -37,7 +37,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -61,7 +61,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -76,7 +76,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/99-integration/dubbo-samples-sentinel-compact/pom.xml b/99-integration/dubbo-samples-sentinel-compact/pom.xml
index 5c9506a..2ed370a 100644
--- a/99-integration/dubbo-samples-sentinel-compact/pom.xml
+++ b/99-integration/dubbo-samples-sentinel-compact/pom.xml
@@ -37,9 +37,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <sentinel.version>1.8.4</sentinel.version>
     </properties>
 
@@ -61,11 +62,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>1.7.25</version>
@@ -95,7 +103,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
@@ -116,6 +124,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-sentinel-dubbo3/pom.xml b/99-integration/dubbo-samples-sentinel-dubbo3/pom.xml
index 5d15104..054040d 100644
--- a/99-integration/dubbo-samples-sentinel-dubbo3/pom.xml
+++ b/99-integration/dubbo-samples-sentinel-dubbo3/pom.xml
@@ -37,9 +37,10 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <sentinel.version>1.8.6</sentinel.version>
     </properties>
 
@@ -61,7 +62,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -71,6 +72,13 @@
                 <version>1.7.25</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -95,7 +103,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
         <dependency>
@@ -116,6 +124,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-serialize-check/pom.xml b/99-integration/dubbo-samples-serialize-check/pom.xml
index 52cdc56..3be2ccf 100644
--- a/99-integration/dubbo-samples-serialize-check/pom.xml
+++ b/99-integration/dubbo-samples-serialize-check/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -61,6 +61,13 @@
             </dependency>
 
             <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -76,7 +83,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -99,6 +106,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
diff --git a/99-integration/dubbo-samples-serialize-check/src/main/java/org/apache/dubbo/samples/Provider.java b/99-integration/dubbo-samples-serialize-check/src/main/java/org/apache/dubbo/samples/Provider.java
index cd361b9..96ba7d1 100644
--- a/99-integration/dubbo-samples-serialize-check/src/main/java/org/apache/dubbo/samples/Provider.java
+++ b/99-integration/dubbo-samples-serialize-check/src/main/java/org/apache/dubbo/samples/Provider.java
@@ -111,6 +111,7 @@
 
         ApplicationConfig applicationConfig = new ApplicationConfig();
         applicationConfig.setSerializeCheckStatus("STRICT");
+        applicationConfig.setTrustSerializeClassLevel(3);
         applicationConfig.setName("provider");
         DubboBootstrap.getInstance()
                 .application(applicationConfig)
diff --git a/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIT.java b/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIT.java
index ef20db2..2ede188 100644
--- a/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIT.java
+++ b/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIT.java
@@ -18,10 +18,6 @@
  */
 package org.apache.dubbo.test;
 
-import java.lang.reflect.Proxy;
-import java.util.Arrays;
-import java.util.Map;
-
 import org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
 import org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -36,18 +32,23 @@
 import org.apache.dubbo.samples.Parent;
 import org.apache.dubbo.samples.User;
 import org.apache.dubbo.samples.User2;
+
+import io.dubbo.test2.OthersSerializable;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import io.dubbo.test2.OthersSerializable;
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.Map;
 
 public class CheckIT {
     @BeforeClass
     public static void setup() {
         ApplicationConfig applicationConfig = new ApplicationConfig();
         applicationConfig.setSerializeCheckStatus("STRICT");
+        applicationConfig.setTrustSerializeClassLevel(3);
         applicationConfig.setName("consumer");
         DubboBootstrap.getInstance()
                 .application(applicationConfig)
diff --git a/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIoIT.java b/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIoIT.java
index 4a9809a..c26b2b5 100644
--- a/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIoIT.java
+++ b/99-integration/dubbo-samples-serialize-check/src/test/java/org/apache/dubbo/test/CheckIoIT.java
@@ -18,10 +18,6 @@
  */
 package org.apache.dubbo.test;
 
-import java.lang.reflect.Proxy;
-import java.util.Arrays;
-import java.util.Map;
-
 import org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
 import org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -31,10 +27,6 @@
 import org.apache.dubbo.config.bootstrap.DubboBootstrap;
 import org.apache.dubbo.rpc.model.FrameworkModel;
 import org.apache.dubbo.rpc.service.GenericService;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
 
 import io.dubbo.test.DemoService2;
 import io.dubbo.test.NotSerializable;
@@ -42,12 +34,21 @@
 import io.dubbo.test.User;
 import io.dubbo.test.User2;
 import io.dubbo.test2.OthersSerializable;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.Map;
 
 public class CheckIoIT {
     @BeforeClass
     public static void setup() {
         ApplicationConfig applicationConfig = new ApplicationConfig();
         applicationConfig.setSerializeCheckStatus("STRICT");
+        applicationConfig.setTrustSerializeClassLevel(3);
         applicationConfig.setName("consumer");
         DubboBootstrap.getInstance()
                 .application(applicationConfig)
diff --git a/99-integration/dubbo-samples-switch-serialization-thread/pom.xml b/99-integration/dubbo-samples-switch-serialization-thread/pom.xml
index 5f37a37..5e50854 100644
--- a/99-integration/dubbo-samples-switch-serialization-thread/pom.xml
+++ b/99-integration/dubbo-samples-switch-serialization-thread/pom.xml
@@ -36,8 +36,9 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
+        <zookeeper_version>3.8.1</zookeeper_version>
         <junit.version>4.13.1</junit.version>
     </properties>
 
@@ -59,11 +60,18 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>parent</artifactId>
+                <version>${zookeeper_version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>1.7.25</version>
@@ -84,7 +92,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -99,6 +107,43 @@
             <artifactId>spring-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+
+        <!-- Embedded Zookeeper Server dependencies START -->
+        <dependency>
+            <groupId>com.github.spotbugs</groupId>
+            <artifactId>spotbugs-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.xerial.snappy</groupId>
+            <artifactId>snappy-java</artifactId>
+        </dependency>
+        <!-- Embedded Zookeeper Server dependencies END -->
     </dependencies>
 
     <profiles>
diff --git a/99-integration/dubbo-samples-test-10704/pom.xml b/99-integration/dubbo-samples-test-10704/pom.xml
index a046041..a54eebe 100644
--- a/99-integration/dubbo-samples-test-10704/pom.xml
+++ b/99-integration/dubbo-samples-test-10704/pom.xml
@@ -33,7 +33,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -57,7 +57,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -72,7 +72,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/99-integration/dubbo-samples-test-11096/pom.xml b/99-integration/dubbo-samples-test-11096/pom.xml
index ed3f288..fc89931 100644
--- a/99-integration/dubbo-samples-test-11096/pom.xml
+++ b/99-integration/dubbo-samples-test-11096/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -60,7 +60,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -75,7 +75,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -123,4 +123,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-test-11137/pom.xml b/99-integration/dubbo-samples-test-11137/pom.xml
index 99b92e3..8ea4ef1 100644
--- a/99-integration/dubbo-samples-test-11137/pom.xml
+++ b/99-integration/dubbo-samples-test-11137/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
@@ -76,6 +76,13 @@
             </dependency>
 
             <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -91,7 +98,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -121,6 +128,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
@@ -154,4 +162,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-test-11159/pom.xml b/99-integration/dubbo-samples-test-11159/pom.xml
index a76f9a5..4a7988e 100644
--- a/99-integration/dubbo-samples-test-11159/pom.xml
+++ b/99-integration/dubbo-samples-test-11159/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <awaitility.version>4.2.0</awaitility.version>
@@ -76,6 +76,13 @@
             </dependency>
 
             <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
@@ -91,7 +98,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -121,6 +128,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
         </dependency>
     </dependencies>
 
@@ -154,4 +162,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-test-11557/pom.xml b/99-integration/dubbo-samples-test-11557/pom.xml
index 2bd275e..511b5e0 100644
--- a/99-integration/dubbo-samples-test-11557/pom.xml
+++ b/99-integration/dubbo-samples-test-11557/pom.xml
@@ -36,7 +36,7 @@
     <description>Dubbo Samples Test For Issue 11557</description>
 
     <properties>
-        <dubbo.version>3.1.5</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit5.version>5.9.2</junit5.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/99-integration/dubbo-samples-test-11558/pom.xml b/99-integration/dubbo-samples-test-11558/pom.xml
index beae4c2..a3fb018 100644
--- a/99-integration/dubbo-samples-test-11558/pom.xml
+++ b/99-integration/dubbo-samples-test-11558/pom.xml
@@ -36,7 +36,7 @@
     <description>Dubbo Samples Test For Issue 11557</description>
 
     <properties>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit5.version>5.9.2</junit5.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/99-integration/dubbo-samples-test-11716/pom.xml b/99-integration/dubbo-samples-test-11716/pom.xml
index c17ae08..53abc4e 100644
--- a/99-integration/dubbo-samples-test-11716/pom.xml
+++ b/99-integration/dubbo-samples-test-11716/pom.xml
@@ -36,7 +36,7 @@
     <description>Dubbo Samples Test For Issue 11557</description>
 
     <properties>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit5.version>5.9.2</junit5.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/99-integration/dubbo-samples-test-11782/pom.xml b/99-integration/dubbo-samples-test-11782/pom.xml
index 9370ff6..0a94901 100644
--- a/99-integration/dubbo-samples-test-11782/pom.xml
+++ b/99-integration/dubbo-samples-test-11782/pom.xml
@@ -36,7 +36,7 @@
     <description>Dubbo Samples Test For Issue 11557</description>
 
     <properties>
-        <dubbo.version>3.1.7</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <junit5.version>5.9.2</junit5.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/99-integration/dubbo-samples-test-12208/dubbo-samples-test-12208-test/pom.xml b/99-integration/dubbo-samples-test-12208/dubbo-samples-test-12208-test/pom.xml
index 3d31f7c..2f6a0cb 100644
--- a/99-integration/dubbo-samples-test-12208/dubbo-samples-test-12208-test/pom.xml
+++ b/99-integration/dubbo-samples-test-12208/dubbo-samples-test-12208-test/pom.xml
@@ -45,7 +45,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/99-integration/dubbo-samples-test-12208/pom.xml b/99-integration/dubbo-samples-test-12208/pom.xml
index 8b79c10..67b9db4 100644
--- a/99-integration/dubbo-samples-test-12208/pom.xml
+++ b/99-integration/dubbo-samples-test-12208/pom.xml
@@ -75,7 +75,7 @@
 
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
diff --git a/99-integration/dubbo-samples-test-9806/pom.xml b/99-integration/dubbo-samples-test-9806/pom.xml
index d191678..937ac6b 100644
--- a/99-integration/dubbo-samples-test-9806/pom.xml
+++ b/99-integration/dubbo-samples-test-9806/pom.xml
@@ -36,7 +36,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
@@ -60,7 +60,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -75,7 +75,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
@@ -123,4 +123,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/99-integration/dubbo-samples-transaction/pom.xml b/99-integration/dubbo-samples-transaction/pom.xml
index 8bb6148..db83bff 100644
--- a/99-integration/dubbo-samples-transaction/pom.xml
+++ b/99-integration/dubbo-samples-transaction/pom.xml
@@ -37,7 +37,7 @@
     <properties>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
-        <dubbo.version>3.1.6</dubbo.version>
+        <dubbo.version>3.2.0</dubbo.version>
         <seata.version>1.4.2</seata.version>
         <spring.version>4.3.29.RELEASE</spring.version>
         <junit.version>4.13.1</junit.version>
@@ -62,7 +62,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
             </dependency>
@@ -77,7 +77,7 @@
 
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <type>pom</type>
         </dependency>
 
diff --git a/README.md b/README.md
index b10709b..35f9b6b 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
 # Dubbo Samples
 
-Samples for Apache Dubbo
+Samples for Apache Dubbo.
 
 ![Build Status](https://github.com/apache/dubbo-samples/workflows/Dubbo%202/badge.svg)
 ![license](https://img.shields.io/github/license/apache/dubbo-samples.svg)
 
-This repository contains a number of projects to illustrate various usages of Dubbo from basic to advanced, pls. check README in each individual sub projects. It is also helpful to cross reference to [Dubbo User Manual](https://dubbo.apache.org/en/docs/v2.7/user/quick-start/) to understand the features demoed in this project.
+This repository contains a number of projects to illustrate various usages of Dubbo from basic to advanced, pls. check README in each individual sub projects. It is also helpful to cross reference to [Dubbo User Manual](https://dubbo.apache.org/zh-cn/overview/tasks/) to understand the features demoed in this project.
 
 What's more, [dubbo-go](https://github.com/apache/dubbo-go) samples are moved to [dubbo-go-samples](https://github.com/apache/dubbo-go-samples).
 
@@ -13,15 +13,20 @@
 
 To compile all samples, run the following command in the top directory of this project, or step into the sub directories to compile one single sample:
 
+We do not recommend you build the entire project from the root directory, as building the entire samples can take a long time. Each module in Samples is designed independently so you can first go to the demo directory you care about, then execute the build and run the demo.
+
+For example,
+
 ```bash
-mvn clean package
+$ cd 1-basic/dubbo-samples-spring-boot
+$ mvn clean package
 ```
 
 You may need to read each individual README under the sub directories if you have to understand how to build and run.
 
 ## Integration Test
 
-This project is also used for integration tests for dubbo.
+This project is also used for integration tests for dubbo. If you are just learning how to use Dubbo you don't have to care about this part.
 
 **How to build and run a integration test**
 
diff --git a/test/convert-case.md b/test/convert-case.md
index bcfd765..0595ae2 100644
--- a/test/convert-case.md
+++ b/test/convert-case.md
@@ -259,7 +259,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
         </dependency>
@@ -289,7 +289,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
         </dependency>
@@ -366,7 +366,7 @@
 <dependencies>
     <dependency>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-dependencies-zookeeper</artifactId>
+        <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
         <type>pom</type>
     </dependency>
 </dependencies>
