This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/master by this push:
new 98cf988b6e [fix] 优化代码格式 (#1170)
98cf988b6e is described below
commit 98cf988b6e27c7836d92ef3d0101a001699d43a8
Author: JIAN ZHONG <[email protected]>
AuthorDate: Thu Jun 30 20:45:45 2022 +0800
[fix] 优化代码格式 (#1170)
---
.../performance/simplify-registry-data.md | 185 +++++++++++++--------
1 file changed, 115 insertions(+), 70 deletions(-)
diff --git
a/content/zh/docs3-building/java-sdk/advanced-features-and-usage/performance/simplify-registry-data.md
b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/performance/simplify-registry-data.md
index 755da15b49..e66718c8ae 100644
---
a/content/zh/docs3-building/java-sdk/advanced-features-and-usage/performance/simplify-registry-data.md
+++
b/content/zh/docs3-building/java-sdk/advanced-features-and-usage/performance/simplify-registry-data.md
@@ -1,3 +1,4 @@
+
---
type: docs
title: "注册信息简化"
@@ -6,7 +7,8 @@ weight: 3
description: "了解 dubbo3 减少注册中心上服务的注册数据"
---
-## 特性说明
+## 特性说明:
+
Dubbo provider 中的服务配置项有接近 [30 个配置项](/zh/docs/references/xml/dubbo-parameter)。
排除注册中心服务治理需要之外,很大一部分配置项是 provider 自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以 key-value
形式持久化存储。
Dubbo consumer 中的配置项也有
[20+个配置项](/zh/docs/references/xml/dubbo-consumer)。在注册中心之中,服务消费者列表中只需要关注
application,version,group,ip,dubbo 版本等少量配置,其他配置也可以以 key-value 形式持久化存储。
@@ -68,25 +70,26 @@ Constant Key 表示来自于类 org.apache.dubbo.common.Constants 的字段。
参考 sample 子工程:
dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-nosimple (跑
sample 前,先跑下 ZKClean 进行配置项清理)
##### dubbo-provider.xml 配置:
-```
-<dubbo:application name="simplified-registry-nosimple-provider"/>
-<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
-<bean id="demoService"
class="org.apache.dubbo.samples.simplified.registry.nosimple.impl.DemoServiceImpl"/>
-<dubbo:service async="true"
interface="org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService"
- version="1.2.3" group="dubbo-simple" ref="demoService"
- executes="4500" retries="7" owner="vict" timeout="5300"/>
-```
+
+```
+<dubbo:application name="simplified-registry-nosimple-provider"/>
+<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
+<bean id="demoService"
class="org.apache.dubbo.samples.simplified.registry.nosimple.impl.DemoServiceImpl"/>
+<dubbo:service async="true"
interface="org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService"
+ version="1.2.3" group="dubbo-simple" ref="demoService"
+ executes="4500" retries="7" owner="vict" timeout="5300"/>
+```
启动 provider 的 main 方法之后,查看 zookeeper
的叶子节点(路径为:/dubbo/org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService/providers
目录下)的内容如下:
-```
-dubbo%3A%2F%2F30.5.124.158%3A20880%2Forg.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService
-%3Fanyhost%3Dtrue%26application%3Dsimplified-registry-xml-provider%26async%3Dtrue%26dubbo%3D
-2.0.2%26**executes**%3D4500%26generic%3Dfalse%26group%3Ddubbo-simple%26interface%3D
-org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService%26methods%3D
-sayHello%26**owner**%3Dvict%26pid%3D2767%26**retries**%3D7%26revision%3D1.2.3%26side%3D
-provider%26**timeout**%3D5300%26timestamp%3D1542361152795%26valid%3Dtrue%26version%3D1.2.3
-```
+```
+dubbo%3A%2F%2F30.5.124.158%3A20880%2Forg.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService
+%3Fanyhost%3Dtrue%26application%3Dsimplified-registry-xml-provider%26async%3Dtrue%26dubbo%3D
+2.0.2%26**executes**%3D4500%26generic%3Dfalse%26group%3Ddubbo-simple%26interface%3D
+org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService%26methods%3D
+sayHello%26**owner**%3Dvict%26pid%3D2767%26**retries**%3D7%26revision%3D1.2.3%26side%3D
+provider%26**timeout**%3D5300%26timestamp%3D1542361152795%26valid%3Dtrue%26version%3D1.2.3
+```
从加粗字体中能看到有:executes, retries, owner, timeout。但是这些字段不是每个都需要传递给 dubbo ops 或者
dubbo consumer。 同样的,consumer 也有这个问题,可以在例子中启动 Consumer 的 main 方法进行查看。
@@ -98,8 +101,7 @@ sample 在
dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-x
##### dubbo.properties
-```properties
-
+```properties
dubbo.registry.simplified=true
dubbo.registry.extra-keys=retries,owner
```
@@ -114,35 +116,53 @@ dubbo.registry.extra-keys=retries,owner
#### provider 端配置:
-```xml
-<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <!-- optional -->
<dubbo:application name="simplified-registry-xml-provider"/> <dubbo:registry
address="zookeeper://127.0.0.1:2181"/> <bean id="demoService" class="org.apach
[...]
-</beans>
-```
+```xml
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
+ xmlns="http://www.springframework.org/schema/beans"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+ http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
+ <!-- optional -->
+ <dubbo:application name="simplified-registry-xml-provider"/>
+ <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
+ <bean id="demoService"
class="org.apache.dubbo.samples.simplified.registry.nosimple.impl.DemoServiceImpl"/>
+ <dubbo:service async="true"
interface="org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService"
version="1.2.3" group="dubbo-simple"
+ ref="demoService" executes="4500" retries="7" owner="vict"
timeout="5300"/>
+
+</beans>
+```
得到的 zookeeper 的叶子节点的值:
-```
-dubbo%3A%2F%2F30.5.124.149%3A20880%2Forg.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService%3F
-application%3Dsimplified-registry-xml-provider%26dubbo%3D2.0.2%26group%3Ddubbo-simple%26**owner**%3D
-vict%26**retries**%3D7%26**timeout**%3D5300%26timestamp%3D1542594503305%26version%3D1.2.3
+```
+dubbo%3A%2F%2F30.5.124.149%3A20880%2Forg.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService%3F
+application%3Dsimplified-registry-xml-provider%26dubbo%3D2.0.2%26group%3Ddubbo-simple%26**owner**%3D
+vict%26**retries**%3D7%26**timeout**%3D5300%26timestamp%3D1542594503305%26version%3D1.2.3
```
#### consumer 端配置
* 配置:dubbo.registry.simplified=true
* 默认情况:application,version,group,dubbo 在默认的配置项列表,所以还是会进入注册中心。
-```xml
-
-<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
- <!-- optional --> <dubbo:application
name="simplified-registry-xml-consumer"/>
- <dubbo:registry address="zookeeper://127.0.0.1:2181" username="xxx"
password="yyy" check="true"/>
- <dubbo:reference id="demoService"
interface="org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService"
owner="vvv" retries="4" actives="6" timeout="4500" version="1.2.3"
group="dubbo-simple"/>
-</beans>
+```xml
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
+ xmlns="http://www.springframework.org/schema/beans"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+ http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
+
+ <!-- optional -->
+ <dubbo:application name="simplified-registry-xml-consumer"/>
+
+ <dubbo:registry address="zookeeper://127.0.0.1:2181" username="xxx"
password="yyy" check="true"/>
+
+ <dubbo:reference id="demoService"
interface="org.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService"
+ owner="vvv" retries="4" actives="6" timeout="4500"
version="1.2.3" group="dubbo-simple"/>
+
+</beans>
```
得到的 zookeeper 的叶子节点的值:
-```
-consumer%3A%2F%2F30.5.124.149%2Forg.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService%3F
-actives%3D6%26application%3Dsimplified-registry-xml-consumer%26category%3D
-consumers%26check%3Dfalse%26dubbo%3D2.0.2%26group%3Ddubbo-simple%26owner%3Dvvv%26version%3D1.2.3
+```
+consumer%3A%2F%2F30.5.124.149%2Forg.apache.dubbo.samples.simplified.registry.nosimple.api.DemoService%3F
+actives%3D6%26application%3Dsimplified-registry-xml-consumer%26category%3D
+consumers%26check%3Dfalse%26dubbo%3D2.0.2%26group%3Ddubbo-simple%26owner%3Dvvv%26version%3D1.2.3
```
### 方式2. 配置声明 spring bean
@@ -162,18 +182,28 @@ sample 在
dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-a
#### Provider 配置
##### privide 端 bean 配置:
-```java
-// 等同于dubbo.properties配置,用@Bean形式进行配置
-@Bean
-public RegistryConfig registryConfig() {
- RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
registryConfig.setSimplified(true);
registryConfig.setExtraKeys("retries,owner"); return registryConfig;}
-```
-
-```java
-// 暴露服务
-@Service(version = "1.1.8", group = "d-test", executes = 4500, retries = 7,
owner = "victanno", timeout = 5300)
-public class AnnotationServiceImpl implements AnnotationService {
- @Override public String sayHello(String name) { System.out.println("async
provider received: " + name); return "annotation: hello, " + name; }}
+```java
+// 等同于dubbo.properties配置,用@Bean形式进行配置
+@Bean
+public RegistryConfig registryConfig() {
+ RegistryConfig registryConfig = new RegistryConfig();
+ registryConfig.setAddress("zookeeper://127.0.0.1:2181");
+ registryConfig.setSimplified(true);
+ registryConfig.setExtraKeys("retries,owner");
+ return registryConfig;
+}
+```
+
+```java
+// 暴露服务
+@Service(version = "1.1.8", group = "d-test", executes = 4500, retries = 7,
owner = "victanno", timeout = 5300)
+public class AnnotationServiceImpl implements AnnotationService {
+ @Override
+ public String sayHello(String name) {
+ System.out.println("async provider received: " + name);
+ return "annotation: hello, " + name;
+ }
+}
```
#### Consumer 配置
@@ -182,27 +212,42 @@ public class AnnotationServiceImpl implements
AnnotationService {
默认情况: application,version,group,dubbo 在默认的配置项列表,所以还是会进入注册中心。
##### consumer 端 bean 配置:
-```java
-@Bean
-public RegistryConfig registryConfig() {
- RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
registryConfig.setSimplified(true); return registryConfig; }```
-
+```java
+@Bean
+public RegistryConfig registryConfig() {
+ RegistryConfig registryConfig = new RegistryConfig();
+ registryConfig.setAddress("zookeeper://127.0.0.1:2181");
+ registryConfig.setSimplified(true);
+ return registryConfig;
+ }
+```
+
消费服务:
-
-```java
-@Component("annotationAction")
-public class AnnotationAction {
-
- @Reference(version = "1.1.8", group = "d-test", owner = "vvvanno", retries =
4, actives = 6, timeout = 4500) private AnnotationService annotationService;
public String doSayHello(String name) { return
annotationService.sayHello(name); }}
-```
+
+```java
+@Component("annotationAction")
+public class AnnotationAction {
+
+ @Reference(version = "1.1.8", group = "d-test", owner = "vvvanno", retries
= 4, actives = 6, timeout = 4500)
+ private AnnotationService annotationService;
+ public String doSayHello(String name) {
+ return annotationService.sayHello(name);
+ }
+}
+```
#### 注意:
如果一个应用中既有 provider 又有 consumer,那么配置需要合并成:
-```java
-@Bean
-public RegistryConfig registryConfig() {
- RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
registryConfig.setSimplified(true); //只对provider生效
- registryConfig.setExtraKeys("retries,owner"); return registryConfig;}
-```
+```java
+@Bean
+public RegistryConfig registryConfig() {
+ RegistryConfig registryConfig = new RegistryConfig();
+ registryConfig.setAddress("zookeeper://127.0.0.1:2181");
+ registryConfig.setSimplified(true);
+ //只对provider生效
+ registryConfig.setExtraKeys("retries,owner");
+ return registryConfig;
+}
+```
#### 提示: