You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@dubbo.apache.org by li...@apache.org on 2018/12/24 07:10:25 UTC
[incubator-dubbo-samples] 02/03: optimize samples for 2.7.0
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch samples-for-2.7.0-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-samples.git
commit c6d502971116f12b27d81f45c49d3ad7e411d1ff
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Dec 18 13:42:43 2018 +0800
optimize samples for 2.7.0
---
.../apache/dubbo/samples/client/Application.java | 16 +-
.../dubbo-samples-concurrency-api}/pom.xml | 23 +-
.../apache/dubbo/samples/governance}/ZKTools.java | 73 ++++--
.../samples/governance/api/AmericanService.java | 24 +-
.../dubbo/samples/governance/api/CatService.java | 24 +-
.../samples/governance/api/ChineseService.java | 24 +-
.../dubbo/samples/governance/api/DogService.java | 24 +-
.../dubbo/samples/governance/api/LionService.java | 24 +-
.../dubbo/samples/governance/api/TigerService.java | 24 +-
.../dubbo-samples-concurrency-backend}/pom.xml | 22 +-
.../dubbo/samples/governance/BackendProvider.java | 8 +-
.../samples/governance/impl/CatServiceImpl.java | 31 +--
.../samples/governance/impl/DogServiceImpl.java | 36 +--
.../samples/governance/impl/LionServiceImpl.java | 31 +--
.../samples/governance/impl/TigerServiceImpl.java | 31 +--
.../src/main/resources/log4j.properties | 20 +-
.../main/resources/spring/dubbo-demo-provider.xml | 22 +-
.../dubbo-samples-concurrency-front}/pom.xml | 22 +-
.../dubbo/samples/governance/FrontendConsumer.java | 120 ++++++++++
.../src/main/resources/log4j.properties | 20 +-
.../main/resources/spring/dubbo-demo-consumer.xml | 14 +-
.../dubbo-samples-concurrency-middle}/pom.xml | 22 +-
.../samples/governance/MiddleEndProvider.java | 9 +-
.../governance/impl/AmericanServiceImpl.java | 68 ++++++
.../governance/impl/ChineseServiceImpl.java | 63 ++++++
.../src/main/resources/log4j.properties | 20 +-
.../main/resources/spring/dubbo-demo-provider.xml | 29 ++-
.../pom.xml | 13 +-
.../resources/spring/dubbo-consumer.properties | 4 +-
.../resources/spring/dubbo-provider.properties | 4 +-
.../java/org/apache/dubbo/samples/ZKTools.java | 10 +-
.../apache/dubbo/samples/client/Application.java | 22 +-
.../apache/dubbo/samples/server/Application.java | 37 ++-
.../samples/externalconfiguration}/ZKTools.java | 19 +-
.../consumer/AnnotationConsumer.java | 13 +-
.../provider/AnnotationProvider.java | 27 ++-
.../spring/MyEnvironmentPostProcessor.java | 2 +-
.../pom.xml} | 23 +-
.../samples/annotation/AnnotationConsumer.java} | 39 ++--
.../samples/annotation}/AnnotationProvider.java | 28 ++-
.../samples/annotation/EmbeddedZooKeeper.java | 249 +++++++++++++++++++++
.../apache/dubbo/samples/annotation}/ZKTools.java | 15 +-
.../annotation/action/AnnotationAction.java} | 22 +-
.../samples/annotation/api/AnnotationService.java} | 17 +-
.../annotation/impl/AnnotationServiceImpl.java} | 21 +-
.../src/main/resources/log4j.properties} | 14 +-
.../resources/spring/dubbo-consumer.properties | 4 +-
.../resources/spring/dubbo-provider.properties | 4 +-
.../apache/dubbo/samples/configcenter/ZKTools.java | 36 ++-
.../META-INF/spring/configcenter-consumer.xml | 2 +-
.../META-INF/spring/configcenter-provider.xml | 9 +-
.../dubbo/samples/configcenter/BasicProvider.java | 2 +-
.../apache/dubbo/samples/configcenter/ZKTools.java | 10 +-
.../META-INF/spring/configcenter-consumer.xml | 2 +-
.../META-INF/spring/configcenter-provider.xml | 4 +-
dubbo-samples-configcenter/pom.xml | 1 +
.../apache/dubbo/samples/governance/ZKTools.java | 27 +--
.../main/resources/spring/dubbo-demo-consumer.xml | 2 +-
.../main/resources/spring/dubbo-demo-provider.xml | 2 +-
.../dubbo/samples/governance/BasicConsumer.java | 4 +-
.../apache/dubbo/samples/governance/ZKTools.java | 10 +-
.../main/resources/spring/dubbo-demo-consumer.xml | 2 +-
.../main/resources/spring/dubbo-demo-provider.xml | 2 +-
.../apache/dubbo/samples/governance/ZKTools.java | 9 +-
.../main/resources/spring/dubbo-demo-consumer.xml | 5 +-
.../main/resources/spring/dubbo-demo-provider.xml | 2 -
.../dubbo/samples/governance/BasicConsumer.java | 7 +-
.../apache/dubbo/samples/governance/ZKTools.java | 12 +-
.../main/resources/spring/dubbo-demo-consumer.xml | 2 +-
.../main/resources/spring/dubbo-demo-provider.xml | 2 +-
pom.xml | 5 +
71 files changed, 1032 insertions(+), 558 deletions(-)
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
index ea1ccf3..c178e30 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
@@ -21,16 +21,20 @@ package org.apache.dubbo.samples.client;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+import org.apache.dubbo.rpc.service.GenericService;
public class Application {
public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
+ ReferenceConfig<GenericService> reference = new ReferenceConfig<>();
reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
+ reference.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181"));
+// reference.setInterface(GreetingsService.class);
+ reference.setGeneric(true);
+ reference.setInterface("org.apache.dubbo.samples.api.GreetingsService");
+ GenericService genericService = reference.get();
+
+
+ Object message = genericService.$invoke("sayHi", new String[]{"java.lang.String"}, new Object[]{"aaa"});
System.out.println(message);
}
}
diff --git a/dubbo-samples-configcenter/pom.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/pom.xml
similarity index 62%
copy from dubbo-samples-configcenter/pom.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/pom.xml
index 864ceef..8bfa596 100644
--- a/dubbo-samples-configcenter/pom.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/pom.xml
@@ -22,36 +22,17 @@
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>
- <artifactId>dubbo-samples-all</artifactId>
+ <artifactId>dubbo-samples-concurrency</artifactId>
<groupId>org.apache.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <packaging>pom</packaging>
- <modules>
- <module>dubbo-samples-configcenter-xml</module>
- <module>dubbo-samples-configcenter-multiprotocol</module>
- <module>dubbo-samples-configcenter-annotation</module>
- <module>dubbo-samples-configcenter-externalconfiguration</module>
- <module>dubbo-samples-configcenter-api</module>
- <!--<module>dubbo-samples-configcenter-springboot</module>-->
- </modules>
-
-
- <artifactId>dubbo-samples-configcenter</artifactId>
+ <artifactId>dubbo-samples-concurrency-api</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-configcenter-zookeeper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-metadata-report-api</artifactId>
- </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
similarity index 50%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
index ede7de3..7a6f1ae 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
@@ -14,12 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.samples.configcenter;
+package org.apache.dubbo.samples.governance;
+
+import org.apache.dubbo.common.utils.StringUtils;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -28,27 +29,27 @@ public class ZKTools {
private static CuratorFramework client;
public static void main(String[] args) throws Exception {
- client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000,
- new ExponentialBackoffRetry(1000, 3));
+ client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000, new ExponentialBackoffRetry(1000, 3));
client.start();
- generateDubboPropertiesForGlobal();
+// configuratorsApp();
+ configuratorsAppConsumer();
+
System.in.read();
- generateDubboPropertiesForApp();
}
- public static void generateDubboPropertiesForGlobal() {
- String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
- "#global config for consumer\n" +
- "dubbo.consumer.timeout=6000\n" +
- "#global config for provider\n" +
- "dubbo.protocol.port=20990\n" +
- "dubbo.provider.timeout=5000";
+ private void onlineOffline() {
+
+ }
+
+ private static void configuratorsApp() {
+
+ String str = "---\n" + "configVersion: v2.7\n" + "scope: application\n" + "key: concurrency-middle\n" + "enabled: true\n" + "configs:\n" + "- addresses: [\"0.0.0.0:20881\"]\n" + " side: provider\n" + " parameters:\n" + " timeout: 4000";
System.out.println(str);
try {
- String path = "/dubbo/config/dubbo/dubbo.properties";
+ String path = "/dubbo/config/concurrency-middle/configurators";
if (client.checkExists().forPath(path) == null) {
client.create().creatingParentsIfNeeded().forPath(path);
}
@@ -58,15 +59,49 @@ public class ZKTools {
}
}
- public static void generateDubboPropertiesForApp() {
- String str = "dubbo.consumer.timeout=6666\n" +
- "dubbo.application.qos.port=33333\n" +
- "dubbo.reference.org.apache.dubbo.samples.configcenter.api.DemoService.timeout=9999";
+ private static void configuratorsAppConsumer() {
+ String str = "---\n" + "configVersion: v2.7\n" + "scope: application\n" + "key: concurrency-middle\n" + "enabled: true\n" + "configs:\n" + "- addresses: [\"0.0.0.0\"]\n" + " side: consumer\n" + " parameters:\n" + " timeout: 5000";
+
+ System.out.println(str);
+
+ try {
+ String path = "/dubbo/config/concurrency-middle/configurators";
+ if (client.checkExists().forPath(path) == null) {
+ client.create().creatingParentsIfNeeded().forPath(path);
+ }
+ setData(path, str);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void configuratorsService() {
+ String str = "";
+
+ System.out.println(str);
+
+ try {
+ String path = "/dubbo/config/governance-tagrouter-provider/configurators";
+ if (client.checkExists().forPath(path) == null) {
+ client.create().creatingParentsIfNeeded().forPath(path);
+ }
+ setData(path, str);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void tags() {
+
+ }
+
+ public static void generateAppevelRouter() {
+ String str = "---\n" + "force: false\n" + "runtime: true\n" + "enabled: true\n" + "priority: 1\n" + "key: governance-tagrouter-provider\n" + "tags:\n" + " - name: tag1\n" + " addresses: [\"30.5.121.131:20880\"]\n" + " - name: tag2\n" + " addresses: [\"30.5.121.131:20881\"]\n" + "...";
System.out.println(str);
try {
- String path = "/dubbo/config/configcenter-consumer/dubbo.properties";
+ String path = "/dubbo/config/governance-tagrouter-provider/tagrouters";
if (client.checkExists().forPath(path) == null) {
client.create().creatingParentsIfNeeded().forPath(path);
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/AmericanService.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/AmericanService.java
index ea1ccf3..ac60277 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/AmericanService.java
@@ -14,23 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.api;
-package org.apache.dubbo.samples.client;
-
-
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+/**
+ *
+ */
+public interface AmericanService {
+ String eat();
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
- }
+ String watch();
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/CatService.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/CatService.java
index ea1ccf3..3ff7174 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/CatService.java
@@ -14,23 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.api;
-package org.apache.dubbo.samples.client;
-
+/**
+ *
+ */
+public interface CatService {
+ int getId();
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ String getName();
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
- }
+ String cat();
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/ChineseService.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/ChineseService.java
index ea1ccf3..829548f 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/ChineseService.java
@@ -14,23 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.api;
-package org.apache.dubbo.samples.client;
-
-
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+/**
+ *
+ */
+public interface ChineseService {
+ String eat();
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
- }
+ String watch();
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/DogService.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/DogService.java
index ea1ccf3..a2360d6 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/DogService.java
@@ -14,23 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.api;
-package org.apache.dubbo.samples.client;
-
+/**
+ *
+ */
+public interface DogService {
+ int getId();
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ String getName();
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
- }
+ String dog();
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/LionService.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/LionService.java
index ea1ccf3..bb54048 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/LionService.java
@@ -14,23 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.api;
-package org.apache.dubbo.samples.client;
-
+/**
+ *
+ */
+public interface LionService {
+ int getId();
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ String getName();
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
- }
+ String lion();
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/TigerService.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/TigerService.java
index ea1ccf3..98b60a0 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-api/src/main/java/org/apache/dubbo/samples/governance/api/TigerService.java
@@ -14,23 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.api;
-package org.apache.dubbo.samples.client;
-
+/**
+ *
+ */
+public interface TigerService {
+ int getId();
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ String getName();
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
- }
+ String tiger();
}
diff --git a/dubbo-samples-configcenter/pom.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/pom.xml
similarity index 66%
copy from dubbo-samples-configcenter/pom.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/pom.xml
index 864ceef..2f3a749 100644
--- a/dubbo-samples-configcenter/pom.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/pom.xml
@@ -22,24 +22,13 @@
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>
- <artifactId>dubbo-samples-all</artifactId>
+ <artifactId>dubbo-samples-concurrency</artifactId>
<groupId>org.apache.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <packaging>pom</packaging>
- <modules>
- <module>dubbo-samples-configcenter-xml</module>
- <module>dubbo-samples-configcenter-multiprotocol</module>
- <module>dubbo-samples-configcenter-annotation</module>
- <module>dubbo-samples-configcenter-externalconfiguration</module>
- <module>dubbo-samples-configcenter-api</module>
- <!--<module>dubbo-samples-configcenter-springboot</module>-->
- </modules>
-
-
- <artifactId>dubbo-samples-configcenter</artifactId>
+ <artifactId>dubbo-samples-concurrency-backend</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
@@ -47,11 +36,8 @@
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-configcenter-zookeeper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-metadata-report-api</artifactId>
+ <artifactId>dubbo-samples-concurrency-api</artifactId>
+ <version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/BackendProvider.java
similarity index 84%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/BackendProvider.java
index 08fbfde..6b34e93 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/BackendProvider.java
@@ -17,15 +17,15 @@
*
*/
-package org.apache.dubbo.samples.configcenter;
+package org.apache.dubbo.samples.governance;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-public class BasicProvider {
+public class BackendProvider {
public static void main(String[] args) throws Exception {
- new EmbeddedZooKeeper(2181, false).start();
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/configcenter-provider.xml"});
+// new EmbeddedZooKeeper(2181, false).start();
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring/dubbo-demo-provider.xml"});
context.start();
System.in.read(); // press any key to exit
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/CatServiceImpl.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/CatServiceImpl.java
index ea1ccf3..9e4aa57 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/CatServiceImpl.java
@@ -14,23 +14,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.impl;
-package org.apache.dubbo.samples.client;
+import org.apache.dubbo.samples.governance.api.CatService;
+/**
+ *
+ */
+public class CatServiceImpl implements CatService {
+ @Override
+ public int getId() {
+ return 1;
+ }
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ @Override
+ public String getName() {
+ return "I am a Cat!";
+ }
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
+ @Override
+ public String cat() {
+ return "Meow Meow!";
}
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/DogServiceImpl.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/DogServiceImpl.java
index ea1ccf3..91c6ab2 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/DogServiceImpl.java
@@ -14,23 +14,31 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.impl;
-package org.apache.dubbo.samples.client;
+import org.apache.dubbo.samples.governance.api.DogService;
+/**
+ *
+ */
+public class DogServiceImpl implements DogService {
+ @Override
+ public int getId() {
+ return 0;
+ }
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ @Override
+ public String getName() {
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return "I am a Dog!";
+ }
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
+ @Override
+ public String dog() {
+ return "Woof Woof!";
}
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/LionServiceImpl.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/LionServiceImpl.java
index ea1ccf3..a2046fa 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/LionServiceImpl.java
@@ -14,23 +14,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.impl;
-package org.apache.dubbo.samples.client;
+import org.apache.dubbo.samples.governance.api.LionService;
+/**
+ *
+ */
+public class LionServiceImpl implements LionService {
+ @Override
+ public int getId() {
+ return 2;
+ }
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ @Override
+ public String getName() {
+ return "I am a Lion!";
+ }
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
+ @Override
+ public String lion() {
+ return "Lion Lion!";
}
}
diff --git a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/TigerServiceImpl.java
similarity index 51%
copy from dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/TigerServiceImpl.java
index ea1ccf3..40b71cd 100644
--- a/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/java/org/apache/dubbo/samples/governance/impl/TigerServiceImpl.java
@@ -14,23 +14,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.dubbo.samples.governance.impl;
-package org.apache.dubbo.samples.client;
+import org.apache.dubbo.samples.governance.api.TigerService;
+/**
+ *
+ */
+public class TigerServiceImpl implements TigerService {
+ @Override
+ public int getId() {
+ return 3;
+ }
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.samples.api.GreetingsService;
+ @Override
+ public String getName() {
+ return "I am a Tiger!";
+ }
-public class Application {
- public static void main(String[] args) {
- ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
- reference.setApplication(new ApplicationConfig("first-dubbo-client"));
- reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- reference.setInterface(GreetingsService.class);
- GreetingsService greetingsService = reference.get();
- String message = greetingsService.sayHi("dubbo");
- System.out.println(message);
+ @Override
+ public String tiger() {
+ return "Tiger Tiger!";
}
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/resources/log4j.properties
similarity index 64%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/resources/log4j.properties
index 4054da2..f30fda0 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/resources/log4j.properties
@@ -6,20 +6,20 @@
# 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.
-#
#
-dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
-# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
-#dubbo.registry.address=zookeeper://127.0.0.1:2181
-# The application specific part, can be stored under the app group in the ConfigCenter
-#dubbo.consumer.timeout=3000
\ No newline at end of file
+#
+###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
\ No newline at end of file
diff --git a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/resources/spring/dubbo-demo-provider.xml
similarity index 68%
copy from dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/resources/spring/dubbo-demo-provider.xml
index eb6fc71..a91c98c 100644
--- a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-backend/src/main/resources/spring/dubbo-demo-provider.xml
@@ -25,7 +25,7 @@
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- optional provider's application name, used for tracing dependency relationship -->
- <dubbo:application name="governance-tagrouter-provider"/>
+ <dubbo:application name="concurrency-backend"/>
<!-- optional -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
@@ -33,16 +33,18 @@
<!--optional, use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo" port="-1"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
- <!-- service implementation, as same as regular local bean -->
- <bean id="demoService" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl"/>
- <!-- declare the service interface to be exported -->
- <dubbo:service interface="org.apache.dubbo.samples.governance.api.DemoService" ref="demoService"/>
+ <bean id="catService" class="org.apache.dubbo.samples.governance.impl.CatServiceImpl"/>
+ <dubbo:service interface="org.apache.dubbo.samples.governance.api.CatService" ref="catService"/>
- <!-- service implementation, as same as regular local bean -->
- <bean id="demoService2" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl2"/>
- <!-- declare the service interface to be exported -->
- <dubbo:service interface="org.apache.dubbo.samples.governance.api.DemoService2" ref="demoService2"/>
+ <bean id="dogService" class="org.apache.dubbo.samples.governance.impl.DogServiceImpl"/>
+ <dubbo:service interface="org.apache.dubbo.samples.governance.api.DogService" ref="dogService"/>
+
+ <bean id="lionService" class="org.apache.dubbo.samples.governance.impl.LionServiceImpl"/>
+ <dubbo:service interface="org.apache.dubbo.samples.governance.api.LionService" ref="lionService"/>
+
+ <bean id="tigerService" class="org.apache.dubbo.samples.governance.impl.TigerServiceImpl"/>
+ <dubbo:service interface="org.apache.dubbo.samples.governance.api.TigerService" ref="tigerService"/>
</beans>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/pom.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/pom.xml
similarity index 66%
copy from dubbo-samples-configcenter/pom.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-front/pom.xml
index 864ceef..9d5b9f7 100644
--- a/dubbo-samples-configcenter/pom.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/pom.xml
@@ -22,24 +22,13 @@
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>
- <artifactId>dubbo-samples-all</artifactId>
+ <artifactId>dubbo-samples-concurrency</artifactId>
<groupId>org.apache.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <packaging>pom</packaging>
- <modules>
- <module>dubbo-samples-configcenter-xml</module>
- <module>dubbo-samples-configcenter-multiprotocol</module>
- <module>dubbo-samples-configcenter-annotation</module>
- <module>dubbo-samples-configcenter-externalconfiguration</module>
- <module>dubbo-samples-configcenter-api</module>
- <!--<module>dubbo-samples-configcenter-springboot</module>-->
- </modules>
-
-
- <artifactId>dubbo-samples-configcenter</artifactId>
+ <artifactId>dubbo-samples-concurrency-front</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
@@ -47,11 +36,8 @@
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-configcenter-zookeeper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-metadata-report-api</artifactId>
+ <artifactId>dubbo-samples-concurrency-api</artifactId>
+ <version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/java/org/apache/dubbo/samples/governance/FrontendConsumer.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/java/org/apache/dubbo/samples/governance/FrontendConsumer.java
new file mode 100644
index 0000000..fb614d2
--- /dev/null
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/java/org/apache/dubbo/samples/governance/FrontendConsumer.java
@@ -0,0 +1,120 @@
+/*
+ *
+ * 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.governance;
+
+import org.apache.dubbo.samples.governance.api.AmericanService;
+import org.apache.dubbo.samples.governance.api.CatService;
+import org.apache.dubbo.samples.governance.api.ChineseService;
+import org.apache.dubbo.samples.governance.api.DogService;
+import org.apache.dubbo.samples.governance.api.LionService;
+import org.apache.dubbo.samples.governance.api.TigerService;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+public class FrontendConsumer {
+
+ private static ExecutorService executorService = Executors.newFixedThreadPool(3);
+
+ private static long interval = 5000;
+
+ public static void main(String[] args) {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring/dubbo-demo-consumer.xml"});
+ context.start();
+
+ while (true) {
+ try {
+// cat(context);
+ dog(context);
+// tiger(context);
+// lion(context);
+ chinese(context);
+ american(context);
+ } catch (Throwable throwable) {
+ throwable.printStackTrace();
+ }
+ }
+
+ }
+
+ public static void cat(ClassPathXmlApplicationContext context) {
+ executorService.submit(() -> {
+ while (true) {
+ CatService catService = (CatService) context.getBean("catService");
+ System.out.println(catService.cat());
+ Thread.sleep(interval);
+ }
+ });
+ }
+
+ public static void dog(ClassPathXmlApplicationContext context) {
+ executorService.submit(() -> {
+ while (true) {
+ DogService dogService = (DogService) context.getBean("dogService");
+ System.out.println(dogService.dog());
+ Thread.sleep(interval);
+ }
+ });
+ }
+
+ public static void lion(ClassPathXmlApplicationContext context) {
+ executorService.submit(() -> {
+ while (true) {
+ LionService lionService = (LionService) context.getBean("lionService");
+ System.out.println(lionService.lion());
+ Thread.sleep(interval);
+ }
+ });
+ }
+
+ public static void tiger(ClassPathXmlApplicationContext context) {
+ executorService.submit(() -> {
+ while (true) {
+ TigerService tigerService = (TigerService) context.getBean("tigerService");
+ System.out.println(tigerService.tiger());
+ Thread.sleep(interval);
+ }
+ });
+ }
+
+ public static void chinese(ClassPathXmlApplicationContext context) {
+ executorService.submit(() -> {
+ while (true) {
+ ChineseService chineseService = (ChineseService) context.getBean("chineseService");
+ System.out.println(chineseService.eat());
+ Thread.sleep(interval);
+ }
+ });
+ }
+
+ public static void american(ClassPathXmlApplicationContext context) {
+ executorService.submit(() -> {
+ while (true) {
+ AmericanService americanService = (AmericanService) context.getBean("americanService");
+ System.out.println(americanService.eat());
+ Thread.sleep(interval);
+ }
+ });
+ }
+
+
+}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/resources/log4j.properties
similarity index 64%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/resources/log4j.properties
index 4054da2..f30fda0 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/resources/log4j.properties
@@ -6,20 +6,20 @@
# 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.
-#
#
-dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
-# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
-#dubbo.registry.address=zookeeper://127.0.0.1:2181
-# The application specific part, can be stored under the app group in the ConfigCenter
-#dubbo.consumer.timeout=3000
\ No newline at end of file
+#
+###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
\ No newline at end of file
diff --git a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/resources/spring/dubbo-demo-consumer.xml
similarity index 65%
copy from dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/resources/spring/dubbo-demo-consumer.xml
index 83834c6..fdcecdb 100644
--- a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-front/src/main/resources/spring/dubbo-demo-consumer.xml
@@ -26,16 +26,22 @@
<!-- optional, consumer's application name, used for tracing dependency relationship (not a matching criterion),
don't set it same as provider -->
- <dubbo:application name="governance-appoverride-consumer"/>
+ <dubbo:application name="concurrency-front"/>
<!-- optional, use multicast registry center to discover service -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
- <dubbo:configcenter priority="false" address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- generate proxy for the remote service, then demoService can be used in the same way as the
local regular interface -->
- <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.samples.governance.api.DemoService"/>
- <dubbo:reference id="demoService2" check="false" interface="org.apache.dubbo.samples.governance.api.DemoService2"/>
+ <dubbo:reference id="catService" check="false" interface="org.apache.dubbo.samples.governance.api.CatService"/>
+ <dubbo:reference id="dogService" check="false" interface="org.apache.dubbo.samples.governance.api.DogService"/>
+ <dubbo:reference id="lionService" check="false" interface="org.apache.dubbo.samples.governance.api.LionService"/>
+ <dubbo:reference id="tigerService" check="false" interface="org.apache.dubbo.samples.governance.api.TigerService"/>
+ <dubbo:reference id="chineseService" check="false"
+ interface="org.apache.dubbo.samples.governance.api.ChineseService"/>
+ <dubbo:reference id="americanService" check="false"
+ interface="org.apache.dubbo.samples.governance.api.AmericanService"/>
</beans>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/pom.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/pom.xml
similarity index 66%
copy from dubbo-samples-configcenter/pom.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-middle/pom.xml
index 864ceef..58dd3c9 100644
--- a/dubbo-samples-configcenter/pom.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/pom.xml
@@ -22,24 +22,13 @@
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>
- <artifactId>dubbo-samples-all</artifactId>
+ <artifactId>dubbo-samples-concurrency</artifactId>
<groupId>org.apache.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <packaging>pom</packaging>
- <modules>
- <module>dubbo-samples-configcenter-xml</module>
- <module>dubbo-samples-configcenter-multiprotocol</module>
- <module>dubbo-samples-configcenter-annotation</module>
- <module>dubbo-samples-configcenter-externalconfiguration</module>
- <module>dubbo-samples-configcenter-api</module>
- <!--<module>dubbo-samples-configcenter-springboot</module>-->
- </modules>
-
-
- <artifactId>dubbo-samples-configcenter</artifactId>
+ <artifactId>dubbo-samples-concurrency-middle</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
@@ -47,11 +36,8 @@
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-configcenter-zookeeper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-metadata-report-api</artifactId>
+ <artifactId>dubbo-samples-concurrency-api</artifactId>
+ <version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/MiddleEndProvider.java
similarity index 84%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/MiddleEndProvider.java
index 08fbfde..b45c895 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/MiddleEndProvider.java
@@ -17,18 +17,19 @@
*
*/
-package org.apache.dubbo.samples.configcenter;
+package org.apache.dubbo.samples.governance;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-public class BasicProvider {
+public class MiddleEndProvider {
public static void main(String[] args) throws Exception {
- new EmbeddedZooKeeper(2181, false).start();
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/configcenter-provider.xml"});
+// new EmbeddedZooKeeper(2181, false).start();
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring/dubbo-demo-provider.xml"});
context.start();
System.in.read(); // press any key to exit
}
+
}
diff --git a/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/impl/AmericanServiceImpl.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/impl/AmericanServiceImpl.java
new file mode 100644
index 0000000..ac220d7
--- /dev/null
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/impl/AmericanServiceImpl.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.governance.impl;
+
+import org.apache.dubbo.samples.governance.api.AmericanService;
+import org.apache.dubbo.samples.governance.api.CatService;
+import org.apache.dubbo.samples.governance.api.LionService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ *
+ */
+public class AmericanServiceImpl implements AmericanService {
+
+ @Autowired
+ private CatService catService;
+
+ @Autowired
+ private LionService lionService;
+
+ @Override
+ public String eat() {
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ System.out.println(catService.getName());
+ return "I can eat Cat!";
+ }
+
+ @Override
+ public String watch() {
+ System.out.println(lionService.getName());
+ return "I want to see Lion!";
+ }
+
+ public CatService getCatService() {
+ return catService;
+ }
+
+ public void setCatService(CatService catService) {
+ this.catService = catService;
+ }
+
+ public LionService getLionService() {
+ return lionService;
+ }
+
+ public void setLionService(LionService lionService) {
+ this.lionService = lionService;
+ }
+}
diff --git a/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/impl/ChineseServiceImpl.java b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/impl/ChineseServiceImpl.java
new file mode 100644
index 0000000..f6c6897
--- /dev/null
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/java/org/apache/dubbo/samples/governance/impl/ChineseServiceImpl.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.governance.impl;
+
+import org.apache.dubbo.samples.governance.api.ChineseService;
+import org.apache.dubbo.samples.governance.api.DogService;
+import org.apache.dubbo.samples.governance.api.TigerService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ *
+ */
+public class ChineseServiceImpl implements ChineseService {
+
+ @Autowired
+ private DogService dogService;
+
+ @Autowired
+ private TigerService tigerService;
+
+ @Override
+ public String eat() {
+ System.out.println(dogService.getName());
+ return "I can eat Dog!";
+ }
+
+ @Override
+ public String watch() {
+ System.out.println(tigerService.getName());
+ return "I want to see Tiger!";
+ }
+
+ public DogService getDogService() {
+ return dogService;
+ }
+
+ public void setDogService(DogService dogService) {
+ this.dogService = dogService;
+ }
+
+ public TigerService getTigerService() {
+ return tigerService;
+ }
+
+ public void setTigerService(TigerService tigerService) {
+ this.tigerService = tigerService;
+ }
+}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/resources/log4j.properties
similarity index 64%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/resources/log4j.properties
index 4054da2..f30fda0 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/resources/log4j.properties
@@ -6,20 +6,20 @@
# 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.
-#
#
-dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
-# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
-#dubbo.registry.address=zookeeper://127.0.0.1:2181
-# The application specific part, can be stored under the app group in the ConfigCenter
-#dubbo.consumer.timeout=3000
\ No newline at end of file
+#
+###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
\ No newline at end of file
diff --git a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/resources/spring/dubbo-demo-provider.xml
similarity index 54%
copy from dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml
copy to dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/resources/spring/dubbo-demo-provider.xml
index 90245df..135405b 100644
--- a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml
+++ b/dubbo-samples-concurrency/dubbo-samples-concurrency-middle/src/main/resources/spring/dubbo-demo-provider.xml
@@ -20,12 +20,14 @@
<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"
+ xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
+ http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <context:component-scan base-package="org.apache.dubbo.samples.governance.impl"/>
<!-- optional provider's application name, used for tracing dependency relationship -->
- <dubbo:application name="governance-appoverride-provider"/>
+ <dubbo:application name="concurrency-middle"/>
<!-- optional -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
@@ -33,16 +35,19 @@
<!--optional, use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo" port="-1"/>
- <dubbo:configcenter priority="false" address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
+
+ <!-- generate proxy for the remote service, then demoService can be used in the same way as the
+ local regular interface -->
+ <dubbo:reference id="catService" check="false" interface="org.apache.dubbo.samples.governance.api.CatService"/>
+ <dubbo:reference id="dogService" check="false" interface="org.apache.dubbo.samples.governance.api.DogService"/>
+ <dubbo:reference id="lionService" check="false" interface="org.apache.dubbo.samples.governance.api.LionService"/>
+ <dubbo:reference id="tigerService" check="false" interface="org.apache.dubbo.samples.governance.api.TigerService"/>
- <!-- service implementation, as same as regular local bean -->
- <bean id="demoService" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl"/>
- <!-- declare the service interface to be exported -->
- <dubbo:service interface="org.apache.dubbo.samples.governance.api.DemoService" ref="demoService"/>
+ <bean id="chineseService" class="org.apache.dubbo.samples.governance.impl.ChineseServiceImpl"/>
+ <dubbo:service interface="org.apache.dubbo.samples.governance.api.ChineseService" ref="chineseService"/>
- <!-- service implementation, as same as regular local bean -->
- <bean id="demoService2" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl2"/>
- <!-- declare the service interface to be exported -->
- <dubbo:service interface="org.apache.dubbo.samples.governance.api.DemoService2" ref="demoService2"/>
+ <bean id="americanService" class="org.apache.dubbo.samples.governance.impl.AmericanServiceImpl"/>
+ <dubbo:service interface="org.apache.dubbo.samples.governance.api.AmericanService" ref="americanService"/>
</beans>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/pom.xml b/dubbo-samples-concurrency/pom.xml
similarity index 80%
copy from dubbo-samples-configcenter/pom.xml
copy to dubbo-samples-concurrency/pom.xml
index 864ceef..d735351 100644
--- a/dubbo-samples-configcenter/pom.xml
+++ b/dubbo-samples-concurrency/pom.xml
@@ -28,18 +28,15 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
+ <artifactId>dubbo-samples-concurrency</artifactId>
<modules>
- <module>dubbo-samples-configcenter-xml</module>
- <module>dubbo-samples-configcenter-multiprotocol</module>
- <module>dubbo-samples-configcenter-annotation</module>
- <module>dubbo-samples-configcenter-externalconfiguration</module>
- <module>dubbo-samples-configcenter-api</module>
- <!--<module>dubbo-samples-configcenter-springboot</module>-->
+ <module>dubbo-samples-concurrency-api</module>
+ <module>dubbo-samples-concurrency-front</module>
+ <module>dubbo-samples-concurrency-middle</module>
+ <module>dubbo-samples-concurrency-backend</module>
</modules>
-
- <artifactId>dubbo-samples-configcenter</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
index 4054da2..fa5da7e 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
@@ -17,8 +17,8 @@
#
#
dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
+dubbo.config-center.address=zookeeper://127.0.0.1:2181
+dubbo.config-center.configfile=dubbo.properties
# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
#dubbo.registry.address=zookeeper://127.0.0.1:2181
# The application specific part, can be stored under the app group in the ConfigCenter
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties
index 976b1c4..bb7d957 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties
@@ -17,8 +17,8 @@
#
#
dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
+dubbo.config-center.address=zookeeper://127.0.0.1:2181
+dubbo.config-center.configfile=dubbo.properties
# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
# The application specific part, can be stored under the app group in the ConfigCenter
#dubbo.registry.address=zookeeper://127.0.0.1:2181
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
index 4714fc4..b2ffb1e 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -36,12 +37,7 @@ public class ZKTools {
}
public static void generateDubboPropertiesForGlobal() {
- String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
- "#global config for consumer\n" +
- "dubbo.consumer.timeout=6000\n" +
- "#global config for provider\n" +
- "dubbo.protocol.port=20990\n" +
- "dubbo.provider.timeout=5000";
+ String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181\n";
System.out.println(str);
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/client/Application.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/client/Application.java
index 5b878d6..7da966c 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/client/Application.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/client/Application.java
@@ -25,26 +25,20 @@ import org.apache.dubbo.samples.api.GreetingsService;
public class Application {
public static void main(String[] args) throws Exception {
- // Enable Config Center.
- ConfigCenterConfig configCenter = new ConfigCenterConfig();
- configCenter.setAddress("zookeeper://127.0.0.1:2181");
- configCenter.init();
-
- // If you don't want to use ConfigCenter provided by dubbo, you can set external configuration to Dubbo directly.
- // We created a Map instance manually and put a value into it, but in reality, the external configurations will most likely being generated from other plugins in your system.
- /*Map<String, String> dubboConfigurations = new HashMap<>();
- dubboConfigurations.put("dubbo.registry.address", "zookeeper://127.0.0.1:2181");
- // you will need to add the configcenter address if you want to use the service governance features in 2.7, e.g., overrides and routers.
- // but notice it will not be used for getting startup configurations.
- dubboConfigurations.put("dubbo.configcenter.address", "zookeeper://127.0.0.1:2181");
- Environment.getInstance().updateExternalConfigurationMap(dubboConfigurations);*/
+ loadConfigByDubbo();
ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
reference.setApplication(new ApplicationConfig("first-dubbo-client"));
-// reference.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
reference.setInterface(GreetingsService.class);
GreetingsService greetingsService = reference.get();
String message = greetingsService.sayHi("dubbo");
System.out.println(message);
}
+
+ public static void loadConfigByDubbo() {
+ // Enable Config Center.
+ ConfigCenterConfig configCenter = new ConfigCenterConfig();
+ configCenter.setAddress("zookeeper://127.0.0.1:2181");
+ configCenter.init();
+ }
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/server/Application.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/server/Application.java
index 53b10a8..1ad614d 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/server/Application.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/server/Application.java
@@ -18,7 +18,6 @@
package org.apache.dubbo.samples.server;
-import org.apache.dubbo.common.config.Environment;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ConfigCenterConfig;
import org.apache.dubbo.config.ServiceConfig;
@@ -29,31 +28,31 @@ import java.util.Map;
public class Application {
public static void main(String[] args) throws Exception {
- // Enable Config Center.
- /* ConfigCenterConfig configCenter = new ConfigCenterConfig();
- configCenter.setAddress("zookeeper://127.0.0.1:2181");
- configCenter.init();*/
+ setExternalConfigurationDirectly();
+ ServiceConfig<GreetingsService> service = new ServiceConfig<>();
+ service.setApplication(new ApplicationConfig("api-dubbo-provider"));
+ service.setInterface(GreetingsService.class);
+ service.setRef(new GreetingsServiceImpl());
+ service.export();
+ System.out.println("Dubbo provider started successfully!");
+ System.in.read();
+ }
- // If you don't want to use ConfigCenter provided by dubbo, you can set external configuration to Dubbo directly.
- // We created a Map instance manually and put a value into it, but in reality, the external configurations will most likely being generated from other plugins in your system.
+ /**
+ * If you don't want to use ConfigCenter provided by dubbo, you can set external configuration to Dubbo directly.
+ * In this sample, we created a Map instance manually and put a value into it, but in reality,
+ * the external configurations will most likely being generated from other plugins in your system.
+ */
+ public static void setExternalConfigurationDirectly() {
Map<String, String> dubboConfigurations = new HashMap<>();
dubboConfigurations.put("dubbo.registry.address", "zookeeper://127.0.0.1:2181");
// you will need to add the configcenter address if you want to use the service governance features in 2.7, e.g., overrides and routers.
- // but notice it will not be used for getting startup configurations.
+ // but notice it will not be used for gathering startup configurations.
dubboConfigurations.put("dubbo.configcenter.address", "zookeeper://127.0.0.1:2181");
- Environment.getInstance().setExternalConfig(dubboConfigurations);
+
ConfigCenterConfig configCenter = new ConfigCenterConfig();
+ configCenter.setExternalConfig(dubboConfigurations);
configCenter.init();
-
-
- ServiceConfig<GreetingsService> service = new ServiceConfig<>();
- service.setApplication(new ApplicationConfig("first-dubbo-provider"));
-// service.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
- service.setInterface(GreetingsService.class);
- service.setRef(new GreetingsServiceImpl());
- service.export();
- System.out.println("first-dubbo-provider is running.");
- System.in.read();
}
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/ZKTools.java
similarity index 78%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/ZKTools.java
index 4714fc4..9b07ced 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/ZKTools.java
@@ -14,12 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.samples;
+package org.apache.dubbo.samples.externalconfiguration;
+
+import org.apache.dubbo.common.utils.StringUtils;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -28,20 +29,14 @@ public class ZKTools {
private static CuratorFramework client;
public static void main(String[] args) throws Exception {
- client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000,
- new ExponentialBackoffRetry(1000, 3));
+ client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000, new ExponentialBackoffRetry(1000, 3));
client.start();
- generateDubboPropertiesForGlobal();
+ clearGlobalDubboProperties();
}
- public static void generateDubboPropertiesForGlobal() {
- String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
- "#global config for consumer\n" +
- "dubbo.consumer.timeout=6000\n" +
- "#global config for provider\n" +
- "dubbo.protocol.port=20990\n" +
- "dubbo.provider.timeout=5000";
+ public static void clearGlobalDubboProperties() {
+ String str = "";
System.out.println(str);
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/consumer/AnnotationConsumer.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/consumer/AnnotationConsumer.java
index 5133b3e..ae5a7ee 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/consumer/AnnotationConsumer.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/consumer/AnnotationConsumer.java
@@ -21,6 +21,7 @@ package org.apache.dubbo.samples.externalconfiguration.consumer;
import org.apache.dubbo.config.spring.ConfigCenterBean;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@@ -42,12 +43,22 @@ public class AnnotationConsumer {
System.err.println("result :" + result);
}
+ /**
+ *
+ */
@Configuration
static public class ConsumerConfiguration {
+
+ /**
+ * It's still required to initialize ConfigCenterBean, here we use the JavaBean method, but it doesn't matter which way you use, for example, xml or .properties are all ok.
+ */
@Bean
public ConfigCenterBean configCenterBean() {
ConfigCenterBean configCenterBean = new ConfigCenterBean();
- configCenterBean.setAuto(true);
+ // This is a critical switch to tell Dubbo framework to get configs from standard Spring Environment
+ configCenterBean.setFromSpring(true);
+ configCenterBean.setConfigfile("dubbo.properties");// by default is dubbo.properties
+ configCenterBean.setLocalconfigfile("configcenter-annotation-provider.dubbo.properties"); // by default is application.dubbo.properties
return configCenterBean;
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
index 7343a7d..2ad582b 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
@@ -20,8 +20,10 @@
package org.apache.dubbo.samples.externalconfiguration.provider;
+import org.apache.dubbo.config.ProviderConfig;
import org.apache.dubbo.config.spring.ConfigCenterBean;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@@ -44,14 +46,35 @@ public class AnnotationProvider {
@Configuration
static public class ProviderConfiguration {
+
+ /**
+ * It's still required to initialize ConfigCenterBean, here we use the JavaBean method, but it doesn't matter which way you use, for example, xml or .properties are all ok to go.
+ * <p>
+ * Notice that if you have a
+ */
@Bean
public ConfigCenterBean configCenterBean() {
ConfigCenterBean configCenterBean = new ConfigCenterBean();
- // This is the critical part that
- configCenterBean.setAuto(true);
+ // This is a critical switch to tell Dubbo framework to get configs from standard Spring Environment
+ configCenterBean.setFromSpring(true);
+ configCenterBean.setConfigfile("dubbo.properties");// by default is dubbo.properties
+ configCenterBean.setLocalconfigfile("configcenter-annotation-provider.dubbo.properties"); // by default is application.dubbo.properties
return configCenterBean;
}
+ /**
+ * It's ok to have local configuration for each part, there's nothing different with 2.6.x regarding this part.
+ * It's only a matter of priority, by default, the external configuration (loaded from standard Spring Environment in this sample) has a higher priority than the local configuration.
+ *
+ * @return
+ */
+ @Bean
+ public ProviderConfig providerConfig() {
+ ProviderConfig providerConfig = new ProviderConfig();
+ providerConfig.setTimeout(6666);
+ return providerConfig;
+ }
+
}
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/spring/MyEnvironmentPostProcessor.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/spring/MyEnvironmentPostProcessor.java
index b7d9695..173afce 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/spring/MyEnvironmentPostProcessor.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/spring/MyEnvironmentPostProcessor.java
@@ -52,7 +52,7 @@ public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {
appReader = new BufferedReader(new InputStreamReader(MyEnvironmentPostProcessor.class.getResourceAsStream("/yourconfigcenter/dubbo-properties-in-configcenter-consumer.properties")));
}
appDubboProperties.put("application.dubbo.properties", appReader.lines().collect(Collectors.joining("\n")));
- MapPropertySource appDubboPropertySource = new MapPropertySource("application.dubbo.properties", appDubboProperties);
+ MapPropertySource appDubboPropertySource = new MapPropertySource("configcenter-annotation-provider.dubbo.properties", appDubboProperties);
environment.getPropertySources().addLast(appDubboPropertySource);
} catch (Exception e) {
e.printStackTrace();
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/pom.xml
similarity index 57%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/pom.xml
index 28192d2..415f715 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/pom.xml
@@ -18,17 +18,16 @@
~
-->
-<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">
+<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>
+ <artifactId>dubbo-samples-configcenter</artifactId>
+ <groupId>org.apache.dubbo</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
- <!-- optional -->
- <dubbo:application name="configcenter-consumer"/>
+ <artifactId>dubbo-samples-configcenter-multi-registries</artifactId>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
-
- <dubbo:reference id="demoService" interface="org.apache.dubbo.samples.configcenter.api.DemoService"/>
-
-</beans>
\ No newline at end of file
+</project>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/AnnotationConsumer.java
similarity index 52%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/AnnotationConsumer.java
index 7343a7d..b8d1623 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/AnnotationConsumer.java
@@ -17,40 +17,35 @@
*
*/
-package org.apache.dubbo.samples.externalconfiguration.provider;
+package org.apache.dubbo.samples.annotation;
-
-import org.apache.dubbo.config.spring.ConfigCenterBean;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.Bean;
+import org.apache.dubbo.samples.annotation.action.AnnotationAction;
+
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
/**
- * MergeProvider
+ * CallbackConsumer
*/
-@SpringBootApplication
-@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.externalconfiguration.service")
-public class AnnotationProvider {
+public class AnnotationConsumer {
public static void main(String[] args) throws Exception {
- // start embedded zookeeper server
- new EmbeddedZooKeeper(2181, false).start();
-
- SpringApplication.run(AnnotationProvider.class, args);
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConsumerConfiguration.class);
+ context.start();
+ final AnnotationAction annotationAction = (AnnotationAction) context.getBean("annotationAction");
+ String hello = annotationAction.doSayHello("world");
+ System.out.println("result :" + hello);
System.in.read();
}
@Configuration
- static public class ProviderConfiguration {
- @Bean
- public ConfigCenterBean configCenterBean() {
- ConfigCenterBean configCenterBean = new ConfigCenterBean();
- // This is the critical part that
- configCenterBean.setAuto(true);
- return configCenterBean;
- }
+ @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.annotation.action")
+ @PropertySource("classpath:/spring/dubbo-consumer.properties")
+ @ComponentScan(value = {"org.apache.dubbo.samples.annotation.action"})
+ static public class ConsumerConfiguration {
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/AnnotationProvider.java
similarity index 64%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/AnnotationProvider.java
index 7343a7d..ff9048e 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-externalconfiguration/src/main/java/org/apache/dubbo/samples/externalconfiguration/provider/AnnotationProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/AnnotationProvider.java
@@ -17,41 +17,39 @@
*
*/
-package org.apache.dubbo.samples.externalconfiguration.provider;
+package org.apache.dubbo.samples.annotation;
-import org.apache.dubbo.config.spring.ConfigCenterBean;
+import org.apache.dubbo.config.ProviderConfig;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
/**
* MergeProvider
*/
-@SpringBootApplication
-@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.externalconfiguration.service")
public class AnnotationProvider {
public static void main(String[] args) throws Exception {
- // start embedded zookeeper server
new EmbeddedZooKeeper(2181, false).start();
-
- SpringApplication.run(AnnotationProvider.class, args);
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ProviderConfiguration.class);
+ context.start();
System.in.read();
}
@Configuration
+ @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.annotation.impl")
+ @PropertySource("classpath:/spring/dubbo-provider.properties")
static public class ProviderConfiguration {
@Bean
- public ConfigCenterBean configCenterBean() {
- ConfigCenterBean configCenterBean = new ConfigCenterBean();
- // This is the critical part that
- configCenterBean.setAuto(true);
- return configCenterBean;
+ public ProviderConfig providerConfig() {
+ ProviderConfig providerConfig = new ProviderConfig();
+ providerConfig.setTimeout(1000);
+ return providerConfig;
}
-
}
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/EmbeddedZooKeeper.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/EmbeddedZooKeeper.java
new file mode 100644
index 0000000..ae388dc
--- /dev/null
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/EmbeddedZooKeeper.java
@@ -0,0 +1,249 @@
+/*
+ * Copyright 2014 the original author or authors.
+ *
+ * Licensed 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.annotation;
+
+import org.apache.zookeeper.server.ServerConfig;
+import org.apache.zookeeper.server.ZooKeeperServerMain;
+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.SmartLifecycle;
+import org.springframework.util.ErrorHandler;
+import org.springframework.util.SocketUtils;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.Properties;
+import java.util.UUID;
+
+/**
+ * from: https://github.com/spring-projects/spring-xd/blob/v1.3.1.RELEASE/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/zookeeper/ZooKeeperUtils.java
+ * <p>
+ * Helper class to start an embedded instance of standalone (non clustered) ZooKeeper.
+ * <p>
+ * NOTE: at least an external standalone server (if not an ensemble) are recommended, even for
+ * {@link org.springframework.xd.dirt.server.singlenode.SingleNodeApplication}
+ *
+ * @author Patrick Peralta
+ * @author Mark Fisher
+ * @author David Turanski
+ */
+public class EmbeddedZooKeeper implements SmartLifecycle {
+
+ /**
+ * Logger.
+ */
+ private static final Logger logger = LoggerFactory.getLogger(EmbeddedZooKeeper.class);
+
+ /**
+ * ZooKeeper client port. This will be determined dynamically upon startup.
+ */
+ private final int clientPort;
+
+ /**
+ * Whether to auto-start. Default is true.
+ */
+ private boolean autoStartup = true;
+
+ /**
+ * Lifecycle phase. Default is 0.
+ */
+ private int phase = 0;
+
+ /**
+ * Thread for running the ZooKeeper server.
+ */
+ private volatile Thread zkServerThread;
+
+ /**
+ * ZooKeeper server.
+ */
+ private volatile ZooKeeperServerMain zkServer;
+
+ /**
+ * {@link ErrorHandler} to be invoked if an Exception is thrown from the ZooKeeper server thread.
+ */
+ private ErrorHandler errorHandler;
+
+ private boolean daemon = true;
+
+ /**
+ * Construct an EmbeddedZooKeeper with a random port.
+ */
+ public EmbeddedZooKeeper() {
+ clientPort = SocketUtils.findAvailableTcpPort();
+ }
+
+ /**
+ * Construct an EmbeddedZooKeeper with the provided port.
+ *
+ * @param clientPort port for ZooKeeper server to bind to
+ */
+ public EmbeddedZooKeeper(int clientPort, boolean daemon) {
+ this.clientPort = clientPort;
+ this.daemon = daemon;
+ }
+
+ /**
+ * Returns the port that clients should use to connect to this embedded server.
+ *
+ * @return dynamically determined client port
+ */
+ public int getClientPort() {
+ return this.clientPort;
+ }
+
+ /**
+ * Specify whether to start automatically. Default is true.
+ *
+ * @param autoStartup whether to start automatically
+ */
+ public void setAutoStartup(boolean autoStartup) {
+ this.autoStartup = autoStartup;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isAutoStartup() {
+ return this.autoStartup;
+ }
+
+ /**
+ * Specify the lifecycle phase for the embedded server.
+ *
+ * @param phase the lifecycle phase
+ */
+ public void setPhase(int phase) {
+ this.phase = phase;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getPhase() {
+ return this.phase;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isRunning() {
+ return (zkServerThread != null);
+ }
+
+ /**
+ * Start the ZooKeeper server in a background thread.
+ * <p>
+ * Register an error handler via {@link #setErrorHandler} in order to handle
+ * any exceptions thrown during startup or execution.
+ */
+ @Override
+ public synchronized void start() {
+ if (zkServerThread == null) {
+ zkServerThread = new Thread(new ServerRunnable(), "ZooKeeper Server Starter");
+ zkServerThread.setDaemon(daemon);
+ zkServerThread.start();
+ }
+ }
+
+ /**
+ * Shutdown the ZooKeeper server.
+ */
+ @Override
+ public synchronized void stop() {
+ if (zkServerThread != null) {
+ // The shutdown method is protected...thus this hack to invoke it.
+ // This will log an exception on shutdown; see
+ // https://issues.apache.org/jira/browse/ZOOKEEPER-1873 for details.
+ try {
+ Method shutdown = ZooKeeperServerMain.class.getDeclaredMethod("shutdown");
+ shutdown.setAccessible(true);
+ shutdown.invoke(zkServer);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ // It is expected that the thread will exit after
+ // the server is shutdown; this will block until
+ // the shutdown is complete.
+ try {
+ zkServerThread.join(5000);
+ zkServerThread = null;
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ logger.warn("Interrupted while waiting for embedded ZooKeeper to exit");
+ // abandoning zk thread
+ zkServerThread = null;
+ }
+ }
+ }
+
+ /**
+ * Stop the server if running and invoke the callback when complete.
+ */
+ @Override
+ public void stop(Runnable callback) {
+ stop();
+ callback.run();
+ }
+
+ /**
+ * Provide an {@link ErrorHandler} to be invoked if an Exception is thrown from the ZooKeeper server thread. If none
+ * is provided, only error-level logging will occur.
+ *
+ * @param errorHandler the {@link ErrorHandler} to be invoked
+ */
+ public void setErrorHandler(ErrorHandler errorHandler) {
+ this.errorHandler = errorHandler;
+ }
+
+ /**
+ * Runnable implementation that starts the ZooKeeper server.
+ */
+ private class ServerRunnable implements Runnable {
+
+ @Override
+ public void run() {
+ try {
+ Properties properties = new Properties();
+ File file = new File(System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID());
+ file.deleteOnExit();
+ properties.setProperty("dataDir", file.getAbsolutePath());
+ properties.setProperty("clientPort", String.valueOf(clientPort));
+
+ QuorumPeerConfig quorumPeerConfig = new QuorumPeerConfig();
+ quorumPeerConfig.parseProperties(properties);
+
+ zkServer = new ZooKeeperServerMain();
+ ServerConfig configuration = new ServerConfig();
+ configuration.readFrom(quorumPeerConfig);
+
+ zkServer.runFromConfig(configuration);
+ } catch (Exception e) {
+ if (errorHandler != null) {
+ errorHandler.handleError(e);
+ } else {
+ logger.error("Exception running embedded ZooKeeper", e);
+ }
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/ZKTools.java
similarity index 82%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/ZKTools.java
index 4714fc4..febd018 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-api/src/main/java/org/apache/dubbo/samples/ZKTools.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/ZKTools.java
@@ -14,12 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.samples;
+package org.apache.dubbo.samples.annotation;
+
+import org.apache.dubbo.common.utils.StringUtils;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -28,20 +29,14 @@ public class ZKTools {
private static CuratorFramework client;
public static void main(String[] args) throws Exception {
- client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000,
- new ExponentialBackoffRetry(1000, 3));
+ client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000, new ExponentialBackoffRetry(1000, 3));
client.start();
generateDubboPropertiesForGlobal();
}
public static void generateDubboPropertiesForGlobal() {
- String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
- "#global config for consumer\n" +
- "dubbo.consumer.timeout=6000\n" +
- "#global config for provider\n" +
- "dubbo.protocol.port=20990\n" +
- "dubbo.provider.timeout=5000";
+ String str = "dubbo.registries.registry1.address=zookeeper://127.0.0.1:2181\n" + "dubbo.registries.registry2.address=zookeeper://127.0.0.1:2182\n";
System.out.println(str);
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/action/AnnotationAction.java
similarity index 63%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/action/AnnotationAction.java
index 08fbfde..d8dc4a8 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/action/AnnotationAction.java
@@ -17,18 +17,24 @@
*
*/
-package org.apache.dubbo.samples.configcenter;
+package org.apache.dubbo.samples.annotation.action;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.apache.dubbo.config.annotation.Reference;
+import org.apache.dubbo.samples.externalconfiguration.api.AnnotationService;
-public class BasicProvider {
+import org.springframework.stereotype.Component;
- public static void main(String[] args) throws Exception {
- new EmbeddedZooKeeper(2181, false).start();
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/configcenter-provider.xml"});
- context.start();
+/**
+ * AnnotationAction
+ */
+@Component("annotationAction")
+public class AnnotationAction {
+
+ @Reference
+ private AnnotationService annotationService;
- System.in.read(); // press any key to exit
+ public String doSayHello(String name) {
+ return annotationService.sayHello(name);
}
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/api/AnnotationService.java
similarity index 62%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/api/AnnotationService.java
index 08fbfde..8378798 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/api/AnnotationService.java
@@ -17,18 +17,13 @@
*
*/
-package org.apache.dubbo.samples.configcenter;
+package org.apache.dubbo.samples.externalconfiguration.api;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public class BasicProvider {
-
- public static void main(String[] args) throws Exception {
- new EmbeddedZooKeeper(2181, false).start();
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/configcenter-provider.xml"});
- context.start();
+/**
+ * AsyncService
+ */
+public interface AnnotationService {
- System.in.read(); // press any key to exit
- }
+ String sayHello(String name);
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/impl/AnnotationServiceImpl.java
similarity index 63%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/impl/AnnotationServiceImpl.java
index 08fbfde..df6d8d4 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/annotation/impl/AnnotationServiceImpl.java
@@ -17,18 +17,21 @@
*
*/
-package org.apache.dubbo.samples.configcenter;
+package org.apache.dubbo.samples.annotation.impl;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.apache.dubbo.config.annotation.Service;
+import org.apache.dubbo.samples.externalconfiguration.api.AnnotationService;
-public class BasicProvider {
-
- public static void main(String[] args) throws Exception {
- new EmbeddedZooKeeper(2181, false).start();
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/configcenter-provider.xml"});
- context.start();
+/**
+ * AsyncServiceImpl
+ */
+@Service(registry = "registry1")
+public class AnnotationServiceImpl implements AnnotationService {
- System.in.read(); // press any key to exit
+ @Override
+ public String sayHello(String name) {
+ System.out.println("provider received: " + name);
+ return "annotation: hello, " + name;
}
}
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/log4j.properties
similarity index 65%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/log4j.properties
index 4054da2..e976f5c 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/log4j.properties
@@ -16,10 +16,10 @@
# limitations under the License.
#
#
-dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
-# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
-#dubbo.registry.address=zookeeper://127.0.0.1:2181
-# The application specific part, can be stored under the app group in the ConfigCenter
-#dubbo.consumer.timeout=3000
\ No newline at end of file
+###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
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/spring/dubbo-consumer.properties
similarity index 89%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/spring/dubbo-consumer.properties
index 4054da2..fa5da7e 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-consumer.properties
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/spring/dubbo-consumer.properties
@@ -17,8 +17,8 @@
#
#
dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
+dubbo.config-center.address=zookeeper://127.0.0.1:2181
+dubbo.config-center.configfile=dubbo.properties
# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
#dubbo.registry.address=zookeeper://127.0.0.1:2181
# The application specific part, can be stored under the app group in the ConfigCenter
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/spring/dubbo-provider.properties
similarity index 89%
copy from dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties
copy to dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/spring/dubbo-provider.properties
index 976b1c4..bb7d957 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/resources/spring/dubbo-provider.properties
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/resources/spring/dubbo-provider.properties
@@ -17,8 +17,8 @@
#
#
dubbo.application.name=configcenter-annotation-provider
-dubbo.configcenter.address=zookeeper://127.0.0.1:2181
-dubbo.configcenter.configfile=dubbo.properties
+dubbo.config-center.address=zookeeper://127.0.0.1:2181
+dubbo.config-center.configfile=dubbo.properties
# The common part, for example registry, protocol can be stored under the global group in ConfigCenter
# The application specific part, can be stored under the app group in the ConfigCenter
#dubbo.registry.address=zookeeper://127.0.0.1:2181
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
index ebcf077..4cf3931 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples.configcenter;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -31,18 +32,35 @@ public class ZKTools {
client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", 60 * 1000, 60 * 1000,
new ExponentialBackoffRetry(1000, 3));
client.start();
+//
+// generateDubboPropertiesForGlobal();
+// generateDubboPropertiesForApp();
+ System.in.read();
+ }
+
+ public static void generateDubboPropertiesForGlobal() {
+ String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181";
+
+// String str = "dubbo.registry.address=zookeeper://127.0.0.1:2183\n" +
+// "dubbo.registries.registry1.address=zookeeper://127.0.0.1:2181\n" +
+// "dubbo.registries.registry2.address=zookeeper://127.0.0.1:2181\n";
+
+ System.out.println(str);
- generateDubboPropertiesForApp();
+ try {
+ String path = "/dubbo/config/dubbo/dubbo.properties";
+ if (client.checkExists().forPath(path) == null) {
+ client.create().creatingParentsIfNeeded().forPath(path);
+ }
+ setData(path, str);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
public static void generateDubboPropertiesForApp() {
- String str = "#key: dubbo.{item-name}.{id}.{property}\n" +
- "dubbo.protocols=dubbo,hessian" +
- "dubbo.protocol.dubbo.name=dubbo\n" +
- "dubbo.protocol.dubbo.port=20991\n" +
- "\n" +
- "dubbo.protocol.hessian.name=hessian\n" +
- "dubbo.protocol.hessian.port=8089";
+ String str = "#key: dubbo.{item-name}.{id}.{property}\n" + "dubbo.protocols.dubbo1.name=dubbo\n" + "dubbo.protocols.dubbo1.port=20991\n" +
+ "\n" + "dubbo.protocols.hessian1.name=hessian\n" + "dubbo.protocols.hessian1.port=8089";
System.out.println(str);
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-consumer.xml b/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-consumer.xml
index b76bffb..0c56766 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-consumer.xml
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-consumer.xml
@@ -26,7 +26,7 @@
<dubbo:application name="configcenter-multiprotocol-consumer"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181" configfile="dubbo.properties"/>
+ <dubbo:config-center address="zookeeper://127.0.0.1:2181" configfile="dubbo.properties"/>
<dubbo:reference id="demoService" protocol="hessian"
interface="org.apache.dubbo.samples.configcenter.api.DemoService"/>
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-provider.xml b/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-provider.xml
index 1cae174..163acc0 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-provider.xml
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-multiprotocol/src/main/resources/META-INF/spring/configcenter-provider.xml
@@ -26,15 +26,14 @@
<dubbo:application name="configcenter-multiprotocol-provider"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
- <dubbo:protocol id="dubbo"/>
- <dubbo:protocol id="hessian"/>
+ <dubbo:provider protocol="hessian1"/>
<bean id="demoService" class="org.apache.dubbo.samples.configcenter.impl.DemoServiceImpl"/>
- <dubbo:service protocol="dubbo" interface="org.apache.dubbo.samples.configcenter.api.DemoService"
+ <dubbo:service interface="org.apache.dubbo.samples.configcenter.api.DemoService"
ref="demoService"/>
- <dubbo:service protocol="hessian" interface="org.apache.dubbo.samples.configcenter.api.DemoService"
+ <dubbo:service protocol="dubbo1" interface="org.apache.dubbo.samples.configcenter.api.DemoService"
ref="demoService"/>
</beans>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
index 08fbfde..ccc6002 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/BasicProvider.java
@@ -24,7 +24,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
public class BasicProvider {
public static void main(String[] args) throws Exception {
- new EmbeddedZooKeeper(2181, false).start();
+// new EmbeddedZooKeeper(2181, false).start();
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/configcenter-provider.xml"});
context.start();
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
index ede7de3..93f3199 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/java/org/apache/dubbo/samples/configcenter/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples.configcenter;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -38,12 +39,7 @@ public class ZKTools {
}
public static void generateDubboPropertiesForGlobal() {
- String str = "dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
- "#global config for consumer\n" +
- "dubbo.consumer.timeout=6000\n" +
- "#global config for provider\n" +
- "dubbo.protocol.port=20990\n" +
- "dubbo.provider.timeout=5000";
+ String str = "";
System.out.println(str);
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml
index 28192d2..d5331fb 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-consumer.xml
@@ -27,7 +27,7 @@
<!-- optional -->
<dubbo:application name="configcenter-consumer"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
<dubbo:reference id="demoService" interface="org.apache.dubbo.samples.configcenter.api.DemoService"/>
diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-provider.xml b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-provider.xml
index 73a5b5a..669f90d 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-provider.xml
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-xml/src/main/resources/META-INF/spring/configcenter-provider.xml
@@ -27,9 +27,9 @@
<!-- optional -->
<dubbo:application name="configcenter-provider"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
<bean id="demoService" class="org.apache.dubbo.samples.configcenter.impl.DemoServiceImpl"/>
- <dubbo:service async="true" interface="org.apache.dubbo.samples.configcenter.api.DemoService" ref="demoService"/>
+ <dubbo:service interface="org.apache.dubbo.samples.configcenter.api.DemoService" ref="demoService"/>
</beans>
\ No newline at end of file
diff --git a/dubbo-samples-configcenter/pom.xml b/dubbo-samples-configcenter/pom.xml
index 864ceef..b8764dc 100644
--- a/dubbo-samples-configcenter/pom.xml
+++ b/dubbo-samples-configcenter/pom.xml
@@ -32,6 +32,7 @@
<modules>
<module>dubbo-samples-configcenter-xml</module>
<module>dubbo-samples-configcenter-multiprotocol</module>
+ <module>dubbo-samples-configcenter-multi-registries</module>
<module>dubbo-samples-configcenter-annotation</module>
<module>dubbo-samples-configcenter-externalconfiguration</module>
<module>dubbo-samples-configcenter-api</module>
diff --git a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java b/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
index 28bf140..ec2228c 100644
--- a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
+++ b/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples.governance;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
import org.apache.zookeeper.CreateMode;
/**
@@ -33,24 +34,22 @@ public class ZKTools {
new ExponentialBackoffRetry(1000, 3));
client.start();
-// generateAppevelOverride();
-// System.in.read();
- generateAppevelOverrideConsumer();
+ generateAppLevelOverride();
+ System.in.read();
+ generateAppLevelOverrideConsumer();
}
- public static void generateAppevelOverride() {
+ public static void generateAppLevelOverride() {
String str = "# Execute on governance-appoverride-provider only\n" +
"# the governance-appoverride-provider instances on those provides who's port is 20880 will be lifted to 1000\n" +
"# this will take effect on all services on governance-appoverride-provider.\n" +
- "---\n" +
- "apiVersion: v2.7\n" +
+ "---\n" + "configVersion: v2.7\n" +
"scope: application\n" +
"key: governance-appoverride-provider\n" +
"enabled: true\n" +
"configs:\n" +
- "- addresses: [\"0.0.0.0:20880\"]\n" +
- " parameters:\n" +
- " weight: 1000\n" +
+ "- addresses: [\"0.0.0.0:20880\"]\n" + " side: provider\n" +
+ " parameters:\n" + " weight: 900\n" +
"...";
System.out.println(str);
@@ -69,20 +68,18 @@ public class ZKTools {
/**
*
*/
- public static void generateAppevelOverrideConsumer() {
+ public static void generateAppLevelOverrideConsumer() {
String str = "# Execute on demo-consumer only\n" +
"# the traffic come out from governance-appoverride-consumer will be distributed evenly across all providers,\n" +
"# because governance-appoverride-consumer will consider them having the same weight 100.\n" +
- "---\n" +
- "apiVersion: v2.7\n" +
+ "---\n" + "configVersion: v2.7\n" +
"scope: application\n" +
"key: governance-appoverride-consumer\n" +
"enabled: true\n" +
"configs:\n" +
"- addresses: [\"0.0.0.0\"]\n" +
" side: consumer\n" +
- " parameters:\n" +
- " weight: 140\n" +
+ " parameters:\n" + " weight: 100\n" +
"...\n";
System.out.println(str);
diff --git a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml b/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
index 83834c6..d0728ea 100644
--- a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
+++ b/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
@@ -31,7 +31,7 @@
<!-- optional, use multicast registry center to discover service -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
- <dubbo:configcenter priority="false" address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- generate proxy for the remote service, then demoService can be used in the same way as the
local regular interface -->
diff --git a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml b/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml
index 90245df..ce54ed5 100644
--- a/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml
+++ b/dubbo-samples-governance/dubbo-samples-applevel-override/src/main/resources/spring/dubbo-demo-provider.xml
@@ -33,7 +33,7 @@
<!--optional, use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo" port="-1"/>
- <dubbo:configcenter priority="false" address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- service implementation, as same as regular local bean -->
<bean id="demoService" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl"/>
diff --git a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java
index 228e960..2dd119a 100644
--- a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java
+++ b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java
@@ -19,9 +19,9 @@
package org.apache.dubbo.samples.governance;
-import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.samples.governance.api.DemoService;
import org.apache.dubbo.samples.governance.api.DemoService2;
+
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class BasicConsumer {
@@ -35,11 +35,9 @@ public class BasicConsumer {
while (true) {
try {
Thread.sleep(1000);
- RpcContext.getContext().setAttachment("tag", "tag1");
String hello = demoService.sayHello("world"); // call remote method
System.out.println(hello); // get result
- RpcContext.getContext().setAttachment("tag", "tag2");
String hello2 = demoService2.sayHello("world again"); // call remote method
System.out.println(hello2); // get result
diff --git a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
index 8a68bbb..7f38b15 100644
--- a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
+++ b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples.governance;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -39,13 +40,10 @@ public class ZKTools {
String str = "---\n" +
"scope: application\n" +
"force: true\n" +
- "runtime: true\n" +
- "enabled: true\n" +
+ "runtime: true\n" + "enabled: false\n" +
"priority: 2\n" +
"key: demo-consumer\n" +
- "conditions:\n" +
- " - interface=org.apache.dubbo.samples.governance.api.DemoService&method=sayHello=>address=*:20880\n" +
- " - interface=org.apache.dubbo.samples.governance.api.DemoService2&method=sayHello=>address=*:20881\n" +
+ "conditions:\n" + " - interface=org.apache.dubbo.samples.governance.api.DemoService=>address=*:20880\n" + " - interface=org.apache.dubbo.samples.governance.api.DemoService2=>address=*:20881\n" + "blackWhiteList:\n" + " enabled: true\n" + " conditions:\n" + " - interface=org.apache.dubbo.samples.governance.api.DemoService=>address=*:20880\n" + " - interface=org.apache.dubbo.samples.governance.api.DemoService2=>address=*:20881\n" +
"...";
System.out.println(str);
diff --git a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-consumer.xml b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-consumer.xml
index d202388..5bdb8e4 100644
--- a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-consumer.xml
+++ b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-consumer.xml
@@ -31,7 +31,7 @@
<!-- optional, use multicast registry center to discover service -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- generate proxy for the remote service, then demoService can be used in the same way as the
local regular interface -->
diff --git a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-provider.xml b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-provider.xml
index 52298b6..abe8c35 100644
--- a/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-provider.xml
+++ b/dubbo-samples-governance/dubbo-samples-configconditionrouter/src/main/resources/spring/dubbo-demo-provider.xml
@@ -33,7 +33,7 @@
<!--optional, use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo" port="-1"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- service implementation, as same as regular local bean -->
<bean id="demoService" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl"/>
diff --git a/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java b/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
index f8f6e42..cf6a090 100644
--- a/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
+++ b/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples.governance;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -37,16 +38,14 @@ public class ZKTools {
public static void generateServiceLevelOverride() {
String str = "# All Consumers that consume the service org.apache.dubbo.samples.governance.api.DemoService will increase the timeout value to 6000\n" +
- "---\n" +
- "apiVersion: v2.7\n" +
+ "---\n" + "configVersion: v2.7\n" +
"scope: service\n" +
"key: org.apache.dubbo.samples.governance.api.DemoService\n" +
"enabled: true\n" +
"configs:\n" +
"- addresses: [0.0.0.0]\n" +
" side: consumer\n" +
- " parameters:\n" +
- " timeout: 4000\n" +
+ " parameters:\n" + " timeout: 6000\n" +
"...\n";
System.out.println(str);
diff --git a/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-consumer.xml b/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
index 054974c..47d2c73 100644
--- a/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
+++ b/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-consumer.xml
@@ -31,10 +31,11 @@
<!-- optional, use multicast registry center to discover service -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
<!-- generate proxy for the remote service, then demoService can be used in the same way as the
local regular interface -->
- <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.samples.governance.api.DemoService"/>
+ <dubbo:reference timeout="1000" id="demoService" check="false"
+ interface="org.apache.dubbo.samples.governance.api.DemoService"/>
</beans>
\ No newline at end of file
diff --git a/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-provider.xml b/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-provider.xml
index d3c53e7..aa65db3 100644
--- a/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-provider.xml
+++ b/dubbo-samples-governance/dubbo-samples-servicelevel-override/src/main/resources/spring/dubbo-demo-provider.xml
@@ -33,8 +33,6 @@
<!--optional, use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo" port="20890"/>
- <!--<dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>-->
-
<!-- service implementation, as same as regular local bean -->
<bean id="demoService" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl"/>
diff --git a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java
index 228e960..4109abb 100644
--- a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java
+++ b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/BasicConsumer.java
@@ -19,9 +19,11 @@
package org.apache.dubbo.samples.governance;
+import org.apache.dubbo.common.Constants;
import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.samples.governance.api.DemoService;
import org.apache.dubbo.samples.governance.api.DemoService2;
+
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class BasicConsumer {
@@ -35,11 +37,12 @@ public class BasicConsumer {
while (true) {
try {
Thread.sleep(1000);
- RpcContext.getContext().setAttachment("tag", "tag1");
+ RpcContext.getContext().setAttachment(Constants.TAG_KEY, "tag1");
String hello = demoService.sayHello("world"); // call remote method
System.out.println(hello); // get result
- RpcContext.getContext().setAttachment("tag", "tag2");
+ RpcContext.getContext().setAttachment(Constants.TAG_KEY, "tag2");
+// RpcContext.getContext().setAttachment(Constants.FORCE_USE_TAG, "true");
String hello2 = demoService2.sayHello("world again"); // call remote method
System.out.println(hello2); // get result
diff --git a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
index 7f1fb95..9761b67 100644
--- a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
+++ b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/java/org/apache/dubbo/samples/governance/ZKTools.java
@@ -16,10 +16,11 @@
*/
package org.apache.dubbo.samples.governance;
+import org.apache.dubbo.common.utils.StringUtils;
+
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.dubbo.common.utils.StringUtils;
/**
*
@@ -40,13 +41,10 @@ public class ZKTools {
"force: false\n" +
"runtime: true\n" +
"enabled: true\n" +
- "priority: 1\n" +
- "key: demo-provider\n" +
+ "priority: 1\n" + "key: governance-tagrouter-provider\n" +
"tags:\n" +
- " - name: tag1\n" +
- " addresses: [\"192.168.1.6:20881\"]\n" +
- " - name: tag2\n" +
- " addresses: [\"192.168.1.6:20880\"]\n" +
+ " - name: tag1\n" + " addresses: [\"30.5.121.131:20880\"]\n" +
+ " - name: tag2\n" + " addresses: [\"30.5.121.131:20881\"]\n" +
"...";
System.out.println(str);
diff --git a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-consumer.xml b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-consumer.xml
index ac2474a..1ba31de 100644
--- a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-consumer.xml
+++ b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-consumer.xml
@@ -31,7 +31,7 @@
<!-- optional, use multicast registry center to discover service -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- generate proxy for the remote service, then demoService can be used in the same way as the
local regular interface -->
diff --git a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml
index eb6fc71..718c3aa 100644
--- a/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml
+++ b/dubbo-samples-governance/dubbo-samples-tagrouter/src/main/resources/spring/dubbo-demo-provider.xml
@@ -33,7 +33,7 @@
<!--optional, use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo" port="-1"/>
- <dubbo:configcenter address="zookeeper://127.0.0.1:2181"/>
+ <dubbo:config-center enable="false" address="zookeeper://127.0.0.1:2181"/>
<!-- service implementation, as same as regular local bean -->
<bean id="demoService" class="org.apache.dubbo.samples.governance.impl.DemoServiceImpl"/>
diff --git a/pom.xml b/pom.xml
index 9ee8207..47136ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,7 @@
<module>dubbo-samples-governance</module>
<module>dubbo-samples-metadata-report</module>
<module>dubbo-samples-simplified-registry</module>
+ <module>dubbo-samples-concurrency</module>
</modules>
<properties>
@@ -198,6 +199,10 @@
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-configcenter-zookeeper</artifactId>
+ </dependency>
</dependencies>