diff --git a/53.Dubbo-High-Availability/common-api/pom.xml b/53.Dubbo-High-Availability/common-api/pom.xml
new file mode 100644
index 0000000..e517365
--- /dev/null
+++ b/53.Dubbo-High-Availability/common-api/pom.xml
@@ -0,0 +1,14 @@
+
+
+
+ dubbo-boot
+ cc.mrbird
+ 1.0
+
+
+ 4.0.0
+ common-api
+
+
\ No newline at end of file
diff --git a/53.Dubbo-High-Availability/common-api/src/main/java/cc/mrbird/common/api/HelloService.java b/53.Dubbo-High-Availability/common-api/src/main/java/cc/mrbird/common/api/HelloService.java
new file mode 100644
index 0000000..bf9c27b
--- /dev/null
+++ b/53.Dubbo-High-Availability/common-api/src/main/java/cc/mrbird/common/api/HelloService.java
@@ -0,0 +1,5 @@
+package cc.mrbird.common.api;
+
+public interface HelloService {
+ String hello(String message);
+}
diff --git a/53.Dubbo-High-Availability/pom.xml b/53.Dubbo-High-Availability/pom.xml
new file mode 100644
index 0000000..3af2aac
--- /dev/null
+++ b/53.Dubbo-High-Availability/pom.xml
@@ -0,0 +1,73 @@
+
+
+ 4.0.0
+
+ cc.mrbird
+ dubbo-boot
+ pom
+ 1.0
+
+ dubbo-boot
+ Spring Boot-Dubbo-ZooKeeper
+
+
+ common-api
+ server-provider
+ server-consumer
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.4.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ 1.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.alibaba.boot
+ dubbo-spring-boot-starter
+ 0.2.0
+
+
+
+
+ org.apache.zookeeper
+ zookeeper
+ 3.4.8
+
+
+ com.101tec
+ zkclient
+ 0.10
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${java.version}
+ ${java.version}
+ ${project.build.sourceEncoding}
+
+
+
+
+
\ No newline at end of file
diff --git a/53.Dubbo-High-Availability/server-consumer/pom.xml b/53.Dubbo-High-Availability/server-consumer/pom.xml
new file mode 100644
index 0000000..165cf71
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-consumer/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ dubbo-boot
+ cc.mrbird
+ 1.0
+
+ 4.0.0
+
+ server-consumer
+
+
+
+ cc.mrbird
+ common-api
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/53.Dubbo-High-Availability/server-consumer/src/main/java/cc/mrbird/ConsumerApplicaiton.java b/53.Dubbo-High-Availability/server-consumer/src/main/java/cc/mrbird/ConsumerApplicaiton.java
new file mode 100644
index 0000000..0c4f7cc
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-consumer/src/main/java/cc/mrbird/ConsumerApplicaiton.java
@@ -0,0 +1,13 @@
+package cc.mrbird;
+
+import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class ConsumerApplicaiton {
+ public static void main(String[] args) {
+ SpringApplication.run(ConsumerApplicaiton.class, args);
+ }
+}
diff --git a/53.Dubbo-High-Availability/server-consumer/src/main/java/cc/mrbird/consumer/controller/HelloController.java b/53.Dubbo-High-Availability/server-consumer/src/main/java/cc/mrbird/consumer/controller/HelloController.java
new file mode 100644
index 0000000..72c37ca
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-consumer/src/main/java/cc/mrbird/consumer/controller/HelloController.java
@@ -0,0 +1,22 @@
+package cc.mrbird.consumer.controller;
+
+import cc.mrbird.common.api.HelloService;
+import com.alibaba.dubbo.config.annotation.Reference;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class HelloController {
+
+ // @Reference(url = "http://127.0.0.1:8080")
+ // @Reference(loadbalance = RoundRobinLoadBalance.NAME)
+ @Reference(timeout = 1000)
+ private HelloService helloService;
+
+ @GetMapping("/hello/{message}")
+ public String hello(@PathVariable String message) {
+ return this.helloService.hello(message);
+ }
+
+}
diff --git a/53.Dubbo-High-Availability/server-consumer/src/main/resources/application.yml b/53.Dubbo-High-Availability/server-consumer/src/main/resources/application.yml
new file mode 100644
index 0000000..d2339f5
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-consumer/src/main/resources/application.yml
@@ -0,0 +1,15 @@
+server:
+ port: 8081
+
+dubbo:
+ application:
+ # 服务名称,保持唯一
+ name: server-consumer
+ # zookeeper地址,用于从中获取注册的服务
+ registry:
+ address: zookeeper://127.0.0.1:2181
+ protocol:
+ # dubbo协议,固定写法
+ name: dubbo
+ monitor:
+ protocol: registry
\ No newline at end of file
diff --git a/53.Dubbo-High-Availability/server-provider/pom.xml b/53.Dubbo-High-Availability/server-provider/pom.xml
new file mode 100644
index 0000000..6e624c6
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-provider/pom.xml
@@ -0,0 +1,27 @@
+
+
+
+ dubbo-boot
+ cc.mrbird
+ 1.0
+
+ 4.0.0
+
+ server-provider
+
+
+
+ cc.mrbird
+ common-api
+ ${project.version}
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-hystrix
+ 2.0.2.RELEASE
+
+
+
\ No newline at end of file
diff --git a/53.Dubbo-High-Availability/server-provider/src/main/java/cc/mrbird/ProviderApplicaiton.java b/53.Dubbo-High-Availability/server-provider/src/main/java/cc/mrbird/ProviderApplicaiton.java
new file mode 100644
index 0000000..c22c05d
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-provider/src/main/java/cc/mrbird/ProviderApplicaiton.java
@@ -0,0 +1,16 @@
+package cc.mrbird;
+
+import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.hystrix.EnableHystrix;
+
+@EnableHystrix
+@EnableDubbo
+@SpringBootApplication
+public class ProviderApplicaiton {
+ public static void main(String[] args) {
+ SpringApplication.run(ProviderApplicaiton.class, args);
+ System.out.println("complete");
+ }
+}
diff --git a/53.Dubbo-High-Availability/server-provider/src/main/java/cc/mrbird/provider/service/HelloServiceImpl.java b/53.Dubbo-High-Availability/server-provider/src/main/java/cc/mrbird/provider/service/HelloServiceImpl.java
new file mode 100644
index 0000000..232a450
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-provider/src/main/java/cc/mrbird/provider/service/HelloServiceImpl.java
@@ -0,0 +1,35 @@
+package cc.mrbird.provider.service;
+
+import cc.mrbird.common.api.HelloService;
+import com.alibaba.dubbo.config.annotation.Service;
+import com.alibaba.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance;
+import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+@Service(
+ interfaceClass = HelloService.class,
+ weight = 100,
+ loadbalance = RoundRobinLoadBalance.NAME)
+@Component
+public class HelloServiceImpl implements HelloService {
+
+ @Override
+ @HystrixCommand(fallbackMethod = "defaultHello")
+ public String hello(String message) {
+ System.out.println("调用 cc.mrbird.provider.service.HelloServiceImpl#hello");
+ // try {
+ // TimeUnit.SECONDS.sleep(2);
+ // } catch (InterruptedException e) {
+ // e.printStackTrace();
+ // }
+ String a = null;
+ a.toString();
+ return "hello," + message;
+ }
+
+ public String defaultHello(String message) {
+ return "hello anonymous";
+ }
+}
diff --git a/53.Dubbo-High-Availability/server-provider/src/main/resources/application.yml b/53.Dubbo-High-Availability/server-provider/src/main/resources/application.yml
new file mode 100644
index 0000000..8c8a7ab
--- /dev/null
+++ b/53.Dubbo-High-Availability/server-provider/src/main/resources/application.yml
@@ -0,0 +1,18 @@
+server:
+ port: 8080
+
+dubbo:
+ application:
+ # 服务名称,保持唯一
+ name: server-provider
+ # zookeeper地址,用于向其注册服务
+ registry:
+ address: zookeeper://127.0.0.1:2181
+ #暴露服务方式
+ protocol:
+ # dubbo协议,固定写法
+ name: dubbo
+ # 暴露服务端口 (默认是20880,不同的服务提供者端口不能重复)
+ port: 20880
+ monitor:
+ protocol: registry