diff --git a/README.md b/README.md index 94986a0..500a84b 100644 --- a/README.md +++ b/README.md @@ -66,18 +66,36 @@ spring-cloud:Finchley.SR2 ## 3. spring-cloud samples -| samples | 描述 | 官方文档 | -| -------------------------- | --------------------------------- | ------------------------------------------------------------ | -| spring-cloud-Eureka | spring cloud 服务的注册和发现 | [Service Discovery: Eureka Clients](https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.1.0.RC3/single/spring-cloud-netflix.html#_service_discovery_eureka_clients) | -| spring-cloud-OpenFeign | spring cloud 服务间通信 | [Spring Cloud OpenFeign 官方文档](https://spring.io/projects/spring-cloud-openfeign#learn) | -| spring-cloud-config | spring cloud 统一配置中心 | [Spring Cloud Config](https://spring.io/projects/spring-cloud-config#learn) | -| spring-cloud-stream | spring cloud 对消息服务的抽象整合 | [spring-cloud-stream官方文档](https://cloud.spring.io/spring-cloud-stream/) | -| spring-cloud-zuul | spring cloud 网关限流、权限验证 | [Router and Filter: Zuul](http://projects.spring.io/spring-cloud/spring-cloud.html#_router_and_filter_zuul) | -| spring-cloud-sleuth-Zipkin | spring cloud 服务追踪 | [Spring Cloud Sleuth](https://spring.io/projects/spring-cloud-sleuth#learn) | +| samples | 描述 | 官方文档 | +| --------------------------- | --------------------------------- | ------------------------------------------------------------ | +| spring-cloud-Eureka | 服务的注册和发现 | [Service Discovery: Eureka Clients](https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.1.0.RC3/single/spring-cloud-netflix.html#_service_discovery_eureka_clients) | +| spring-cloud-Eureka-cluster | eureka 高可用集群搭建 | | +| spring-cloud-Ribbon | 客户端负载均衡 | | +| spring-cloud-OpenFeign | 声明式服务调用 | [Spring Cloud OpenFeign 官方文档](https://spring.io/projects/spring-cloud-openfeign#learn) | +| spring-cloud-Hystrix | 服务容错与降级保护 | | +| spring-cloud-config | 分布式配置中心 | [Spring Cloud Config](https://spring.io/projects/spring-cloud-config#learn) | +| spring-cloud-stream | spring cloud 对消息服务的抽象整合 | [spring-cloud-stream官方文档](https://cloud.spring.io/spring-cloud-stream/) | +| spring-cloud-zuul | spring cloud 网关服务 | [Router and Filter: Zuul](http://projects.spring.io/spring-cloud/spring-cloud.html#_router_and_filter_zuul) | +| spring-cloud-sleuth-Zipkin | 分布式服务追踪 | [Spring Cloud Sleuth](https://spring.io/projects/spring-cloud-sleuth#learn) | +| spring-cloud-config | 分布式配置中心 | [Spring Cloud Config](https://spring.io/projects/spring-cloud-config#learn) | +| spring-cloud -bus | spring cloud 消息总线 | |
-## 4.参考资料 +## 4.分布式session和分布式事务 + +| 描述 | sample | 官方文档 | +| ---------------------------------------- | ---------------------------- | ------------------------------------------------------------ | +| 分布式session解决方案(一) | spring session | [spring session](https://spring.io/projects/spring-session#learn) | +| 分布式session 解决方案(二) | spring boot + spring session | | +| 分布式session 解决方案(三) | memcached-session-manager | | +| 分布式事务解决方案(一)——JPA | 待补充 | | +| 分布式事务解决方案(二)——Spring事务同步 | 待补充 | | +| 分布式事务解决方案(三)——链式事务 | 待补充 | | + + + +## 5.参考资料 相关参考文档放在了仓库的referenced documents 目录下,文件目录如下: diff --git a/pictures/client-noconfig.png b/pictures/client-noconfig.png new file mode 100644 index 0000000..c04317e Binary files /dev/null and b/pictures/client-noconfig.png differ diff --git a/pictures/eureka-8010.png b/pictures/eureka-8010.png new file mode 100644 index 0000000..2c3d629 Binary files /dev/null and b/pictures/eureka-8010.png differ diff --git a/pictures/eureka-8020.png b/pictures/eureka-8020.png new file mode 100644 index 0000000..3b7e61b Binary files /dev/null and b/pictures/eureka-8020.png differ diff --git a/pictures/eureka-8030.png b/pictures/eureka-8030.png new file mode 100644 index 0000000..7c07f57 Binary files /dev/null and b/pictures/eureka-8030.png differ diff --git a/pictures/eureka-active.png b/pictures/eureka-active.png new file mode 100644 index 0000000..d43d5de Binary files /dev/null and b/pictures/eureka-active.png differ diff --git a/pictures/eureka.png b/pictures/eureka.png new file mode 100644 index 0000000..88baefc Binary files /dev/null and b/pictures/eureka.png differ diff --git a/spring-cloud/spring-cloud-eureka-cluster/README.md b/spring-cloud/spring-cloud-eureka-cluster/README.md new file mode 100644 index 0000000..db849a0 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/README.md @@ -0,0 +1,3 @@ +2019-01-11 11:16:14.320 INFO 13496 --- [nio-8010-exec-4] c.n.e.registry.AbstractInstanceRegistry : Registered instance SERVER/DESKTOP-8JGSFLJ:server:8010 with status UP (replication=true) +2019-01-11 11:16:15.084 INFO 13496 --- [ Thread-41] c.n.e.registry.AbstractInstanceRegistry : Registered instance SERVER/DESKTOP-8JGSFLJ:server:8020 with status UP (replication=true) +2019-01-11 11:16:15.085 INFO 13496 --- [ Thread-41] c.n.e.registry.AbstractInstanceRegistry : Registered instance SERVER/DESKTOP-8JGSFLJ:server:8030 with status UP (replication=true) \ No newline at end of file diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-client/pom.xml b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/pom.xml new file mode 100644 index 0000000..2319a65 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/pom.xml @@ -0,0 +1,69 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.1.RELEASE + + + com.heibaiying.eurekacluster + eureka-client + 0.0.1-SNAPSHOT + eureka-client + eureka client project for Spring Boot + + + 1.8 + Finchley.SR2 + + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + + + diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/main/java/com/heibaiying/eurekacluster/client/EurekaClientApplication.java b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/main/java/com/heibaiying/eurekacluster/client/EurekaClientApplication.java new file mode 100644 index 0000000..7120e9f --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/main/java/com/heibaiying/eurekacluster/client/EurekaClientApplication.java @@ -0,0 +1,16 @@ +package com.heibaiying.eurekacluster.client; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class EurekaClientApplication { + + public static void main(String[] args) { + SpringApplication.run(EurekaClientApplication.class, args); + } + +} + diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/main/resources/application.yml b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/main/resources/application.yml new file mode 100644 index 0000000..eb0639f --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/main/resources/application.yml @@ -0,0 +1,11 @@ +server: + port: 8040 +# 指定服务命名 +spring: + application: + name: eureka-client +# 指定注册中心地址 +eureka: + client: + serviceUrl: + defaultZone: http://127.0.0.1:8010/eureka/,http://localhost:8020/eureka/,http://192.168.200.228:8030/eureka/ diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/test/java/com/heibaiying/eurekacluster/client/EurekaClientApplicationTests.java b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/test/java/com/heibaiying/eurekacluster/client/EurekaClientApplicationTests.java new file mode 100644 index 0000000..d152e17 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-client/src/test/java/com/heibaiying/eurekacluster/client/EurekaClientApplicationTests.java @@ -0,0 +1,17 @@ +package com.heibaiying.eurekacluster.client; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class EurekaClientApplicationTests { + + @Test + public void contextLoads() { + } + +} + diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-server/pom.xml b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/pom.xml new file mode 100644 index 0000000..eac1f28 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/pom.xml @@ -0,0 +1,64 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.1.RELEASE + + + com.heibaiying.eurekacluster + eureka-server + 0.0.1-SNAPSHOT + eureka-server + eureka server project for Spring Boot + + + 1.8 + Finchley.SR2 + + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + + + diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/java/com/heibaiying/eurekacluster/server/EurekaServerApplication.java b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/java/com/heibaiying/eurekacluster/server/EurekaServerApplication.java new file mode 100644 index 0000000..f681079 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/java/com/heibaiying/eurekacluster/server/EurekaServerApplication.java @@ -0,0 +1,16 @@ +package com.heibaiying.eurekacluster.server; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +@SpringBootApplication +@EnableEurekaServer +public class EurekaServerApplication { + + public static void main(String[] args) { + SpringApplication.run(EurekaServerApplication.class, args); + } + +} + diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-01.yml b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-01.yml new file mode 100644 index 0000000..aed3b66 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-01.yml @@ -0,0 +1,14 @@ +spring: + application: + name: server +server: + port: 8010 +eureka: + server: + # 关闭自我保护机制 开发的时候可以开启 保证不可用的服务能够及时剔除 + enable-self-preservation: false + instance: + hostname: 127.0.0.1 + client: + serviceUrl: + defaultZone: http://localhost:8020/eureka/,http://192.168.200.228:8030/eureka/ \ No newline at end of file diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-02.yml b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-02.yml new file mode 100644 index 0000000..63d4de8 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-02.yml @@ -0,0 +1,14 @@ +spring: + application: + name: server +server: + port: 8020 +eureka: + server: + # 关闭自我保护机制 开发的时候可以开启 保证不可用的服务能够及时剔除 + enable-self-preservation: false + instance: + hostname: localhost + client: + serviceUrl: + defaultZone: http://127.0.0.1:8010/eureka/,http://192.168.200.228:8030/eureka/ \ No newline at end of file diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-03.yml b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-03.yml new file mode 100644 index 0000000..9988890 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/main/resources/application-03.yml @@ -0,0 +1,14 @@ +spring: + application: + name: server +server: + port: 8030 +eureka: + server: + # 关闭自我保护机制 开发的时候可以开启 保证不可用的服务能够及时从列表中剔除 + enable-self-preservation: false + instance: + hostname: 192.168.200.228 + client: + serviceUrl: + defaultZone: http://127.0.0.1:8010/eureka/,http://localhost:8020/eureka/ \ No newline at end of file diff --git a/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/test/java/com/heibaiying/eurekacluster/server/EurekaServerApplicationTests.java b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/test/java/com/heibaiying/eurekacluster/server/EurekaServerApplicationTests.java new file mode 100644 index 0000000..3c958d2 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/eureka-server/src/test/java/com/heibaiying/eurekacluster/server/EurekaServerApplicationTests.java @@ -0,0 +1,17 @@ +package com.heibaiying.eurekacluster.server; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class EurekaServerApplicationTests { + + @Test + public void contextLoads() { + } + +} + diff --git a/spring-cloud/spring-cloud-eureka-cluster/pom.xml b/spring-cloud/spring-cloud-eureka-cluster/pom.xml new file mode 100644 index 0000000..d0777e2 --- /dev/null +++ b/spring-cloud/spring-cloud-eureka-cluster/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + pom + + + org.springframework.boot + spring-boot-starter-parent + 2.1.1.RELEASE + + + com.heibaiying + eureka-cluster + 0.0.1-SNAPSHOT + eureka-cluster + eureka cluster project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/spring-cloud/spring-cloud-eureka/README.md b/spring-cloud/spring-cloud-eureka/README.md new file mode 100644 index 0000000..e69de29 diff --git a/spring-cloud/eureka/eureka-client/pom.xml b/spring-cloud/spring-cloud-eureka/eureka-client/pom.xml similarity index 97% rename from spring-cloud/eureka/eureka-client/pom.xml rename to spring-cloud/spring-cloud-eureka/eureka-client/pom.xml index b831943..97548eb 100644 --- a/spring-cloud/eureka/eureka-client/pom.xml +++ b/spring-cloud/spring-cloud-eureka/eureka-client/pom.xml @@ -16,7 +16,7 @@ 1.8 - Greenwich.RC2 + Finchley.SR2 diff --git a/spring-cloud/eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/EurekaClientApplication.java b/spring-cloud/spring-cloud-eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/EurekaClientApplication.java similarity index 100% rename from spring-cloud/eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/EurekaClientApplication.java rename to spring-cloud/spring-cloud-eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/EurekaClientApplication.java diff --git a/spring-cloud/eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/controller/InfoController.java b/spring-cloud/spring-cloud-eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/controller/InfoController.java similarity index 100% rename from spring-cloud/eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/controller/InfoController.java rename to spring-cloud/spring-cloud-eureka/eureka-client/src/main/java/com/heibaiying/eurekaclient/controller/InfoController.java diff --git a/spring-cloud/eureka/eureka-client/src/main/resources/application.yml b/spring-cloud/spring-cloud-eureka/eureka-client/src/main/resources/application.yml similarity index 100% rename from spring-cloud/eureka/eureka-client/src/main/resources/application.yml rename to spring-cloud/spring-cloud-eureka/eureka-client/src/main/resources/application.yml diff --git a/spring-cloud/eureka/eureka-client/src/test/java/com/heibaiying/eurekaclient/EurekaClientApplicationTests.java b/spring-cloud/spring-cloud-eureka/eureka-client/src/test/java/com/heibaiying/eurekaclient/EurekaClientApplicationTests.java similarity index 100% rename from spring-cloud/eureka/eureka-client/src/test/java/com/heibaiying/eurekaclient/EurekaClientApplicationTests.java rename to spring-cloud/spring-cloud-eureka/eureka-client/src/test/java/com/heibaiying/eurekaclient/EurekaClientApplicationTests.java diff --git a/spring-cloud/eureka/eureka-server/pom.xml b/spring-cloud/spring-cloud-eureka/eureka-server/pom.xml similarity index 96% rename from spring-cloud/eureka/eureka-server/pom.xml rename to spring-cloud/spring-cloud-eureka/eureka-server/pom.xml index fc66e27..aee7002 100644 --- a/spring-cloud/eureka/eureka-server/pom.xml +++ b/spring-cloud/spring-cloud-eureka/eureka-server/pom.xml @@ -16,7 +16,7 @@ 1.8 - Greenwich.RC2 + Finchley.SR2 diff --git a/spring-cloud/eureka/eureka-server/src/main/java/com/heibaiying/eurekaserver/EurekaServerApplication.java b/spring-cloud/spring-cloud-eureka/eureka-server/src/main/java/com/heibaiying/eurekaserver/EurekaServerApplication.java similarity index 100% rename from spring-cloud/eureka/eureka-server/src/main/java/com/heibaiying/eurekaserver/EurekaServerApplication.java rename to spring-cloud/spring-cloud-eureka/eureka-server/src/main/java/com/heibaiying/eurekaserver/EurekaServerApplication.java diff --git a/spring-cloud/eureka/eureka-server/src/main/resources/application.yml b/spring-cloud/spring-cloud-eureka/eureka-server/src/main/resources/application.yml similarity index 100% rename from spring-cloud/eureka/eureka-server/src/main/resources/application.yml rename to spring-cloud/spring-cloud-eureka/eureka-server/src/main/resources/application.yml diff --git a/spring-cloud/eureka/eureka-server/src/test/java/com/heibaiying/eurekaserver/EurekaServerApplicationTests.java b/spring-cloud/spring-cloud-eureka/eureka-server/src/test/java/com/heibaiying/eurekaserver/EurekaServerApplicationTests.java similarity index 100% rename from spring-cloud/eureka/eureka-server/src/test/java/com/heibaiying/eurekaserver/EurekaServerApplicationTests.java rename to spring-cloud/spring-cloud-eureka/eureka-server/src/test/java/com/heibaiying/eurekaserver/EurekaServerApplicationTests.java diff --git a/spring-cloud/eureka/pom.xml b/spring-cloud/spring-cloud-eureka/pom.xml similarity index 97% rename from spring-cloud/eureka/pom.xml rename to spring-cloud/spring-cloud-eureka/pom.xml index a12681e..ab9788c 100644 --- a/spring-cloud/eureka/pom.xml +++ b/spring-cloud/spring-cloud-eureka/pom.xml @@ -2,6 +2,8 @@ 4.0.0 + pom + org.springframework.boot spring-boot-starter-parent