├── .gitignore ├── LICENSE ├── README.md ├── ch10-1 ├── ch10-1-common │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── common │ │ │ ├── config │ │ │ └── CommonConfiguration.java │ │ │ ├── context │ │ │ ├── HystrixThreadCallable.java │ │ │ ├── HystrixThreadLocal.java │ │ │ ├── SpringCloudHystrixConcurrencyStrategy.java │ │ │ ├── SpringContextManager.java │ │ │ └── UserContextHolder.java │ │ │ ├── exception │ │ │ ├── BaseException.java │ │ │ ├── BaseExceptionBody.java │ │ │ └── CommonError.java │ │ │ ├── intercepter │ │ │ ├── FeignUserContextInterceptor.java │ │ │ ├── RestTemplateUserContextInterceptor.java │ │ │ └── UserContextInterceptor.java │ │ │ ├── util │ │ │ ├── AuthUtil.java │ │ │ ├── ExceptionUtil.java │ │ │ └── HttpConvertUtil.java │ │ │ └── vo │ │ │ └── User.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── logback.xml ├── ch10-1-config-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch10-1-data-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── dataservice │ │ │ ├── DataServiceApplication.java │ │ │ ├── config │ │ │ └── DataConfig.java │ │ │ └── controller │ │ │ └── DataController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch10-1-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch10-1-hystrix-dashboard │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── HystrixDashboardTurbineApplication.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch10-1-user-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── user │ │ │ ├── UserServiceApplication.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ └── service │ │ │ ├── IUserService.java │ │ │ ├── dataservice │ │ │ └── DataService.java │ │ │ ├── fallback │ │ │ └── UserClientFallback.java │ │ │ └── impl │ │ │ └── UserService.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch10-1-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ZuulServerApplication.java │ │ │ └── filter │ │ │ ├── AuthFilter.java │ │ │ └── ZuulFallback.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml └── pom.xml ├── ch11-1 ├── ch11-1-config-client │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── ClientConfigGitApplication.java │ │ │ ├── config │ │ │ └── ConfigInfoProperties.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch11-1-config-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigGitApplication.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── reademe.txt ├── ch11-2 ├── ch11-2-config-client-refresh │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── ClientConfigGitApplication.java │ │ │ ├── config │ │ │ ├── ConfigInfoProperties.java │ │ │ └── SecurityConfiguration.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.properties │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch11-2-config-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigGitApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch11-3 ├── ch11-3-config-client-bus-refresh-second │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── GitConfigClientApplication.java │ │ │ ├── config │ │ │ ├── ConfigInfoProperties.java │ │ │ └── SecurityConfiguration.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.properties │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch11-3-config-client-bus-refresh │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── GitConfigClientApplication.java │ │ │ ├── config │ │ │ ├── ConfigInfoProperties.java │ │ │ └── SecurityConfiguration.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.properties │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch11-3-config-server-bus │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── GitConfigServerApplication.java │ │ │ └── SecurityConfiguration.java │ │ └── resources │ │ ├── application.properties │ │ └── application.yml └── pom.xml ├── ch12-1 ├── ch12-1-config-client-placeholders │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── GitConfigClientApplication.java │ │ │ ├── config │ │ │ └── ConfigInfoProperties.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-1-config-server-placeholders │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── GitConfigServerApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-10 ├── ch12-10-apollo-build-script │ ├── pom.xml │ └── sql │ │ ├── apolloconfigdb.sql │ │ └── apolloportaldb.sql ├── ch12-10-config-client-apollo │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ApolloClientApplication.java │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── META-INF │ │ └── app.properties │ │ └── application.yml ├── ch12-10-config-client-apollo2 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ApolloClientApplicationNew.java │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── META-INF │ │ └── app.properties │ │ └── application.yml ├── ch12-10-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch12-10-gateway-zuul-apollo │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── zuul │ │ │ ├── ZuulServerApplication.java │ │ │ └── config │ │ │ └── ZuulPropertiesRefresher.java │ │ └── resources │ │ ├── META-INF │ │ └── app.properties │ │ └── application.yml └── pom.xml ├── ch12-2 ├── ch12-2-config-client-multiple-repositories │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── GitConfigClientApplication.java │ │ │ ├── config │ │ │ └── ConfigInfoProperties.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-2-config-server-multiple-repositories │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── GitConfigServerApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-3 ├── ch12-3-config-client-db │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ ├── DbConfigClientApplication.java │ │ │ ├── config │ │ │ └── ConfigInfoProperties.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-3-config-server-db │ ├── pom.xml │ ├── script │ │ ├── 创建配置表.sql │ │ └── 插入数据.sql │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── sc │ │ │ └── book │ │ │ └── config │ │ │ └── DbConfigServerApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-4 ├── ch12-4-config-client-mongodb │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── sc │ │ │ └── boo │ │ │ └── config │ │ │ └── mongodb │ │ │ ├── MongoDbConfigClientApplication.java │ │ │ ├── config │ │ │ └── ConfigInfoProperties.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-4-config-server-mongodb │ ├── pom.xml │ ├── script │ │ └── config.json │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── sc │ │ │ └── boo │ │ │ └── config │ │ │ └── mongodb │ │ │ └── MongoDbConfigServerApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-5 ├── ch12-5-config-client-auto-refresh │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ClientConfigGitApplication.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-5-config-client-refresh-autoconfig │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── sc │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigClientRefreshAutoConfiguration.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── ch12-5-config-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigGitApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-6 ├── ch12-6-config-client-fallback-autoconfig │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── client │ │ │ └── fallback │ │ │ ├── ConfigServerBootstrap.java │ │ │ └── FallbackableConfigServicePropertySourceLocator.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── configClient.properties ├── ch12-6-config-client-fallback │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ClientConfigGitApplication.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-6-config-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigGitApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-7 ├── ch12-7-config-client-auth-jwt │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── jwt │ │ │ ├── ClientConfigGitApplication.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-7-config-client-jwt │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── jwt │ │ │ ├── config │ │ │ └── ConfigClientBootstrapConfiguration.java │ │ │ └── dto │ │ │ ├── LoginRequest.java │ │ │ └── Token.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── ch12-7-config-server-auth-jwt │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ConfigGitApplication.java │ │ │ ├── config │ │ │ └── SecurityConfig.java │ │ │ ├── models │ │ │ ├── JwtAuthenticationRequest.java │ │ │ ├── JwtAuthenticationResponse.java │ │ │ └── JwtUser.java │ │ │ ├── rest │ │ │ └── AuthenticationRestController.java │ │ │ └── security │ │ │ ├── JwtAuthenticationEntryPoint.java │ │ │ ├── JwtTokenUtil.java │ │ │ ├── MemberServiceImpl.java │ │ │ ├── WebAuthenticationDetailsSourceImpl.java │ │ │ └── filters │ │ │ └── JwtAuthenticationTokenFilter.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-8 ├── ch12-8-config-client-high-availability-autoconfig │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── configuration │ │ │ ├── ConfigSupportConfiguration.java │ │ │ └── ConfigSupportProperties.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── ch12-8-config-client-high-availability │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ClientConfigGitApplication.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-8-config-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigGitApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch12-9 ├── ch12-9-config-client │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ ├── ClientConfigGitApplication.java │ │ │ └── controller │ │ │ └── ConfigClientController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch12-9-config-server-high-availability │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── config │ │ │ └── ConfigGitApplication.java │ │ └── resources │ │ └── application.yml ├── ch12-9-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch13-1 ├── README.md ├── ch13-1-consul-config │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── config │ │ │ └── ConsulConfigApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch13-1-consul-consumer │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── consumer │ │ │ ├── ConsulConsumerApplication.java │ │ │ └── HelloService.java │ │ └── resources │ │ └── bootstrap.yml ├── ch13-1-consul-provider │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── consul │ │ │ │ └── provider │ │ │ │ └── ConsulProviderApplication.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── core │ │ └── ConcurrentMapTest.java └── pom.xml ├── ch14-1 ├── README.md ├── ch14-1-consul-register │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── register │ │ │ └── ConsulRegisterApplication.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch14-2 ├── ch14-2-consul-consumer-discoveryclient │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── consumer │ │ │ └── discoveryclient │ │ │ └── ConsulConsumerDiscoveryclientApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-2-consul-consumer-ribbon │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── consumer │ │ │ └── ribbon │ │ │ ├── ConsulConsumerRibbonApplication.java │ │ │ └── HelloService.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-2-consul-provider-tag-1 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider │ │ │ └── tag1 │ │ │ └── ConsulProviderTag1Application.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-2-consul-provider-tag-2 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider │ │ │ └── tag2 │ │ │ └── ConsulProviderTag2Application.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-2-cosul-provider-tag-1 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider │ │ │ └── tag1 │ │ │ └── ConsulProviderTag1Application.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch14-3 ├── ch14-3-consul-config-customize │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── config │ │ │ └── customize │ │ │ └── ConsulCustomizeApplication.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml └── pom.xml ├── ch14-4 ├── ch14-4-consul-override-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── consumer │ │ │ └── discoveryclient │ │ │ ├── ConsulConsumerDiscoveryclientApplication.java │ │ │ └── MyConsulDiscoveryClient.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-4-consul-override-provider-tag1 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider │ │ │ └── tag1 │ │ │ └── ConsulProviderTag1Application.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-4-consul-override-provider-tag2 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider │ │ │ └── tag2 │ │ │ └── ConsulProviderTag2Application.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch14-5 ├── ch14-5-consul-override-consumer-new │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── override │ │ │ └── consumer │ │ │ ├── myconsultool │ │ │ ├── MyConsulRibbonClientConfiguration.java │ │ │ ├── MyConsulServerList.java │ │ │ └── MyRibbonConsulAutoConfiguration.java │ │ │ └── newconsulserverlist │ │ │ ├── Hello1Service.java │ │ │ ├── Hello2Service.java │ │ │ └── NewConsulConsumerApplication.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── bootstrap.yml ├── ch14-5-consul-override-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── override │ │ │ └── consumer │ │ │ └── consulserverlist │ │ │ ├── ConsulConsumerApplication.java │ │ │ ├── Hello1Service.java │ │ │ ├── Hello2Service.java │ │ │ └── MyConsulServerList.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-5-consul-provider1 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider1 │ │ │ └── ConsulProvider1Application.java │ │ └── resources │ │ └── bootstrap.yml ├── ch14-5-consul-provider2 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── consul │ │ │ └── provider2 │ │ │ └── ConsulProvider2Application.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch15-1 ├── ch15-1-client-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── bootstrap.yml ├── ch15-1-core-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── common │ │ │ ├── config │ │ │ └── CommonConfiguration.java │ │ │ ├── intercepter │ │ │ ├── RestTemplateUserContextInterceptor.java │ │ │ ├── UserContextHolder.java │ │ │ └── UserContextInterceptor.java │ │ │ ├── util │ │ │ └── UserPermissionUtil.java │ │ │ └── vo │ │ │ └── User.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── logback.xml ├── ch15-1-eureka-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch15-1-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ ├── GatewayApplication.java │ │ │ └── filter │ │ │ ├── AuthFilter.java │ │ │ ├── JwtUtil.java │ │ │ ├── PermissionException.java │ │ │ └── TokenController.java │ │ └── resources │ │ └── application.yml ├── ch15-1-provider-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ProviderApplication.java │ │ │ └── controller │ │ │ └── ProviderController.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch16-1 ├── ch16-1-sleuth-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── sleuth │ │ │ └── consumer │ │ │ ├── ConsumerConfiguration.java │ │ │ ├── ConsumerController.java │ │ │ ├── HelloService.java │ │ │ └── SleuthConsumerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch16-1-sleuth-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── sleuth │ │ │ └── provider │ │ │ ├── ProviderController.java │ │ │ └── SleuthProviderApplication.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch16-2 ├── ch16-2-sleuth-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── sleuth │ │ │ └── consumer │ │ │ ├── ConsumerController.java │ │ │ ├── HelloService.java │ │ │ ├── SessionFilter.java │ │ │ └── SleuthConsumerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch16-2-sleuth-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── sleuth │ │ │ └── provider │ │ │ ├── ProviderController.java │ │ │ └── SleuthProviderApplication.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch16-3 ├── ch16-3-eureka-server-skywalking │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch16-3-script │ ├── pom.xml │ └── script │ │ ├── drop-hbase.txt │ │ └── init-hbase.txt ├── ch16-3-service-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── AServiceApplication.java │ │ │ ├── controller │ │ │ └── SkyController.java │ │ │ └── service │ │ │ └── SkyFeignSerivece.java │ │ └── resources │ │ └── application.yml ├── ch16-3-service-b │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── BServiceApplication.java │ │ │ └── controller │ │ │ └── SkySecondController.java │ │ └── resources │ │ └── application.yml ├── ch16-3-zuul-skywalking │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── zuul │ │ │ └── ZuulServerApplication.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch17-1 ├── ch17-1-1-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-1-2-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SCGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java └── pom.xml ├── ch17-2 ├── ch17-2-1-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── gateway │ │ │ │ └── SCGatewayApplication.java │ │ │ │ └── utils │ │ │ │ └── UtcTimeUtil.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-2-2-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── gateway │ │ │ └── SpringCloudGatewayApplication.java │ │ │ └── utils │ │ │ └── UtcTimeUtil.java │ │ └── resources │ │ └── application.yml ├── ch17-2-3-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── gateway │ │ │ │ └── SCGatewayApplication.java │ │ │ │ └── utils │ │ │ │ └── UtcTimeUtil.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-2-4-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── CookieRoutePredicateFactoryTests.java ├── ch17-2-5-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-2-6-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── ScGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-2-7-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ └── application.yml ├── ch17-2-8-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ └── application.yml ├── ch17-2-9-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ └── application.yml ├── ch17-2-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ ├── ServiceProviderApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch17-3 ├── ch17-3-1-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SpringCloudGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-3-2-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ └── SCGatewayApplication.java │ │ └── resources │ │ └── application.yml ├── ch17-3-3-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SCGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-3-4-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SCGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-3-5-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── SCGatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-3-6-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ └── CH1736GatewayApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-3-7-gateway │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── gateway │ │ │ │ ├── CH1737GatewayApplication.java │ │ │ │ └── FallbackController.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch17-3-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ ├── ServiceProviderApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch18-1 ├── ch18-1-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── HelloConsumerApplication.java │ │ │ ├── controller │ │ │ └── HelloController.java │ │ │ └── feign │ │ │ └── HelloFeignService.java │ │ └── resources │ │ └── application.yml ├── ch18-1-eureka │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch18-1-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── GatewayServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch18-1-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── HelloProviderApplication.java │ │ │ └── controller │ │ │ └── HelloController.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch18-2 ├── ch18-2-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── GatewayServerApplication.java │ │ │ └── filter │ │ │ ├── AuthSignatureFilter.java │ │ │ └── CustomGatewayFilter.java │ │ └── resources │ │ └── application.yml ├── ch18-2-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── HelloProviderApplication.java │ │ │ └── controller │ │ │ └── HelloController.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── reademe.txt ├── ch18-3 ├── ch18-3-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ └── GatewayApplication.java │ │ └── resources │ │ └── application.yml ├── ch18-3-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── service │ │ │ ├── ServiceApplication.java │ │ │ └── ServiceController.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch18-4 ├── ch18-4-eureka │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch18-4-gateway-https │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ ├── GatewayApplication.java │ │ │ └── filter │ │ │ ├── HttpSchemeFilter.java │ │ │ └── HttpsToHttpFilter.java │ │ └── resources │ │ ├── application.yml │ │ └── selfsigned.jks ├── ch18-4-service-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ ├── ProviderApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── application.yml ├── ch18-4-service-b │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ ├── ProviderApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── reademe.md ├── ch18-5 ├── ch18-5-eureka │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── application.yml ├── ch18-5-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── GatewayApplication.java │ │ │ ├── config │ │ │ └── GatewaySwaggerProvider.java │ │ │ ├── filter │ │ │ └── GwSwaggerHeaderFilter.java │ │ │ └── handler │ │ │ └── SwaggerHandler.java │ │ └── resources │ │ └── application.yml ├── ch18-5-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ServiceProviderApplication.java │ │ │ ├── config │ │ │ └── SwaggerConfig.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch18-6 ├── ch18-6-1-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── GatewayApplication.java │ │ │ └── filter │ │ │ └── GatewayRateLimitFilterByIp.java │ │ └── resources │ │ └── application.yml ├── ch18-6-2-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── GatewayApplication.java │ │ │ └── RemoteAddrKeyResolver.java │ │ └── resources │ │ └── application.yml ├── ch18-6-3-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── GatewayApplication.java │ │ │ └── filter │ │ │ └── GatewayRateLimitFilterByCpu.java │ │ └── resources │ │ └── application.yml ├── ch18-6-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ProviderApplication.java │ │ │ └── controller │ │ │ └── HelloController.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── ch18-7 ├── ch18-7-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── gateway │ │ │ ├── GatewayApplication.java │ │ │ ├── controller │ │ │ └── RouteController.java │ │ │ ├── model │ │ │ ├── GatewayFilterDefinition.java │ │ │ ├── GatewayPredicateDefinition.java │ │ │ └── GatewayRouteDefinition.java │ │ │ ├── repository │ │ │ └── UnifiedRouteRepositoryImpl.java │ │ │ └── route │ │ │ └── DynamicRouteServiceImpl.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── readme.md ├── ch19-1 ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ ├── ChapterGrpcApplication.java │ │ │ └── PersonUseCase.java │ ├── proto │ │ └── person.proto │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── cn │ └── springcloud │ └── ChapterGrpcApplicationTests.java ├── ch19-2 ├── grpc-lib-1 │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── proto │ │ └── HiService.proto │ │ └── resources │ │ └── application.properties ├── grpc-simple-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── grpcsimpleclient │ │ │ └── MyGrpcClient.java │ │ └── resources │ │ └── application.properties ├── grpc-simple-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── grpcsimpleserver │ │ │ ├── MyGrpcServer.java │ │ │ └── servcie │ │ │ └── HelloService.java │ │ └── resources │ │ └── application.properties └── pom.xml ├── ch2-1 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch2-1-eureka-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch21EurekaClientApplication.java │ │ └── resources │ │ │ ├── application-demo.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch21EurekaClientApplicationTests.java ├── ch2-1-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch21EurekaServerApplication.java │ │ └── resources │ │ │ ├── application-standalone.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch21EurekaServerApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch20 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── cloud-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── cloudeurekaserver │ │ │ └── CloudEurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── cloud-grpc-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── cloudgrpcclient │ │ │ ├── CloudGrpcClientApplication.java │ │ │ ├── GlobalClientInterceptorConfiguration.java │ │ │ ├── GrpcClientController.java │ │ │ ├── GrpcClientService.java │ │ │ └── LogGrpcInterceptor.java │ │ └── resources │ │ └── application.yml ├── cloud-grpc-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── cloudgrpcserver │ │ │ ├── CloudGrpcServerApplication.java │ │ │ ├── GlobalInterceptorConfiguration.java │ │ │ ├── GrpcServerService.java │ │ │ └── LogGrpcInterceptor.java │ │ └── resources │ │ └── application.yml ├── grpc-lib │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ └── proto │ │ └── helloworld.proto ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch21-1 ├── ch21-1-discovery-console │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── ConsoleApplication.java │ │ └── resources │ │ └── application.properties ├── ch21-1-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── application.properties │ │ └── logback.xml ├── ch21-1-original-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── DiscoveryApplicationA1.java │ │ │ ├── DiscoveryApplicationA2.java │ │ │ ├── DiscoveryApplicationB1.java │ │ │ ├── DiscoveryApplicationB2.java │ │ │ ├── DiscoveryApplicationC1.java │ │ │ ├── DiscoveryApplicationC2.java │ │ │ ├── DiscoveryApplicationC3.java │ │ │ ├── extension │ │ │ ├── MyDiscoveryEnabledAdapter.java │ │ │ ├── MyDiscoveryListener.java │ │ │ ├── MyLoadBalanceListener.java │ │ │ ├── MyRegisterListener.java │ │ │ └── MySubscriber.java │ │ │ └── feign │ │ │ ├── AFeign.java │ │ │ ├── AFeignImpl.java │ │ │ ├── AbstractFeignImpl.java │ │ │ ├── BFeign.java │ │ │ ├── BFeignImpl.java │ │ │ ├── CFeign.java │ │ │ ├── CFeignImpl.java │ │ │ └── FeignConfiguration.java │ │ └── resources │ │ ├── application-a1.properties │ │ ├── application-a2.properties │ │ ├── application-b1.properties │ │ ├── application-b2.properties │ │ ├── application-c1.properties │ │ ├── application-c2.properties │ │ ├── application-c3.properties │ │ ├── bootstrap.properties │ │ ├── logback.xml │ │ ├── rule.json │ │ └── rule.xml ├── ch21-1-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── DiscoveryApplicationZuul.java │ │ │ └── extension │ │ │ └── MyDiscoveryEnabledAdapter.java │ │ └── resources │ │ ├── application-zuul.properties │ │ ├── bootstrap.properties │ │ ├── logback.xml │ │ ├── rule.json │ │ └── rule.xml └── pom.xml ├── ch22-1 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch22-1-2-dockerfile │ ├── alpine-glibc │ │ ├── Dockerfile │ │ └── README.MD │ ├── java10 │ │ ├── Dockerfile │ │ └── README.MD │ ├── java11 │ │ ├── Dockerfile │ │ └── README.MD │ ├── java8 │ │ ├── Dockerfile │ │ └── README.MD │ └── java9 │ │ ├── Dockerfile │ │ └── README.MD ├── ch22-1-3-jdk8-docker │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2213Jdk8DockerApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2213Jdk8DockerApplicationTests.java ├── ch22-1-4-jdk10-docker │ ├── .gitignore │ ├── .java-version │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch2214Jdk10DockerApplication.java │ │ │ │ └── controller │ │ │ │ └── ArgsController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2214Jdk10DockerApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch22-2 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch22-2-1-config-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2221ConfigServerApplication.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── db │ │ │ ├── data.sql │ │ │ └── schema.sql │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2221ConfigServerApplicationTests.java ├── ch22-2-2-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2222EurekaServerApplication.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2222EurekaServerApplicationTests.java ├── ch22-2-3-gateway │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2223GatewayApplication.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2223GatewayApplicationTests.java ├── ch22-2-4-turbine │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2223TurbineApplication.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2223TurbineApplicationTests.java ├── ch22-2-5-spring-admin │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2225SpringAdminApplication.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2225SpringAdminApplicationTests.java ├── ch22-2-6-biz-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2226BizServiceApplication.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2226BizServiceApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch22-3 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch22-3-1 │ ├── k8s │ │ ├── biz-service-rc.yml │ │ ├── config-server-rc.yml │ │ ├── config-server-svc.yml │ │ ├── eureka-server-1-rc.yml │ │ ├── eureka-server-1-svc.yml │ │ ├── eureka-server-2-rc.yml │ │ ├── eureka-server-2-svc.yml │ │ ├── gateway-rc.yml │ │ ├── gateway-svc.yml │ │ ├── spring-admin-rc.yml │ │ ├── spring-admin-svc.yml │ │ ├── turbine-rc.yml │ │ └── turbine-svc.yml │ └── minikube │ │ └── README.MD ├── ch22-3-2-example-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── README.MD │ ├── example-service-dm.yml │ ├── example-service-hpa.yml │ ├── example-service-rc.yml │ ├── example-service-svc.yml │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch2232ExampleServiceApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2232ExampleServiceApplicationTests.java ├── ch22-3-3-example-service │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── Dockerfile │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch2233ExampleServiceApplication.java │ │ │ │ └── controller │ │ │ │ └── VersionController.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch2233ExampleServiceApplicationTests.java ├── metrics-server-0.2.1 │ ├── README.MD │ ├── auth-delegator.yaml │ ├── auth-reader.yaml │ ├── metrics-apiservice.yaml │ ├── metrics-server-deployment.yaml │ ├── metrics-server-service.yaml │ └── resource-reader.yaml ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch23-1 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── demo-consumer │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── ConsumerMain.java │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── AppTest.java ├── demo-provider │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── service │ │ ├── HelloServiceImpl.java │ │ └── ProviderMain.java ├── dubbo-provider-api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── HelloService.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch23-2 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── demo-dubbo-consumer │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── DemoDubboConsumerApplication.java │ │ │ │ └── service │ │ │ │ └── DemoConsumer.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── DemoDubboConsumerApplicationTests.java ├── demo-dubbo-provider-api │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── service │ │ └── HelloService.java ├── demo-dubbo-provider │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── DemoDubboProviderApplication.java │ │ │ └── service │ │ │ └── HelloServiceImpl.java │ │ └── resources │ │ └── application.yml ├── eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── EurekaServerApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch24 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch24-jta-atomikos │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch24JtaAtomikosApplication.java │ │ │ │ ├── config │ │ │ │ ├── AtomikosJtaPlatform.java │ │ │ │ ├── LogDatasourceConfig.java │ │ │ │ └── OrderDatasourceConfig.java │ │ │ │ ├── dao │ │ │ │ ├── log │ │ │ │ │ └── EventLogDao.java │ │ │ │ └── order │ │ │ │ │ └── UserOrderDao.java │ │ │ │ ├── domain │ │ │ │ ├── log │ │ │ │ │ └── EventLog.java │ │ │ │ └── order │ │ │ │ │ └── UserOrder.java │ │ │ │ └── service │ │ │ │ └── OrderService.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch24JtaAtomikosApplicationTests.java ├── ch24-saga-servicecomb │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── alpha-server │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── README.MD │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ ├── schema-postgresql.sql │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ └── SagaAlphaServerApplication.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── db │ │ │ │ ├── data.sql │ │ │ │ └── schema.sql │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── SagaAlphaServerApplicationTests.java │ ├── mvnw │ ├── mvnw.cmd │ ├── omega-inventory-service │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ ├── OmegaInventoryServiceApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── InventoryController.java │ │ │ │ │ ├── dao │ │ │ │ │ └── InventoryDao.java │ │ │ │ │ ├── domain │ │ │ │ │ └── Inventory.java │ │ │ │ │ ├── dto │ │ │ │ │ └── OrderRequest.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── OmegaInventoryServiceApplicationTests.java │ ├── omega-order-service │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ ├── OmegaOrderServiceApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── dao │ │ │ │ │ └── OrderDao.java │ │ │ │ │ ├── domain │ │ │ │ │ ├── OrderState.java │ │ │ │ │ └── UserOrder.java │ │ │ │ │ └── service │ │ │ │ │ └── OrderService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── OmegaOrderServiceApplicationTests.java │ ├── pom.xml │ └── saga-servicecomb-example │ │ ├── .gitignore │ │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── SagaServicecombExampleApplication.java │ │ │ │ ├── config │ │ │ │ └── RestConfig.java │ │ │ │ ├── controller │ │ │ │ └── SagaOrderController.java │ │ │ │ └── dto │ │ │ │ └── OrderRequest.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── SagaServicecombExampleApplicationTests.java ├── ch24-tcc-rest │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── inventory-service │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ ├── InventoryServiceApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── InventoryController.java │ │ │ │ │ ├── dao │ │ │ │ │ ├── FrozeRequestDao.java │ │ │ │ │ └── InventoryDao.java │ │ │ │ │ ├── domain │ │ │ │ │ ├── FrozeRequest.java │ │ │ │ │ └── Inventory.java │ │ │ │ │ └── service │ │ │ │ │ └── FrozeService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── InventoryServiceApplicationTests.java │ ├── mvnw │ ├── mvnw.cmd │ ├── order-service │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ ├── OrderServiceApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── dao │ │ │ │ │ └── OrderDao.java │ │ │ │ │ └── domain │ │ │ │ │ ├── OrderState.java │ │ │ │ │ └── UserOrder.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── OrderServiceApplicationTests.java │ ├── pom.xml │ ├── tcc-coordinator-atomikos │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ ├── TccCoordinatorAtomikosApplication.java │ │ │ │ │ ├── config │ │ │ │ │ └── AtomikosTccConfig.java │ │ │ │ │ └── controller │ │ │ │ │ └── TccCoordinatorController.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── logback.xml │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── TccCoordinatorAtomikosApplicationTests.java │ ├── tcc-coordinator-example │ │ ├── .gitignore │ │ ├── .mvn │ │ │ └── wrapper │ │ │ │ ├── maven-wrapper.jar │ │ │ │ └── maven-wrapper.properties │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn │ │ │ │ │ └── springcloud │ │ │ │ │ └── book │ │ │ │ │ ├── TccCoordinatorExampleApplication.java │ │ │ │ │ ├── config │ │ │ │ │ └── RestConfig.java │ │ │ │ │ ├── dto │ │ │ │ │ ├── FrozeRequest.java │ │ │ │ │ └── OrderRequest.java │ │ │ │ │ └── service │ │ │ │ │ ├── TccCoordinatorClient.java │ │ │ │ │ └── TccOrderService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── TccCoordinatorExampleApplicationTests.java │ └── tcc-rest-participant-api │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── controller │ │ │ └── TccParticipantController.java │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── AppTest.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch25 ├── LICENSE ├── README.md ├── crm-sales-app │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── crm │ │ └── sales │ │ ├── assembler │ │ └── CustomerAssembler.java │ │ ├── command │ │ ├── CustomerAddCmdExe.java │ │ ├── CustomerCheckConflictCmdExe.java │ │ ├── extension │ │ │ ├── CustomerSearchConditionCGSExt.java │ │ │ ├── CustomerSearchConditionExt.java │ │ │ └── CustomerSearchConditionTPExt.java │ │ ├── extensionpoint │ │ │ └── CustomerCheckConflictSearchConditionExtPt.java │ │ └── query │ │ │ └── CustomerFindByCriteriaQueryExe.java │ │ ├── event │ │ └── handler │ │ │ └── CustomerChangeEventHandler.java │ │ ├── interceptor │ │ ├── HaloContextPostInterceptor.java │ │ ├── HaloContextPreInterceptor.java │ │ ├── LoggerPostInterceptor.java │ │ ├── LoggerPreInterceptor.java │ │ └── ValidationInterceptor.java │ │ ├── service │ │ └── CustomerServiceImpl.java │ │ └── validator │ │ ├── CustomerAddValidator.java │ │ ├── extension │ │ ├── CustomerAddCGSValidator.java │ │ └── CustomerAddDDValidator.java │ │ └── extensionpoint │ │ └── CustomerAddValidatorExtPt.java ├── crm-sales-client │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── crm │ │ └── sales │ │ ├── api │ │ └── CustomerServiceI.java │ │ └── dto │ │ ├── CustomerAddCmd.java │ │ ├── CustomerCheckConflictCmd.java │ │ ├── CustomerFindByCriteriaQry.java │ │ ├── CustomerFindByNameQry.java │ │ ├── CustomerUpdateCmd.java │ │ └── clientobject │ │ ├── CustomerCO.java │ │ ├── CustomerType.java │ │ ├── LeadCO.java │ │ ├── OppertunityCO.java │ │ └── QueryCriteria.java ├── crm-sales-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── crm │ │ │ └── sales │ │ │ ├── ConsumerApplication.java │ │ │ └── CustomerController.java │ │ └── resources │ │ └── application.yml ├── crm-sales-domain │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── crm │ │ │ └── sales │ │ │ └── domain │ │ │ └── customer │ │ │ ├── convertor │ │ │ ├── CustomerConvertor.java │ │ │ ├── extension │ │ │ │ ├── CustomerCGSConvertorExt.java │ │ │ │ └── CustomerDDConvertorExt.java │ │ │ └── extensionpoint │ │ │ │ └── CustomerConvertorExtPt.java │ │ │ ├── entity │ │ │ ├── ContactE.java │ │ │ ├── CustomerE.java │ │ │ └── OpportunityE.java │ │ │ ├── factory │ │ │ └── CustomerDomainFactory.java │ │ │ ├── repository │ │ │ ├── ContactRepository.java │ │ │ └── CustomerRepository.java │ │ │ ├── rule │ │ │ ├── extension │ │ │ │ ├── CustomerCGSRuleExt.java │ │ │ │ └── CustomerDDRuleExt.java │ │ │ └── extensionpoint │ │ │ │ └── CustomerRuleExtPt.java │ │ │ └── valueobject │ │ │ ├── AddressV.java │ │ │ ├── CompanyType.java │ │ │ └── SourceType.java │ │ └── resources │ │ └── sample.properties ├── crm-sales-infrastructure │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── crm │ │ │ └── sales │ │ │ ├── common │ │ │ ├── AppConstants.java │ │ │ └── BizCode.java │ │ │ ├── config │ │ │ └── HaloConfig.java │ │ │ ├── dao │ │ │ └── CustomerDOMapper.java │ │ │ └── tunnel │ │ │ ├── dataobject │ │ │ └── CustomerDO.java │ │ │ └── datatunnel │ │ │ ├── CustomerTunnelI.java │ │ │ └── impl │ │ │ └── CustomerDBTunnel.java │ │ └── resources │ │ ├── customer.sql │ │ └── mapper │ │ └── CustomerDOMapper.xml ├── crm-sales-start │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── crm │ │ │ └── sales │ │ │ └── CrmSalesApplication.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── tree.md ├── ch3-1 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.MD ├── ch3-1-config-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.MD │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch31ConfigServerApplication.java │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── config │ │ │ ├── eureka-client.yml │ │ │ ├── eureka-server-peer1.yml │ │ │ ├── eureka-server-peer2.yml │ │ │ └── eureka-server-peer3.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch31ConfigServerApplicationTests.java ├── ch3-1-eureka-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch31EurekaClientApplication.java │ │ │ │ └── controller │ │ │ │ └── QueryController.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch31EurekaClientApplicationTests.java ├── ch3-1-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch31EurekaServerApplication.java │ │ │ │ └── controller │ │ │ │ └── QueryController.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch31EurekaServerApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch3-2 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch3-2-eureka-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch32EurekaClientApplication.java │ │ └── resources │ │ │ ├── application-zone1.yml │ │ │ ├── application-zone2.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch32EurekaClientApplicationTests.java ├── ch3-2-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch322EurekaServerApplication.java │ │ └── resources │ │ │ ├── application-zone1a.yml │ │ │ ├── application-zone1b.yml │ │ │ ├── application-zone2a.yml │ │ │ ├── application-zone2b.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch322EurekaServerApplicationTests.java ├── ch3-2-zuul-gateway │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch322ZuulGatewayApplication.java │ │ └── resources │ │ │ ├── application-zone1.yml │ │ │ ├── application-zone2.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch322ZuulGatewayApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch3-3 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch3-3-eureka-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch33EurekaClientApplication.java │ │ └── resources │ │ │ ├── application-zone1.yml │ │ │ ├── application-zone2.yml │ │ │ ├── application-zone3.yml │ │ │ ├── application-zone4.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch33EurekaClientApplicationTests.java ├── ch3-3-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch33EurkeaServerApplication.java │ │ │ │ └── config │ │ │ │ └── RegionConfig.java │ │ └── resources │ │ │ ├── application-zone1.yml │ │ │ ├── application-zone2.yml │ │ │ ├── application-zone3-region-west.yml │ │ │ └── application-zone4-region-west.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch33EurkeaServerApplicationTests.java ├── ch3-3-zuul-gateway │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch33ZuulGatewayApplication.java │ │ └── resources │ │ │ ├── application-zone1.yml │ │ │ ├── application-zone3-region-west.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch33ZuulGatewayApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch3-4 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch3-4-eureka-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch34EurekaClientApplication.java │ │ └── resources │ │ │ ├── application-security.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch34EurekaClientApplicationTests.java ├── ch3-4-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch34EurkeaServerApplication.java │ │ │ │ └── config │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application-security.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch34EurkeaServerApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch3-5 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── ch3-5-eureka-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ ├── Ch35EurekaClientApplication.java │ │ │ │ └── config │ │ │ │ └── EurekaHttpsClientConfig.java │ │ └── resources │ │ │ ├── application-https.yml │ │ │ ├── application.yml │ │ │ ├── client.crt │ │ │ ├── client.p12 │ │ │ └── server.crt │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch35EurekaClientApplicationTests.java ├── ch3-5-eureka-server │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── Ch35EurekaServerApplication.java │ │ └── resources │ │ │ ├── application-https.yml │ │ │ ├── application.yml │ │ │ ├── client.crt │ │ │ ├── server.crt │ │ │ └── server.p12 │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── Ch35EurekaServerApplicationTests.java ├── mvnw ├── mvnw.cmd └── pom.xml ├── ch4-1 ├── ch4-1-gzip │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── SpringCloudFeignApplication.java │ │ │ ├── config │ │ │ └── HelloFeignServiceConfig.java │ │ │ ├── controller │ │ │ └── HelloFeignController.java │ │ │ └── service │ │ │ └── HelloFeignService.java │ │ └── resources │ │ └── application.yml ├── ch4-1-hello │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── SpringCloudFeignApplication.java │ │ │ ├── config │ │ │ └── HelloFeignServiceConfig.java │ │ │ ├── controller │ │ │ └── HelloFeignController.java │ │ │ └── service │ │ │ └── HelloFeignService.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── readme.md ├── ch4-2 ├── ch4-2-consumer │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── feign │ │ │ │ ├── ConsumerApplication.java │ │ │ │ ├── config │ │ │ │ ├── CoreAutoConfiguration.java │ │ │ │ └── FeignRequestInterceptor.java │ │ │ │ ├── controller │ │ │ │ └── ConsumerController.java │ │ │ │ ├── model │ │ │ │ └── OrderModel.java │ │ │ │ └── service │ │ │ │ └── UserFeignService.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ ├── feign │ │ └── ConsumerApplicationTests.java │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── ch4-2-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch4-2-provider │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── feign │ │ │ │ ├── ProviderApplication.java │ │ │ │ ├── controller │ │ │ │ └── OrderProviderController.java │ │ │ │ └── model │ │ │ │ └── OrderModel.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ ├── feign │ │ └── ConsumerApplicationTests.java │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── pom.xml └── readme.md ├── ch4-3 ├── ch4-3-httpclient │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── SpringCloudFeignApplication.java │ │ │ ├── controller │ │ │ └── HelloFeignController.java │ │ │ └── service │ │ │ └── HelloFeignService.java │ │ └── resources │ │ └── application.yml ├── ch4-3-okhttp │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── cn │ │ │ │ └── springcloud │ │ │ │ └── book │ │ │ │ └── feign │ │ │ │ ├── SpringCloudFeignApplication.java │ │ │ │ ├── config │ │ │ │ └── FeignOkHttpConfig.java │ │ │ │ ├── controller │ │ │ │ └── HelloFeignController.java │ │ │ │ └── service │ │ │ │ └── HelloFeignService.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ ├── feign │ │ └── ConsumerApplicationTests.java │ │ └── gateway │ │ └── ConsumerApplicationTests.java ├── pom.xml └── readme.md ├── ch4-4 ├── ch4-4-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch4-4-feign-file-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── SCFeignFileServerApplication.java │ │ │ └── controller │ │ │ └── FeignUploadController.java │ │ └── resources │ │ └── application.yml ├── ch4-4-feign-upload-client │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── SCFeignFileUploadApplication.java │ │ │ ├── config │ │ │ ├── ApplicationExceptionAdapter.java │ │ │ ├── FeignMultipartSupportConfig.java │ │ │ └── Swagger2Config.java │ │ │ ├── controller │ │ │ └── FeignUploadController.java │ │ │ └── service │ │ │ └── FileUploadFeignService.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── readme.md ├── ch4-5 ├── ch4-5-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── ConsumerApplication.java │ │ │ ├── Interceptor │ │ │ ├── FeignRequestInterceptor.java │ │ │ └── FeignTokenInterceptor.java │ │ │ ├── config │ │ │ ├── ApplicationExceptionAdapter.java │ │ │ └── Swagger2Config.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ ├── model │ │ │ └── User.java │ │ │ └── service │ │ │ └── UserFeignService.java │ │ └── resources │ │ └── application.yml ├── ch4-5-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch4-5-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── ProviderApplication.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ └── model │ │ │ └── User.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── readme.md ├── ch4-6 ├── ch4-6-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── ConsumerApplication.java │ │ │ ├── config │ │ │ ├── ApplicationExceptionAdapter.java │ │ │ └── Swagger2Config.java │ │ │ └── controller │ │ │ └── UserController.java │ │ └── resources │ │ └── application.yml ├── ch4-6-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch4-6-provider-client │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── cn │ │ └── springcloud │ │ └── book │ │ └── feign │ │ ├── model │ │ └── User.java │ │ └── service │ │ └── UserService.java ├── ch4-6-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── feign │ │ │ ├── ProviderApplication.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ └── model │ │ │ └── User.java │ │ └── resources │ │ └── application.yml ├── pom.xml └── readme.md ├── ch5-1 ├── ch5-1-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch5-1-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch5-1-ribbon-loadbalancer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── RibbonLoadbalancerApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch5-2 ├── ch5-2-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch5-2-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch5-2-ribbon-loadbalancer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── RibbonLoadbalancerApplication.java │ │ │ ├── config │ │ │ ├── AvoidScan.java │ │ │ └── TestConfiguration.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch6-1 ├── ch6-1-client-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientApplication.java │ │ │ ├── controller │ │ │ └── TestController.java │ │ │ └── service │ │ │ ├── IUserService.java │ │ │ └── impl │ │ │ └── UserService.java │ │ └── resources │ │ └── bootstrap.yml ├── ch6-1-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch6-2 ├── ch6-2-consumer-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ConsumerApplication.java │ │ │ ├── controller │ │ │ └── TestController.java │ │ │ └── service │ │ │ ├── IUserService.java │ │ │ └── impl │ │ │ └── UserServiceFallback.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-2-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch6-2-provider-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ProviderApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── bootstrap.yml └── pom.xml ├── ch6-3 ├── ch6-3-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch6-3-hello-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── hello │ │ │ ├── HelloServiceApplication.java │ │ │ ├── controller │ │ │ └── HelloController.java │ │ │ └── service │ │ │ ├── IHelloService.java │ │ │ ├── dataservice │ │ │ └── ProviderService.java │ │ │ └── impl │ │ │ └── HelloService.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-3-hystrix-dashboard │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── HystrixDashboardApplication.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-3-hystrix-exception-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── ex │ │ │ ├── HystrixExceptionApplication.java │ │ │ ├── controller │ │ │ └── ExceptionController.java │ │ │ └── service │ │ │ └── dataservice │ │ │ ├── FeignErrorDecoder.java │ │ │ ├── PSFallbackBadRequestExpcetion.java │ │ │ ├── PSFallbackOtherExpcetion.java │ │ │ └── ProviderServiceCommand.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-3-provider-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── provider │ │ │ ├── ProviderServiceApplication.java │ │ │ └── controller │ │ │ ├── ConsumerService.java │ │ │ └── ProviderController.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-3-turbine │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── TurbineApplication.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml └── pom.xml ├── ch6-4 ├── ch6-4-collapsing │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── hystrix │ │ │ ├── HystrixCollapsingApplication.java │ │ │ ├── config │ │ │ │ ├── CollapsingConfiguration.java │ │ │ │ └── HystrixContextInterceptor.java │ │ │ ├── controller │ │ │ │ └── CollapsingController.java │ │ │ └── service │ │ │ │ ├── CollapsingService.java │ │ │ │ └── ICollapsingService.java │ │ │ └── provider │ │ │ └── model │ │ │ └── Animal.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-4-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── ch6-4-hystrix-cache │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── hystrix │ │ │ ├── HystrixCacheApplication.java │ │ │ ├── config │ │ │ ├── CacheConfiguration.java │ │ │ └── CacheContextInterceptor.java │ │ │ ├── controller │ │ │ └── CacheController.java │ │ │ └── service │ │ │ ├── HelloCommand.java │ │ │ ├── HelloService.java │ │ │ └── IHelloService.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-4-hystrix-thread-context │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── hystrix │ │ │ ├── HystrixThreadContextApplication.java │ │ │ ├── config │ │ │ ├── HystrixThreadCallable.java │ │ │ ├── HystrixThreadContextConfiguration.java │ │ │ ├── HystrixThreadLocal.java │ │ │ └── SpringCloudHystrixConcurrencyStrategy.java │ │ │ ├── controller │ │ │ └── ThreadContextController.java │ │ │ └── service │ │ │ ├── IThreadContextService.java │ │ │ └── ThreadContextService.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml ├── ch6-4-provider-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── provider │ │ │ ├── ProviderServiceApplication.java │ │ │ ├── controller │ │ │ └── ProviderController.java │ │ │ └── model │ │ │ └── User.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml └── pom.xml ├── ch7-1 ├── ch7-1-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── bootstrap.yml ├── ch7-1-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch7-1-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── eureka │ │ │ └── ZuulServerApplication.java │ │ └── resources │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ └── logback.xml ├── pom.xml └── reademe.txt ├── ch7-2 ├── ch7-2-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── bootstrap.yml ├── ch7-2-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch7-2-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── ZuulServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch7-3 ├── ch7-3-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch7-3-client-b │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientBApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch7-3-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch7-3-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ZuulServerApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── application-example1.yml │ │ ├── application-example2.yml │ │ ├── application-example3.yml │ │ ├── application-example4.yml │ │ ├── application-example5.yml │ │ ├── application-example6.yml │ │ ├── application-example7.yml │ │ ├── application-example8.yml │ │ ├── application-example9.yml │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch8-1 ├── ch8-1-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ └── bootstrap.yml ├── ch8-1-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-1-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ZuulServerApplication.java │ │ │ ├── config │ │ │ └── SecurityConfiguration.java │ │ │ ├── filter │ │ │ ├── ErrorFilter.java │ │ │ ├── FirstPreFilter.java │ │ │ ├── PostFilter.java │ │ │ ├── SecondPreFilter.java │ │ │ └── ThirdPreFilter.java │ │ │ └── groovy │ │ │ └── GroovyFilter.groovy │ │ └── resources │ │ ├── application.properties │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch8-2 ├── ch8-2-auth-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── AuthServerApplication.java │ │ │ └── OAuthConfiguration.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-2-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-2-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-2-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── ZuulServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch8-3 ├── ch8-3-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-3-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-3-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── ZuulServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch8-4 ├── ch8-4-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-4-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-4-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── DynamicZuulRouteLocator.java │ │ │ ├── ZuulServerApplication.java │ │ │ ├── config │ │ │ └── DynamicZuulConfig.java │ │ │ ├── dao │ │ │ └── PropertiesDao.java │ │ │ └── entity │ │ │ └── ZuulRouteEntity.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── mysql.sql └── pom.xml ├── ch8-5 ├── ch8-5-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-5-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-5-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ZuulServerApplication.java │ │ │ └── filter │ │ │ └── GrayFilter.java │ │ └── resources │ │ ├── application.properties │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch8-6 ├── ch8-6-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-6-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ZuulServerApplication.java │ │ │ └── controller │ │ │ └── ZuulUploadController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── ch8-7 ├── ch8-7-client-a │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ClientAApplication.java │ │ │ └── controller │ │ │ └── TestController.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-7-eureka-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml ├── ch8-7-zuul-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── cn │ │ │ └── springcloud │ │ │ └── book │ │ │ ├── ZuulServerApplication.java │ │ │ ├── config │ │ │ ├── ApplicationExceptionAdapter.java │ │ │ └── SwaggerConfig.java │ │ │ └── filter │ │ │ ├── HeaderDeliverFilter.java │ │ │ └── ModifyRequestEntityFilter.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback.xml └── pom.xml ├── doc ├── corrigendum │ ├── 11-12-16误刊.docx │ └── 第19+20+23章勘误.doc └── image │ ├── dy.jpg │ ├── ewm.png │ ├── fm.png │ ├── sqgzh.png │ ├── sz_maven.jpg │ ├── szm1.jpg │ └── wx.png ├── pom.xml └── tree.txt /ch10-1/ch10-1-common/src/main/java/cn/springcloud/book/common/context/HystrixThreadLocal.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.common.context; 2 | 3 | public class HystrixThreadLocal { 4 | public static ThreadLocal threadLocal = new ThreadLocal<>(); 5 | } -------------------------------------------------------------------------------- /ch10-1/ch10-1-common/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | cn.springcloud.book.common.config.CommonConfiguration -------------------------------------------------------------------------------- /ch10-1/ch10-1-config-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 3 | spring: 4 | cloud: 5 | config: 6 | server: 7 | git: 8 | uri: https://gitee.com/zhudeming/spring-cloud-config.git 9 | #username: 10 | #password: 11 | search-paths: SC-BOOK-CONFIG 12 | application: 13 | name: sc-configserver 14 | -------------------------------------------------------------------------------- /ch10-1/ch10-1-data-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-data-service 4 | eureka: 5 | client: 6 | serviceUrl: 7 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 8 | instance: 9 | prefer-ip-address: true 10 | management: 11 | security: 12 | enabled: false 13 | endpoints: 14 | web: 15 | exposure: 16 | include: hystrix.stream 17 | -------------------------------------------------------------------------------- /ch10-1/ch10-1-data-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8099 3 | 4 | spring: 5 | cloud: 6 | config: 7 | label: master 8 | uri: http://localhost:9090 9 | name: config-info 10 | profile: dev 11 | application: 12 | name: sc-data-service 13 | -------------------------------------------------------------------------------- /ch10-1/ch10-1-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | spring: 4 | application: 5 | name: sc-eurekaserver 6 | eureka: 7 | client: 8 | registerWithEureka: false 9 | fetchRegistry: false -------------------------------------------------------------------------------- /ch10-1/ch10-1-hystrix-dashboard/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9099 3 | spring: 4 | cloud: 5 | config: 6 | label: master 7 | uri: http://localhost:9090 8 | name: config-info 9 | profile: dev 10 | application: 11 | name: sc-hystrix-dashboard 12 | -------------------------------------------------------------------------------- /ch10-1/ch10-1-user-service/src/main/java/cn/springcloud/book/user/service/IUserService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.user.service; 2 | 3 | 4 | import java.util.List; 5 | 6 | /** 7 | */ 8 | public interface IUserService { 9 | public String getDefaultUser(); 10 | public String getContextUserId(); 11 | public List getProviderData(); 12 | } 13 | -------------------------------------------------------------------------------- /ch10-1/ch10-1-user-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9091 3 | spring: 4 | cloud: 5 | config: 6 | label: master 7 | uri: http://localhost:9090 8 | name: config-info 9 | profile: dev 10 | application: 11 | name: sc-user-service 12 | 13 | -------------------------------------------------------------------------------- /ch10-1/ch10-1-zuul-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-zuul-server 4 | server: 5 | port: 7777 6 | 7 | -------------------------------------------------------------------------------- /ch11-1/ch11-1-config-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9091 3 | 4 | spring: 5 | application: 6 | name: ch11-1-config-client -------------------------------------------------------------------------------- /ch11-1/ch11-1-config-client/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | 9 | -------------------------------------------------------------------------------- /ch11-1/ch11-1-config-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | server: 5 | git: 6 | uri: https://gitee.com/zhongzunfa/spring-cloud-config.git 7 | #username: 8 | #password: 9 | search-paths: SC-BOOK-CONFIG 10 | application: 11 | name: sc-config-git 12 | server: 13 | port: 9090 -------------------------------------------------------------------------------- /ch11-1/reademe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch11-1/reademe.txt -------------------------------------------------------------------------------- /ch11-2/ch11-2-config-client-refresh/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /ch11-2/ch11-2-config-client-refresh/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9093 3 | 4 | spring: 5 | application: 6 | name: ch11-2-config-client-refresh -------------------------------------------------------------------------------- /ch11-2/ch11-2-config-client-refresh/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | 9 | -------------------------------------------------------------------------------- /ch11-2/ch11-2-config-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | server: 5 | git: 6 | uri: https://gitee.com/zhongzunfa/spring-cloud-config.git 7 | #username: 8 | #password: 9 | search-paths: SC-BOOK-CONFIG 10 | application: 11 | name: ch11-2-config-server 12 | server: 13 | port: 9090 -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-client-bus-refresh-second/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-client-bus-refresh-second/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9085 3 | 4 | spring: 5 | application: 6 | name: ch11-3-config-client-bus-refresh-second 7 | 8 | ## 配置rabbitMQ 信息 9 | rabbitmq: 10 | host: localhost 11 | port: 5672 12 | username: guest 13 | password: guest 14 | cloud: 15 | bus: 16 | trace: 17 | enabled: true -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-client-bus-refresh-second/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | 9 | -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-client-bus-refresh/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-client-bus-refresh/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9095 3 | 4 | spring: 5 | application: 6 | name: ch11-3-config-client-bus-refresh 7 | 8 | ## 配置rabbitMQ 信息 9 | rabbitmq: 10 | host: localhost 11 | port: 5672 12 | username: guest 13 | password: guest 14 | cloud: 15 | bus: 16 | trace: 17 | enabled: true -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-client-bus-refresh/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | 9 | -------------------------------------------------------------------------------- /ch11-3/ch11-3-config-server-bus/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /ch12-1/ch12-1-config-client-placeholders/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9100 3 | 4 | spring: 5 | application: 6 | name: ch12-1-config-client-placeholders -------------------------------------------------------------------------------- /ch12-1/ch12-1-config-client-placeholders/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: spring-cloud-config 7 | profile: dev -------------------------------------------------------------------------------- /ch12-1/ch12-1-config-server-placeholders/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | server: 5 | git: 6 | uri: https://gitee.com/zhongzunfa/{application} 7 | #username: 8 | #password: 9 | search-paths: SC-BOOK-CONFIG 10 | application: 11 | name: ch12-1-config-server-placeholders 12 | server: 13 | port: 9090 14 | logging: 15 | level: 16 | root: debug 17 | -------------------------------------------------------------------------------- /ch12-10/ch12-10-config-client-apollo/src/main/resources/META-INF/app.properties: -------------------------------------------------------------------------------- 1 | app.id=123456789 2 | -------------------------------------------------------------------------------- /ch12-10/ch12-10-config-client-apollo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9018 3 | 4 | spring: 5 | application: 6 | name: ch12-10-config-client-apollo 7 | 8 | eureka: 9 | client: 10 | service-url: 11 | defaultZone: http://localhost:8761/eureka/ 12 | 13 | apollo: 14 | bootstrap: 15 | enabled: true 16 | namespaces: application 17 | meta: http://localhost:8080 18 | -------------------------------------------------------------------------------- /ch12-10/ch12-10-config-client-apollo2/src/main/resources/META-INF/app.properties: -------------------------------------------------------------------------------- 1 | app.id=123456789 2 | -------------------------------------------------------------------------------- /ch12-10/ch12-10-config-client-apollo2/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9020 3 | 4 | spring: 5 | application: 6 | name: ch12-10-config-client-apollo2 7 | 8 | eureka: 9 | client: 10 | service-url: 11 | defaultZone: http://localhost:8761/eureka/ 12 | 13 | apollo: 14 | bootstrap: 15 | enabled: true 16 | namespaces: application 17 | meta: http://localhost:8080 -------------------------------------------------------------------------------- /ch12-10/ch12-10-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | eureka: 5 | instance: 6 | hostname: localhost 7 | client: 8 | registerWithEureka: false 9 | fetchRegistry: false 10 | serviceUrl: 11 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 12 | server: 13 | waitTimeInMsWhenSyncEmpty: 0 14 | enableSelfPreservation: false -------------------------------------------------------------------------------- /ch12-10/ch12-10-gateway-zuul-apollo/src/main/resources/META-INF/app.properties: -------------------------------------------------------------------------------- 1 | app.id=123456789 2 | -------------------------------------------------------------------------------- /ch12-2/ch12-2-config-client-multiple-repositories/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9101 3 | 4 | spring: 5 | application: 6 | name: ch12-2-config-client-multiple-repositories -------------------------------------------------------------------------------- /ch12-2/ch12-2-config-client-multiple-repositories/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: spring-cloud-config 7 | profile: config-info -------------------------------------------------------------------------------- /ch12-3/ch12-3-config-client-db/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ch12-3-config-client-db 4 | 5 | server: 6 | port: 9096 7 | 8 | logging: 9 | level: 10 | root: INFO -------------------------------------------------------------------------------- /ch12-3/ch12-3-config-client-db/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | 9 | -------------------------------------------------------------------------------- /ch12-3/ch12-3-config-server-db/script/创建配置表.sql: -------------------------------------------------------------------------------- 1 | 2 | -- 创建类型 3 | CREATE TABLE `PROPERTIES` ( 4 | `ID` int(11) NOT NULL AUTO_INCREMENT, 5 | `KEY` TEXT DEFAULT NULL, 6 | `VALUE` TEXT DEFAULT NULL, 7 | `APPLICATION` TEXT DEFAULT NULL, 8 | `PROFILE` TEXT DEFAULT NULL, 9 | `LABLE` TEXT DEFAULT NULL, 10 | PRIMARY KEY (`ID`) 11 | ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ch12-4/ch12-4-config-client-mongodb/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ch12-4-config-client-mongodb 4 | 5 | server: 6 | port: 9097 -------------------------------------------------------------------------------- /ch12-4/ch12-4-config-client-mongodb/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config 7 | profile: prod 8 | 9 | -------------------------------------------------------------------------------- /ch12-4/ch12-4-config-server-mongodb/script/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "label" : "master", 3 | "profile" : "prod", 4 | "source" : { 5 | "cn" : { 6 | "springcloud" : { 7 | "book" : { 8 | "config" : "I am the mongdb configuration file from dev environment. I will edit." 9 | } 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /ch12-4/ch12-4-config-server-mongodb/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 3 | 4 | spring: 5 | application: 6 | name: ch12-4-config-server-mongodb 7 | data: 8 | mongodb: 9 | uri: mongodb://localhost/springcloud -------------------------------------------------------------------------------- /ch12-5/ch12-5-config-client-auto-refresh/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9012 3 | 4 | spring: 5 | application: 6 | name: ch12-5-config-client-auto-refresh 7 | cloud: 8 | config: 9 | refreshInterval: 60 -------------------------------------------------------------------------------- /ch12-5/ch12-5-config-client-auto-refresh/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | 9 | -------------------------------------------------------------------------------- /ch12-5/ch12-5-config-client-refresh-autoconfig/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.sc.book.config.ConfigClientRefreshAutoConfiguration -------------------------------------------------------------------------------- /ch12-5/ch12-5-config-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | server: 5 | git: 6 | uri: https://gitee.com/zhongzunfa/spring-cloud-config.git 7 | #username: 8 | #password: 9 | search-paths: SC-BOOK-CONFIG 10 | application: 11 | name: ch12-5-config-server 12 | server: 13 | port: 9090 -------------------------------------------------------------------------------- /ch12-6/ch12-6-config-client-fallback-autoconfig/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | cn.springcloud.book.config.client.fallback.ConfigServerBootstrap -------------------------------------------------------------------------------- /ch12-6/ch12-6-config-client-fallback-autoconfig/src/main/resources/configClient.properties: -------------------------------------------------------------------------------- 1 | spring.cloud.config.enabled=false -------------------------------------------------------------------------------- /ch12-6/ch12-6-config-client-fallback/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9013 3 | 4 | spring: 5 | application: 6 | name: ch12-6-config-client-fallback -------------------------------------------------------------------------------- /ch12-6/ch12-6-config-client-fallback/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | fallbackLocation: D:\\application_dev\\idea_workspace\\sc-book-local-config-test 9 | -------------------------------------------------------------------------------- /ch12-6/ch12-6-config-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | server: 5 | git: 6 | uri: https://gitee.com/zhongzunfa/spring-cloud-config.git 7 | #username: 8 | #password: 9 | search-paths: SC-BOOK-CONFIG 10 | application: 11 | name: ch12-6-config-server 12 | server: 13 | port: 9090 -------------------------------------------------------------------------------- /ch12-7/ch12-7-config-client-auth-jwt/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9014 3 | 4 | spring: 5 | application: 6 | name: ch12-7-config-client-auth-jwt -------------------------------------------------------------------------------- /ch12-7/ch12-7-config-client-auth-jwt/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | username: root 9 | password: 123 10 | enabled: false 11 | endpoint: http://localhost:9090/auth -------------------------------------------------------------------------------- /ch12-7/ch12-7-config-client-jwt/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | cn.springcloud.book.config.jwt.config.ConfigClientBootstrapConfiguration -------------------------------------------------------------------------------- /ch12-8/ch12-8-config-client-high-availability-autoconfig/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | cn.springcloud.book.config.configuration.ConfigSupportConfiguration 3 | -------------------------------------------------------------------------------- /ch12-8/ch12-8-config-client-high-availability/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9015 3 | 4 | spring: 5 | application: 6 | name: ch12-8-config-client-high-availability -------------------------------------------------------------------------------- /ch12-8/ch12-8-config-client-high-availability/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | uri: http://localhost:9090 6 | name: config-info 7 | profile: dev 8 | backup: 9 | enable: true 10 | fallbackLocation: D:\\application_dev\\idea_workspace\\sc-book-local-config-test\\fallback.properties 11 | -------------------------------------------------------------------------------- /ch12-8/ch12-8-config-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | server: 5 | git: 6 | uri: https://gitee.com/zhongzunfa/spring-cloud-config.git 7 | #username: 8 | #password: 9 | search-paths: SC-BOOK-CONFIG 10 | application: 11 | name: ch12-8-config-server 12 | server: 13 | port: 9090 -------------------------------------------------------------------------------- /ch12-9/ch12-9-config-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9016 3 | 4 | spring: 5 | application: 6 | name: ch12-9-config-client -------------------------------------------------------------------------------- /ch12-9/ch12-9-config-client/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | config: 4 | label: master 5 | name: config-info 6 | profile: dev 7 | discovery: 8 | enabled: true 9 | service-id: ch12-9-config-server-high-availability 10 | eureka: 11 | client: 12 | service-url: 13 | defaultZone: http://localhost:8761/eureka/ 14 | 15 | -------------------------------------------------------------------------------- /ch12-9/ch12-9-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | eureka: 5 | instance: 6 | hostname: localhost 7 | client: 8 | registerWithEureka: false 9 | fetchRegistry: false 10 | serviceUrl: 11 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 12 | server: 13 | waitTimeInMsWhenSyncEmpty: 0 14 | enableSelfPreservation: false -------------------------------------------------------------------------------- /ch13-1/README.md: -------------------------------------------------------------------------------- 1 | ## 本级代码清单分成两个 2 | 1. ch13-1-consul-provider 服务提供方 3 | 2. ch13-1-consul-consumer 服务消费方 4 | 3. ch13-1-consul-consumer 使用consul的配置功能 -------------------------------------------------------------------------------- /ch13-1/ch13-1-consul-config/README.md: -------------------------------------------------------------------------------- 1 | ## 使用 consul 作为配置中心 -------------------------------------------------------------------------------- /ch13-1/ch13-1-consul-config/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: consul-config 4 | cloud: 5 | consul: 6 | host: 127.0.0.1 7 | port: 8500 8 | server: 9 | port: 8083 -------------------------------------------------------------------------------- /ch13-1/ch13-1-consul-consumer/README.md: -------------------------------------------------------------------------------- 1 | ## Consul 服务调用方 2 | 这里只是一个简单的 demo, 演示客户端如何通过 consul 调用到服务端 -------------------------------------------------------------------------------- /ch13-1/ch13-1-consul-consumer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 # 因为本地启动,防止端口冲突 3 | spring: 4 | application: 5 | name: consul-consumer 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 -------------------------------------------------------------------------------- /ch13-1/ch13-1-consul-provider/README.md: -------------------------------------------------------------------------------- 1 | ## Consul 服务提供方 2 | 这里只是一个简单的 demo, 演示服务端注册到 consul 并对外提供服务 -------------------------------------------------------------------------------- /ch13-1/ch13-1-consul-provider/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 # 因为本地启动,防止端口冲突 3 | spring: 4 | application: 5 | name: consul-provider 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 -------------------------------------------------------------------------------- /ch14-1/README.md: -------------------------------------------------------------------------------- 1 | ## 本级代码清单只有一个 2 | ch14-1-consul-register 演示服务启动时自定义的一些配置 -------------------------------------------------------------------------------- /ch14-2/ch14-2-consul-consumer-discoveryclient/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 # 因为本地启动,防止端口冲突 3 | spring: 4 | application: 5 | name: consul-consumer-discoveryclient 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 -------------------------------------------------------------------------------- /ch14-2/ch14-2-consul-provider-tag-1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | application: 5 | name: consul-provider 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | discovery: 11 | tags: tag1 # 指定服务的标签, 用逗号隔开 -------------------------------------------------------------------------------- /ch14-2/ch14-2-consul-provider-tag-2/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | spring: 4 | application: 5 | name: consul-provider 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | discovery: 11 | tags: tag2 # 指定服务的标签, 用逗号隔开 12 | -------------------------------------------------------------------------------- /ch14-2/ch14-2-cosul-provider-tag-1/src/main/java/cn/springcloud/book/consul/provider/tag1/ConsulProviderTag1Application.java: -------------------------------------------------------------------------------- 1 | package PACKAGE_NAME; 2 | 3 | public class ConsulProviderTag1Application { 4 | } 5 | -------------------------------------------------------------------------------- /ch14-3/ch14-3-consul-config-customize/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 # 这里使用 8081 端口, Consul 中配置8082端口, 验证生效配置 3 | spring: 4 | profiles: 5 | active: test # 指定启动时的 profiles -------------------------------------------------------------------------------- /ch14-4/ch14-4-consul-override-consumer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: consul-override-consumer 4 | cloud: 5 | consul: 6 | host: 127.0.0.1 # consul 启动地址 7 | port: 8500 # consul 启动端口 8 | discovery: 9 | server-list-query-tags: # 注意 server-list-query-tags 是一个 map 10 | consul-provider: tag1 # 在调用consul-provider 服务时, 使用 tag1 对应的实例 -------------------------------------------------------------------------------- /ch14-4/ch14-4-consul-override-provider-tag1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | application: 5 | name: consul-provider 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | discovery: 11 | tags: tag1 # 指定服务的标签, 用逗号隔开 -------------------------------------------------------------------------------- /ch14-4/ch14-4-consul-override-provider-tag2/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | spring: 4 | application: 5 | name: consul-provider 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | discovery: 11 | tags: tag2 # 指定服务的标签, 用逗号隔开 12 | -------------------------------------------------------------------------------- /ch14-5/ch14-5-consul-override-consumer-new/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | cn.springcloud.book.consul.override.consumer.myconsultool.MyRibbonConsulAutoConfiguration -------------------------------------------------------------------------------- /ch14-5/ch14-5-consul-override-consumer-new/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | spring: 4 | application: 5 | name: consul-override-consumer-new 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | ribbon: 11 | enabled: false # 此处配置很重要,为 true 时走原有逻辑, 为 false 时走重写逻辑 -------------------------------------------------------------------------------- /ch14-5/ch14-5-consul-override-consumer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | spring: 4 | application: 5 | name: consul-override-consumer-new 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 -------------------------------------------------------------------------------- /ch14-5/ch14-5-consul-provider1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | application: 5 | name: consul-provider1 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | -------------------------------------------------------------------------------- /ch14-5/ch14-5-consul-provider2/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | spring: 4 | application: 5 | name: consul-provider2 6 | cloud: 7 | consul: 8 | host: 127.0.0.1 # consul 启动地址 9 | port: 8500 # consul 启动端口 10 | -------------------------------------------------------------------------------- /ch15-1/ch15-1-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 5566 3 | spring: 4 | application: 5 | name: client-service 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch15-1/ch15-1-core-service/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | cn.springcloud.book.common.config.CommonConfiguration -------------------------------------------------------------------------------- /ch15-1/ch15-1-eureka-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch15-1/ch15-1-gateway/src/main/java/cn/springcloud/book/gateway/filter/PermissionException.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway.filter; 2 | 3 | public class PermissionException extends RuntimeException { 4 | private static final long serialVersionUID = 1L; 5 | public PermissionException(String msg) { 6 | super(msg); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ch15-1/ch15-1-provider-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7777 3 | spring: 4 | application: 5 | name: provider-service 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch16-1/ch16-1-sleuth-consumer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | application: 5 | name: sleuth-consumer -------------------------------------------------------------------------------- /ch16-1/ch16-1-sleuth-provider/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | spring: 4 | application: 5 | name: sleuth-provider -------------------------------------------------------------------------------- /ch16-2/ch16-2-sleuth-consumer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | application: 5 | name: sleuth-consumer 6 | sleuth: 7 | baggage-keys: # 注意, Sleuth2.0.0之后, baggage的 key 必须在这里配置才能生效 8 | - SessionId -------------------------------------------------------------------------------- /ch16-2/ch16-2-sleuth-provider/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | spring: 4 | application: 5 | name: sleuth-provider 6 | sleuth: 7 | baggage-keys: # 注意, Sleuth2.0.0之后, baggage的 key 必须在这里配置才能生效 8 | - SessionId -------------------------------------------------------------------------------- /ch16-3/ch16-3-eureka-server-skywalking/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | eureka: 5 | instance: 6 | hostname: localhost 7 | client: 8 | registerWithEureka: false 9 | fetchRegistry: false 10 | serviceUrl: 11 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 12 | server: 13 | waitTimeInMsWhenSyncEmpty: 0 14 | enableSelfPreservation: false -------------------------------------------------------------------------------- /ch16-3/ch16-3-service-a/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9021 3 | 4 | spring: 5 | application: 6 | name: ch16-3-service-a 7 | 8 | eureka: 9 | client: 10 | service-url: 11 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch16-3/ch16-3-service-b/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9022 3 | 4 | spring: 5 | application: 6 | name: ch16-3-service-b 7 | 8 | eureka: 9 | client: 10 | service-url: 11 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch17-1/ch17-1-1-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-1/ch17-1-2-gateway/src/main/java/cn/springcloud/book/gateway/SCGatewayApplication.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SCGatewayApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SCGatewayApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ch17-1/ch17-1-2-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-1-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-2-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | 4 | 5 | logging: 6 | level: 7 | org.springframework.cloud.gateway: TRACE 8 | org.springframework.http.server.reactive: DEBUG 9 | org.springframework.web.reactive: DEBUG 10 | reactor.ipc.netty: DEBUG 11 | 12 | management.endpoints.web.exposure.include: '*' -------------------------------------------------------------------------------- /ch17-2/ch17-2-3-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-4-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-4-gateway/src/test/java/cn/springcloud/book/gateway/CookieRoutePredicateFactoryTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class CookieRoutePredicateFactoryTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-5-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | spring: 8 | cloud: 9 | gateway: 10 | routes: 11 | - id: header_route 12 | uri: http://localhost:8071/test/head 13 | predicates: 14 | - Header=X-Request-Id, xujin -------------------------------------------------------------------------------- /ch17-2/ch17-2-5-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-6-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-6-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-7-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-8-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-9-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | 8 | spring: 9 | cloud: 10 | gateway: 11 | routes: 12 | - id: remoteaddr_route 13 | uri: http://baidu.com 14 | predicates: 15 | - RemoteAddr=127.0.0.1 16 | -------------------------------------------------------------------------------- /ch17-2/ch17-2-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8071 3 | spring: 4 | application: 5 | name: service-provider 6 | 7 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-1-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | logging: 8 | level: 9 | org.springframework.cloud.gateway: TRACE 10 | org.springframework.http.server.reactive: DEBUG 11 | org.springframework.web.reactive: DEBUG 12 | reactor.ipc.netty: DEBUG 13 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-1-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-2-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | logging: 8 | level: 9 | org.springframework.cloud.gateway: TRACE 10 | org.springframework.http.server.reactive: DEBUG 11 | org.springframework.web.reactive: DEBUG 12 | reactor.ipc.netty: DEBUG 13 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-3-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | 8 | logging: 9 | level: 10 | org.springframework.cloud.gateway: TRACE 11 | org.springframework.http.server.reactive: DEBUG 12 | org.springframework.web.reactive: DEBUG 13 | reactor.ipc.netty: DEBUG 14 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-3-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-4-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | logging: 8 | level: 9 | org.springframework.cloud.gateway: TRACE 10 | org.springframework.http.server.reactive: DEBUG 11 | org.springframework.web.reactive: DEBUG 12 | reactor.ipc.netty: DEBUG 13 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-4-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-5-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-6-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: spring-cloud-gateway 6 | 7 | logging: 8 | level: 9 | org.springframework.cloud.gateway: TRACE 10 | org.springframework.http.server.reactive: DEBUG 11 | org.springframework.web.reactive: DEBUG 12 | reactor.ipc.netty: DEBUG 13 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-6-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-7-gateway/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch17-3/ch17-3-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8071 3 | spring: 4 | application: 5 | name: service-provider 6 | 7 | -------------------------------------------------------------------------------- /ch18-1/ch18-1-consumer/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-consumer 4 | eureka: 5 | client: 6 | service-url: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: 8000 10 | -------------------------------------------------------------------------------- /ch18-1/ch18-1-eureka/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-eureka-server 4 | server: 5 | port: 8761 6 | eureka: 7 | client: 8 | service-url: 9 | defaultZone: http://localhost:8761/eureka/ 10 | fetch-registry: false 11 | register-with-eureka: false -------------------------------------------------------------------------------- /ch18-1/ch18-1-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-producer 4 | server: 5 | port: 8001 6 | eureka: 7 | client: 8 | service-url: 9 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch18-2/ch18-2-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-gateway-server 4 | 5 | server: 6 | port: 9000 7 | 8 | logging: 9 | level: 10 | org.springframework.cloud.gateway: debug -------------------------------------------------------------------------------- /ch18-2/ch18-2-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-producer 4 | server: 5 | port: 8001 6 | -------------------------------------------------------------------------------- /ch18-2/reademe.txt: -------------------------------------------------------------------------------- 1 | http://localhost:9000/SC-CONSUMER/hello/xujin 2 | http://localhost:9000/test/prefix/hello/xujin 3 | http://localhost:9000/test/prefix/hello/testCustomFilter/xujin 4 | http://localhost:9000/test/prefix/hello/testCustomFilter/xujin?authToken=asdasdsddasadsadsadsdadsewew32rg 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ch18-3/ch18-3-provider/src/main/java/cn/springcloud/book/service/ServiceApplication.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.service; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ServiceApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(ServiceApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ch18-3/ch18-3-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 8081 2 | spring: 3 | application: 4 | name: ch18-3-provider -------------------------------------------------------------------------------- /ch18-4/ch18-4-eureka/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-eureka-server 4 | server: 5 | port: 8761 6 | eureka: 7 | client: 8 | service-url: 9 | defaultZone: http://localhost:8761/eureka/ 10 | fetch-registry: false 11 | register-with-eureka: false -------------------------------------------------------------------------------- /ch18-4/ch18-4-gateway-https/src/main/resources/selfsigned.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch18-4/ch18-4-gateway-https/src/main/resources/selfsigned.jks -------------------------------------------------------------------------------- /ch18-4/ch18-4-service-a/src/main/java/cn/springcloud/book/eureka/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.eureka.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | public class TestController { 9 | 10 | @GetMapping("/test") 11 | public String prefixpath(){ 12 | return "https to Http"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /ch18-4/ch18-4-service-a/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8071 3 | spring: 4 | application: 5 | name: service-provider 6 | 7 | eureka: 8 | client: 9 | service-url: 10 | defaultZone: http://localhost:8761/eureka/ 11 | 12 | eureka.instance.prefer-ip-address: true 13 | -------------------------------------------------------------------------------- /ch18-4/ch18-4-service-b/src/main/java/cn/springcloud/book/eureka/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.eureka.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | public class TestController { 9 | 10 | @GetMapping("/test") 11 | public String prefixpath(){ 12 | return "https to Http"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /ch18-4/ch18-4-service-b/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8072 3 | spring: 4 | application: 5 | name: service-provider 6 | 7 | eureka: 8 | client: 9 | service-url: 10 | defaultZone: http://localhost:8761/eureka/ 11 | 12 | eureka.instance.prefer-ip-address: true 13 | -------------------------------------------------------------------------------- /ch18-4/reademe.md: -------------------------------------------------------------------------------- 1 | ## Gateway Https 2 | https://localhost:8080/test-https 3 | -------------------------------------------------------------------------------- /ch18-5/ch18-5-eureka/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sc-eureka-server 4 | server: 5 | port: 8761 6 | eureka: 7 | client: 8 | service-url: 9 | defaultZone: http://localhost:8761/eureka/ 10 | fetch-registry: false 11 | register-with-eureka: false -------------------------------------------------------------------------------- /ch18-5/ch18-5-gateway/src/main/java/cn/springcloud/book/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.cloud.client.SpringCloudApplication; 5 | 6 | @SpringCloudApplication 7 | public class GatewayApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(GatewayApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /ch18-5/ch18-5-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8055 3 | 4 | spring: 5 | application: 6 | name: sc-service 7 | # 注册中心配置 8 | eureka: 9 | instance: 10 | prefer-ip-address: true 11 | client: 12 | service-url: 13 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch18-6/ch18-6-1-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 8080 2 | spring: 3 | application: 4 | name: ch18-6-1-gateway 5 | 6 | 7 | logging: 8 | level: 9 | #org.springframework.cloud.gateway: debug 10 | cn.springcloud.book.filter: debug -------------------------------------------------------------------------------- /ch18-6/ch18-6-3-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 8082 2 | spring: 3 | application: 4 | name: ch18-6-3-gateway 5 | 6 | 7 | logging: 8 | level: 9 | #org.springframework.cloud.gateway: debug 10 | cn.springcloud.book.filter: debug 11 | 12 | 13 | #开启端点 14 | management: 15 | endpoints: 16 | web: 17 | exposure: 18 | include: '*' 19 | security: 20 | enabled: false -------------------------------------------------------------------------------- /ch18-6/ch18-6-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ch18-6-provider 4 | server: 5 | port: 8000 -------------------------------------------------------------------------------- /ch18-7/ch18-7-gateway/src/main/java/cn/springcloud/book/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class GatewayApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(GatewayApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ch18-7/readme.md: -------------------------------------------------------------------------------- 1 | { 2 | "filters": [], 3 | "id": "jd_route", 4 | "order": 0, 5 | "predicates": [{ 6 | "args": { 7 | "pattern": "/jd" 8 | }, 9 | "name": "Path" 10 | }], 11 | "uri": "http://www.jd.com" 12 | } -------------------------------------------------------------------------------- /ch19-1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch19-1/src/main/proto/person.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | option java_package = "cn.springcloud.proto"; 3 | option java_outer_classname = "PersonModel"; 4 | 5 | message Person { 6 | int32 id = 1; 7 | string name = 2; 8 | string email = 3; 9 | } -------------------------------------------------------------------------------- /ch19-1/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-1/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch19-2/grpc-lib-1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch19-2/grpc-lib-1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-2/grpc-lib-1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch19-2/grpc-lib-1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch19-2/grpc-lib-1/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-2/grpc-lib-1/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch19-2/grpc-simple-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch19-2/grpc-simple-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-2/grpc-simple-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch19-2/grpc-simple-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch19-2/grpc-simple-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-2/grpc-simple-client/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch19-2/grpc-simple-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch19-2/grpc-simple-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-2/grpc-simple-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch19-2/grpc-simple-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch19-2/grpc-simple-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch19-2/grpc-simple-server/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch2-1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch2-1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch2-1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch2-1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch2-1/ch2-1-eureka-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-client/src/main/resources/application-demo.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | 4 | spring: 5 | application: 6 | name: demo-client1 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: demo -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch2-1/ch2-1-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-server/src/main/resources/application-standalone.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | eureka: 5 | instance: 6 | hostname: localhost 7 | client: 8 | registerWithEureka: false 9 | fetchRegistry: false 10 | serviceUrl: 11 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 12 | server: 13 | waitTimeInMsWhenSyncEmpty: 0 14 | enableSelfPreservation: false -------------------------------------------------------------------------------- /ch2-1/ch2-1-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: standalone 4 | jackson: 5 | serialization: 6 | FAIL_ON_EMPTY_BEANS: false 7 | eureka: 8 | server: 9 | use-read-only-response-cache: false 10 | response-cache-auto-expiration-in-seconds: 10 11 | management: 12 | endpoints: 13 | web: 14 | exposure: 15 | include: '*' -------------------------------------------------------------------------------- /ch20/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch20/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch20/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch20/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch20/cloud-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch20/cloud-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch20/cloud-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch20/cloud-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch20/cloud-grpc-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch20/cloud-grpc-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch20/cloud-grpc-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch20/cloud-grpc-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch20/cloud-grpc-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch20/cloud-grpc-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch20/cloud-grpc-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch20/cloud-grpc-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch20/grpc-lib/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch20/grpc-lib/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch20/grpc-lib/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch20/grpc-lib/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch21-1/ch21-1-eureka-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-springcloud-example-eureka 2 | server.port=8888 3 | 4 | eureka.instance.metadataMap.group=example-eureka-group 5 | eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/ 6 | eureka.instance.preferIpAddress=true -------------------------------------------------------------------------------- /ch22-1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/alpine-glibc/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull registry.cn-hangzhou.aliyuncs.com/springcloud-cn/alpine-3.7:glibc-2.27-r0 3 | ``` -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/alpine-3.7:glibc-2.27-r0 2 | MAINTAINER caibosi 3 | ADD openjdk-10.0.1_linux-x64_bin.tar.gz /opt/ 4 | RUN chmod +x /opt/jdk-10.0.1 5 | ENV JAVA_HOME=/opt/jdk-10.0.1 6 | ENV PATH="$JAVA_HOME/bin:${PATH}" -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java10/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:openjdk-10.0.1-alpine 3 | ``` -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/alpine-3.7:glibc-2.27-r0 2 | MAINTAINER caibosi 3 | ADD openjdk-11-ea_19_linux-x64_bin.tar.gz /opt/ 4 | RUN chmod +x /opt/jdk-11 5 | ENV JAVA_HOME=/opt/jdk-11 6 | ENV PATH="$JAVA_HOME/bin:${PATH}" -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java11/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:openjdk-11-ea19-alpine 3 | ``` -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/alpine-3.7:glibc-2.27-r0 2 | MAINTAINER caibosi 3 | ADD server-jre-8u172-linux-x64.tar.gz /opt/ 4 | RUN chmod +x /opt/jdk1.8.0_172 5 | ENV JAVA_HOME=/opt/jdk1.8.0_172 6 | ENV PATH="$JAVA_HOME/bin:${PATH}" -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java8/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 3 | ``` -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/alpine-3.7:glibc-2.27-r0 2 | MAINTAINER caibosi 3 | ADD openjdk-9u181_linux-x64_bin.tar.gz /opt/ 4 | RUN chmod +x /opt/jdk-9 5 | ENV JAVA_HOME=/opt/jdk-9 6 | ENV PATH="$JAVA_HOME/bin:${PATH}" -------------------------------------------------------------------------------- /ch22-1/ch22-1-2-dockerfile/java9/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:openjdk-9u181-alpine 3 | ``` -------------------------------------------------------------------------------- /ch22-1/ch22-1-3-jdk8-docker/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-1/ch22-1-3-jdk8-docker/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-1/ch22-1-3-jdk8-docker/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-1/ch22-1-3-jdk8-docker/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-1/ch22-1-3-jdk8-docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-1/ch22-1-3-jdk8-docker/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-1/ch22-1-3-jdk8-docker/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch22-1/ch22-1-4-jdk10-docker/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-1/ch22-1-4-jdk10-docker/.java-version: -------------------------------------------------------------------------------- 1 | 10 2 | -------------------------------------------------------------------------------- /ch22-1/ch22-1-4-jdk10-docker/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-1/ch22-1-4-jdk10-docker/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-1/ch22-1-4-jdk10-docker/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-1/ch22-1-4-jdk10-docker/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-1/ch22-1-4-jdk10-docker/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch22-2/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-1-config-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/ch22-2-1-config-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-1-config-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-1-config-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-1-config-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-1-config-server/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | mvn clean package 3 | 4 | docker run -p 8888:8080 --rm \ 5 | -e JAVA_OPTS='-server -Xmx1g' \ 6 | -e PROFILE='jdbc' \ 7 | -e SERVER_PORT=8080 \ 8 | registry.cn-hangzhou.aliyuncs.com/springcloud-cn/ch22-2-1-config-server:0.0.1-SNAPSHOT 9 | ``` -------------------------------------------------------------------------------- /ch22-2/ch22-2-1-config-server/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS PROPERTIES ( 2 | KEY VARCHAR(2048), 3 | VALUE VARCHAR(4096), 4 | APPLICATION VARCHAR(128), 5 | PROFILE VARCHAR(128), 6 | LABEL VARCHAR(128), 7 | PRIMARY KEY (`KEY`, `APPLICATION`, `PROFILE`, `LABEL`) 8 | ); -------------------------------------------------------------------------------- /ch22-2/ch22-2-2-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/ch22-2-2-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-2-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-2-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-2-eureka-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-2-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | server: 3 | peer-eureka-nodes-update-interval-ms: 10000 #默认是10分钟即600000,这里为了验证改为10秒 -------------------------------------------------------------------------------- /ch22-2/ch22-2-2-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: eureka-server 4 | cloud: 5 | config: 6 | fail-fast: true 7 | label: master 8 | uri: http://${CONFIG_SERVER_HOST}:${CONFIG_SERVER_PORT} 9 | management: 10 | endpoints: 11 | web: 12 | exposure: 13 | include: '*' -------------------------------------------------------------------------------- /ch22-2/ch22-2-3-gateway/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/ch22-2-3-gateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-3-gateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-3-gateway/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-3-gateway/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-3-gateway/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-3-gateway/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch22-2/ch22-2-3-gateway/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway 4 | cloud: 5 | config: 6 | fail-fast: true 7 | label: master 8 | uri: http://${CONFIG_SERVER_HOST}:${CONFIG_SERVER_PORT} 9 | management: 10 | endpoints: 11 | web: 12 | exposure: 13 | include: '*' -------------------------------------------------------------------------------- /ch22-2/ch22-2-4-turbine/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/ch22-2-4-turbine/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-4-turbine/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-4-turbine/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-4-turbine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-4-turbine/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-4-turbine/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch22-2/ch22-2-4-turbine/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: turbine 4 | cloud: 5 | config: 6 | fail-fast: true 7 | label: master 8 | uri: http://${CONFIG_SERVER_HOST}:${CONFIG_SERVER_PORT} 9 | management: 10 | endpoints: 11 | web: 12 | exposure: 13 | include: '*' -------------------------------------------------------------------------------- /ch22-2/ch22-2-5-spring-admin/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/ch22-2-5-spring-admin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-5-spring-admin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-5-spring-admin/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-5-spring-admin/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-5-spring-admin/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-5-spring-admin/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch22-2/ch22-2-5-spring-admin/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: spring-admin 4 | cloud: 5 | config: 6 | fail-fast: true 7 | label: master 8 | uri: http://${CONFIG_SERVER_HOST}:${CONFIG_SERVER_PORT} 9 | management: 10 | endpoints: 11 | web: 12 | exposure: 13 | include: '*' -------------------------------------------------------------------------------- /ch22-2/ch22-2-6-biz-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-2/ch22-2-6-biz-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-6-biz-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-6-biz-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-2/ch22-2-6-biz-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-2/ch22-2-6-biz-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-2/ch22-2-6-biz-service/src/main/resources/application.properties -------------------------------------------------------------------------------- /ch22-2/ch22-2-6-biz-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: biz-service 4 | cloud: 5 | config: 6 | fail-fast: true 7 | label: master 8 | uri: http://${CONFIG_SERVER_HOST}:${CONFIG_SERVER_PORT} 9 | management: 10 | endpoints: 11 | web: 12 | exposure: 13 | include: '*' -------------------------------------------------------------------------------- /ch22-3/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-3/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-3/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-3/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-3/ch22-3-1/k8s/config-server-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: config-server 5 | namespace: springcloud-cn 6 | labels: 7 | service: config-server 8 | spec: 9 | selector: 10 | app: config-server 11 | ports: 12 | - name: http 13 | port: 8888 14 | targetPort: 8080 15 | clusterIP: 10.96.0.2 16 | externalIPs: 17 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-1/k8s/eureka-server-1-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: eureka-server-1 5 | namespace: springcloud-cn 6 | labels: 7 | service: eureka-server-svc 8 | spec: 9 | selector: 10 | app: eureka-server 11 | peer: "1" 12 | ports: 13 | - name: http 14 | port: 8761 15 | targetPort: 8080 16 | clusterIP: 10.96.0.3 17 | externalIPs: 18 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-1/k8s/eureka-server-2-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: eureka-server-2 5 | namespace: springcloud-cn 6 | labels: 7 | service: eureka-server-svc 8 | spec: 9 | selector: 10 | app: eureka-server 11 | peer: "2" 12 | ports: 13 | - name: http 14 | port: 8762 15 | targetPort: 8080 16 | clusterIP: 10.96.0.4 17 | externalIPs: 18 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-1/k8s/gateway-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: gateway 5 | namespace: springcloud-cn 6 | labels: 7 | service: gateway 8 | spec: 9 | selector: 10 | app: gateway 11 | ports: 12 | - name: http 13 | port: 8000 14 | targetPort: 8080 15 | clusterIP: 10.96.0.5 16 | externalIPs: 17 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-1/k8s/spring-admin-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: spring-admin 5 | namespace: springcloud-cn 6 | labels: 7 | service: spring-admin 8 | spec: 9 | selector: 10 | app: spring-admin 11 | ports: 12 | - name: http 13 | port: 8002 14 | targetPort: 8080 15 | clusterIP: 10.96.0.7 16 | externalIPs: 17 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-1/k8s/turbine-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: turbine 5 | namespace: springcloud-cn 6 | labels: 7 | service: turbine 8 | spec: 9 | selector: 10 | app: turbine 11 | ports: 12 | - name: http 13 | port: 8001 14 | targetPort: 8080 15 | clusterIP: 10.96.0.6 16 | externalIPs: 17 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-2-example-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-3/ch22-3-2-example-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-3/ch22-3-2-example-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-3/ch22-3-2-example-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-3/ch22-3-2-example-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-3/ch22-3-2-example-service/example-service-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: example-service 5 | namespace: springcloud-cn 6 | labels: 7 | service: example-service 8 | spec: 9 | selector: 10 | app: example-service 11 | ports: 12 | - name: http 13 | port: 8080 14 | targetPort: 8080 15 | clusterIP: 10.96.0.8 16 | externalIPs: 17 | - 192.168.99.101 -------------------------------------------------------------------------------- /ch22-3/ch22-3-2-example-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | management: 2 | endpoints: 3 | web: 4 | exposure: 5 | include: '*' -------------------------------------------------------------------------------- /ch22-3/ch22-3-3-example-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch22-3/ch22-3-3-example-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch22-3/ch22-3-3-example-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch22-3/ch22-3-3-example-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch22-3/ch22-3-3-example-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM registry.cn-hangzhou.aliyuncs.com/springcloud-cn/java:8u172-jre-alpine 2 | ARG JAR_FILE 3 | ENV PROFILE default 4 | ADD target/${JAR_FILE} /opt/app.jar 5 | EXPOSE 8080 6 | ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profiles.active=${PROFILE} -jar /opt/app.jar -------------------------------------------------------------------------------- /ch22-3/ch22-3-3-example-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | management: 2 | endpoints: 3 | web: 4 | exposure: 5 | include: '*' -------------------------------------------------------------------------------- /ch22-3/metrics-server-0.2.1/README.MD: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull registry.cn-hangzhou.aliyuncs.com/dck8s/metrics-server-amd64:v0.2.1 3 | docker tag registry.cn-hangzhou.aliyuncs.com/dck8s/metrics-server-amd64:v0.2.1 gcr.io/google_containers/metrics-server-amd64:v0.2.1 4 | ``` -------------------------------------------------------------------------------- /ch22-3/metrics-server-0.2.1/auth-delegator.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1beta1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: metrics-server:system:auth-delegator 5 | roleRef: 6 | apiGroup: rbac.authorization.k8s.io 7 | kind: ClusterRole 8 | name: system:auth-delegator 9 | subjects: 10 | - kind: ServiceAccount 11 | name: metrics-server 12 | namespace: kube-system 13 | -------------------------------------------------------------------------------- /ch22-3/metrics-server-0.2.1/auth-reader.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1beta1 2 | kind: RoleBinding 3 | metadata: 4 | name: metrics-server-auth-reader 5 | namespace: kube-system 6 | roleRef: 7 | apiGroup: rbac.authorization.k8s.io 8 | kind: Role 9 | name: extension-apiserver-authentication-reader 10 | subjects: 11 | - kind: ServiceAccount 12 | name: metrics-server 13 | namespace: kube-system 14 | -------------------------------------------------------------------------------- /ch22-3/metrics-server-0.2.1/metrics-apiservice.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apiregistration.k8s.io/v1beta1 2 | kind: APIService 3 | metadata: 4 | name: v1beta1.metrics.k8s.io 5 | spec: 6 | service: 7 | name: metrics-server 8 | namespace: kube-system 9 | group: metrics.k8s.io 10 | version: v1beta1 11 | insecureSkipTLSVerify: true 12 | groupPriorityMinimum: 100 13 | versionPriority: 100 14 | -------------------------------------------------------------------------------- /ch22-3/metrics-server-0.2.1/metrics-server-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: metrics-server 5 | namespace: kube-system 6 | labels: 7 | kubernetes.io/name: "Metrics-server" 8 | spec: 9 | selector: 10 | k8s-app: metrics-server 11 | ports: 12 | - port: 443 13 | protocol: TCP 14 | targetPort: 443 15 | -------------------------------------------------------------------------------- /ch23-1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch23-1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch23-1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch23-1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch23-1/demo-consumer/src/test/java/cn/springcloud/book/AppTest.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.assertTrue; 6 | 7 | /** 8 | * Unit test for simple App. 9 | */ 10 | public class AppTest { 11 | /** 12 | * Rigorous Test :-) 13 | */ 14 | @Test 15 | public void shouldAnswerWithTrue() { 16 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ch23-1/demo-provider/src/main/java/cn/springcloud/book/service/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.service; 2 | 3 | import cn.springcloud.book.HelloService; 4 | 5 | /** 6 | * Created by caibosi on 2018-08-02. 7 | */ 8 | public class HelloServiceImpl implements HelloService { 9 | @Override 10 | public String hello() { 11 | return "hello at " + System.currentTimeMillis(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ch23-1/dubbo-provider-api/src/main/java/cn/springcloud/book/HelloService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book; 2 | 3 | import org.springframework.cloud.openfeign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | 6 | @FeignClient("provider") 7 | public interface HelloService { 8 | @GetMapping("/hello") 9 | String hello(); 10 | } 11 | -------------------------------------------------------------------------------- /ch23-2/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch23-2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch23-2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch23-2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-consumer/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-consumer/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch23-2/demo-dubbo-consumer/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-consumer/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider-api/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider-api/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch23-2/demo-dubbo-provider-api/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider-api/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider-api/src/main/java/cn/springcloud/book/service/HelloService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.service; 2 | 3 | import org.springframework.cloud.openfeign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | 6 | @FeignClient("provider") 7 | public interface HelloService { 8 | @GetMapping("/hello") 9 | String hello(); 10 | } 11 | -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch23-2/demo-dubbo-provider/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider/src/main/java/cn/springcloud/book/service/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.service; 2 | 3 | import org.springframework.web.bind.annotation.RestController; 4 | 5 | @RestController 6 | public class HelloServiceImpl implements HelloService { 7 | @Override 8 | public String hello() { 9 | return "hello at " + System.currentTimeMillis(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ch23-2/demo-dubbo-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: demo-provider 4 | 5 | eureka: 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/ 9 | 10 | dubbo: 11 | application: 12 | name: demo-provider 13 | registry: 14 | address: zookeeper://127.0.0.1:2181 15 | protocol: 16 | name: dubbo 17 | port: 20880 18 | scan: 19 | basePackages: cn.springcloud.book -------------------------------------------------------------------------------- /ch23-2/eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch23-2/eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch23-2/eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch23-2/eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch23-2/eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | eureka: 5 | instance: 6 | hostname: localhost 7 | client: 8 | registerWithEureka: false 9 | fetchRegistry: false 10 | serviceUrl: 11 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 12 | server: 13 | waitTimeInMsWhenSyncEmpty: 0 14 | enableSelfPreservation: false -------------------------------------------------------------------------------- /ch24/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-jta-atomikos/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-jta-atomikos/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-jta-atomikos/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-jta-atomikos/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-jta-atomikos/src/main/java/cn/springcloud/book/dao/log/EventLogDao.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dao.log; 2 | 3 | import cn.springcloud.book.domain.log.EventLog; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-25. 8 | */ 9 | public interface EventLogDao extends JpaRepository { 10 | } 11 | -------------------------------------------------------------------------------- /ch24/ch24-jta-atomikos/src/main/java/cn/springcloud/book/dao/order/UserOrderDao.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dao.order; 2 | 3 | import cn.springcloud.book.domain.order.UserOrder; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-25. 8 | */ 9 | public interface UserOrderDao extends JpaRepository { 10 | } 11 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-saga-servicecomb/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/alpha-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/alpha-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-saga-servicecomb/alpha-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/alpha-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/alpha-server/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-saga-servicecomb/alpha-server/src/main/resources/db/data.sql -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-inventory-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-inventory-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-saga-servicecomb/omega-inventory-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-inventory-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-order-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-order-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-saga-servicecomb/omega-order-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-order-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-order-service/src/main/java/cn/springcloud/book/dao/OrderDao.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dao; 2 | 3 | import cn.springcloud.book.domain.UserOrder; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-27. 8 | */ 9 | public interface OrderDao extends JpaRepository { 10 | UserOrder findByTxId(String txId); 11 | } 12 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/omega-order-service/src/main/java/cn/springcloud/book/domain/OrderState.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.domain; 2 | 3 | /** 4 | * Created by caibosi on 2018-07-27. 5 | */ 6 | public enum OrderState { 7 | ORDERED, CONFIRMED, CANCELED; 8 | } 9 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/saga-servicecomb-example/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/saga-servicecomb-example/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-saga-servicecomb/saga-servicecomb-example/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/saga-servicecomb-example/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-saga-servicecomb/saga-servicecomb-example/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8082 3 | spring: 4 | application: 5 | name: saga-servicecomb-example 6 | alpha: 7 | cluster: 8 | address: localhost:9090 9 | omega: 10 | orderService: http://localhost:8080/order 11 | inventoryService: http://localhost:8081/inventory -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-tcc-rest/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/inventory-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/inventory-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-tcc-rest/inventory-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/inventory-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/inventory-service/src/main/java/cn/springcloud/book/dao/FrozeRequestDao.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dao; 2 | 3 | import cn.springcloud.book.domain.FrozeRequest; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-27. 8 | */ 9 | public interface FrozeRequestDao extends JpaRepository { 10 | } 11 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/inventory-service/src/main/java/cn/springcloud/book/dao/InventoryDao.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dao; 2 | 3 | import cn.springcloud.book.domain.Inventory; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-27. 8 | */ 9 | public interface InventoryDao extends JpaRepository { 10 | Inventory findByProductCode(String productCode); 11 | } 12 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/order-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/order-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-tcc-rest/order-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/order-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/order-service/src/main/java/cn/springcloud/book/dao/OrderDao.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dao; 2 | 3 | import cn.springcloud.book.domain.UserOrder; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-27. 8 | */ 9 | public interface OrderDao extends JpaRepository { 10 | UserOrder findByTxId(String txId); 11 | } 12 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/order-service/src/main/java/cn/springcloud/book/domain/OrderState.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.domain; 2 | 3 | /** 4 | * Created by caibosi on 2018-07-27. 5 | */ 6 | public enum OrderState { 7 | ORDERED, CONFIRMED, CANCELED; 8 | } 9 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-atomikos/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-atomikos/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-tcc-rest/tcc-coordinator-atomikos/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-atomikos/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-atomikos/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-example/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-example/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch24/ch24-tcc-rest/tcc-coordinator-example/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-example/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-example/src/main/java/cn/springcloud/book/dto/FrozeRequest.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-27. 8 | */ 9 | @Data 10 | @Builder 11 | public class FrozeRequest { 12 | 13 | private String productCode; 14 | 15 | private Integer frozenNum; 16 | } 17 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-example/src/main/java/cn/springcloud/book/dto/OrderRequest.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | /** 7 | * Created by caibosi on 2018-07-27. 8 | */ 9 | @Data 10 | @Builder 11 | public class OrderRequest { 12 | 13 | private String userId; 14 | 15 | private String productCode; 16 | 17 | private Integer quantity; 18 | } 19 | -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-coordinator-example/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | tcc: 2 | coordinator: 3 | url: http://localhost:9090/coordinator 4 | transaction: 5 | timeoutInMs: 30000 6 | participant: 7 | orderService: http://localhost:8080/order/tcc/%s 8 | inventoryService: http://localhost:8081/inventory/tcc/%s -------------------------------------------------------------------------------- /ch24/ch24-tcc-rest/tcc-rest-participant-api/src/test/java/cn/springcloud/book/AppTest.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.assertTrue; 6 | 7 | /** 8 | * Unit test for simple App. 9 | */ 10 | public class AppTest { 11 | /** 12 | * Rigorous Test :-) 13 | */ 14 | @Test 15 | public void shouldAnswerWithTrue() { 16 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ch25/crm-sales-app/src/main/java/cn/springcloud/book/crm/sales/command/extensionpoint/CustomerCheckConflictSearchConditionExtPt.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.command.extensionpoint; 2 | 3 | import org.xujin.halo.extension.ExtensionPointI; 4 | 5 | public interface CustomerCheckConflictSearchConditionExtPt extends ExtensionPointI{ 6 | 7 | public String getSearchCondition(String condition); 8 | } 9 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/CustomerAddCmd.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto; 2 | 3 | import cn.springcloud.book.crm.sales.dto.clientobject.CustomerCO; 4 | import org.xujin.halo.dto.Command; 5 | import lombok.Data; 6 | 7 | @Data 8 | public class CustomerAddCmd extends Command{ 9 | 10 | private CustomerCO customer; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/CustomerCheckConflictCmd.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto; 2 | 3 | import org.xujin.halo.dto.Command; 4 | 5 | public class CustomerCheckConflictCmd extends Command{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/CustomerFindByCriteriaQry.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto; 2 | 3 | import org.xujin.halo.dto.Query; 4 | 5 | public class CustomerFindByCriteriaQry extends Query{ 6 | //目前为空,读者根据自己需要补充 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/CustomerFindByNameQry.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto; 2 | 3 | import org.xujin.halo.dto.Query; 4 | 5 | public class CustomerFindByNameQry extends Query{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/CustomerUpdateCmd.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto; 2 | 3 | import org.xujin.halo.dto.Command; 4 | 5 | public class CustomerUpdateCmd extends Command{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/clientobject/CustomerType.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto.clientobject; 2 | 3 | /** 4 | * CustomerType 5 | * 6 | * @author xujin 7 | * @date 2018-01-08 8:51 AM 8 | */ 9 | public enum CustomerType { 10 | POTENTIAL, 11 | INTENTIONAL, 12 | IMPORTANT, 13 | VIP; 14 | } 15 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/clientobject/LeadCO.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto.clientobject; 2 | 3 | import org.xujin.halo.dto.ClientObject; 4 | 5 | public class LeadCO extends ClientObject{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/clientobject/OppertunityCO.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto.clientobject; 2 | 3 | import org.xujin.halo.dto.ClientObject; 4 | 5 | public class OppertunityCO extends ClientObject{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-client/src/main/java/cn/springcloud/book/crm/sales/dto/clientobject/QueryCriteria.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.dto.clientobject; 2 | 3 | import org.xujin.halo.dto.ClientObject; 4 | 5 | public class QueryCriteria extends ClientObject{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ch25/crm-sales-consumer/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8010 3 | spring: 4 | application: 5 | name: crm-sales-consumer 6 | 7 | eureka: 8 | client: 9 | service-url: 10 | defaultZone: http://eureka.springcloud.cn/eureka/ 11 | instance: 12 | prefer-ip-address: true 13 | ribbon: 14 | ReadTimeout: 60000 15 | ConnectTimeout: 60000 -------------------------------------------------------------------------------- /ch25/crm-sales-domain/src/main/java/cn/springcloud/book/crm/sales/domain/customer/entity/ContactE.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.domain.customer.entity; 2 | 3 | public class ContactE { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /ch25/crm-sales-domain/src/main/java/cn/springcloud/book/crm/sales/domain/customer/entity/OpportunityE.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.domain.customer.entity; 2 | 3 | public class OpportunityE { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /ch25/crm-sales-domain/src/main/java/cn/springcloud/book/crm/sales/domain/customer/valueobject/AddressV.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.domain.customer.valueobject; 2 | 3 | import org.xujin.halo.domain.ValueObject; 4 | 5 | /** 6 | * Address Value Object 7 | * @author xujin 2017年10月22日 下午10:32:46 8 | */ 9 | public class AddressV implements ValueObject { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /ch25/crm-sales-domain/src/main/java/cn/springcloud/book/crm/sales/domain/customer/valueobject/CompanyType.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.domain.customer.valueobject; 2 | 3 | /** 4 | * CompanyType 5 | * 6 | * @author xujin 7 | * @date 2018-01-08 11:02 AM 8 | */ 9 | public enum CompanyType { 10 | POTENTIAL, 11 | INTENTIONAL, 12 | IMPORTANT, 13 | VIP; 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /ch25/crm-sales-domain/src/main/java/cn/springcloud/book/crm/sales/domain/customer/valueobject/SourceType.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.domain.customer.valueobject; 2 | 3 | /** 4 | * SourceType 5 | * 6 | * @author xujin 7 | * @date 2018-01-08 11:09 AM 8 | */ 9 | public enum SourceType { 10 | AD, //Advertisement 广告 11 | WB, // Web site 网站 12 | RFQ; // Request For Quota 询盘 13 | } 14 | -------------------------------------------------------------------------------- /ch25/crm-sales-domain/src/main/resources/sample.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch25/crm-sales-domain/src/main/resources/sample.properties -------------------------------------------------------------------------------- /ch25/crm-sales-infrastructure/src/main/java/cn/springcloud/book/crm/sales/common/BizCode.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.crm.sales.common; 2 | 3 | public class BizCode { 4 | 5 | public final static String DD = "DD"; 6 | 7 | public final static String CGS = "CGS"; 8 | 9 | public final static String TP = "TP"; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /ch25/crm-sales-infrastructure/src/main/resources/customer.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `customer` ( 2 | `customer_id` varchar(32) NOT NULL DEFAULT '', 3 | `member_id` varchar(32) DEFAULT NULL, 4 | `global_id` varchar(32) DEFAULT NULL, 5 | `company_name` varchar(64) DEFAULT NULL, 6 | `source` varchar(16) DEFAULT NULL, 7 | `company_type` varchar(16) DEFAULT NULL, 8 | PRIMARY KEY (`customer_id`) 9 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -------------------------------------------------------------------------------- /ch3-1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-1/ch3-1-config-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-1/ch3-1-config-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-1/ch3-1-config-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-1/ch3-1-config-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-1/ch3-1-config-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: config-server 4 | profiles: 5 | active: native 6 | server: 7 | port: 8888 -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-1/ch3-1-eureka-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | client: 3 | eureka-service-url-poll-interval-seconds: 10 #默认为300秒,这里为了验证改为10秒 -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-client/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: eureka-client 4 | cloud: 5 | config: 6 | uri: http://localhost:8888 7 | management: 8 | endpoints: 9 | web: 10 | exposure: 11 | include: '*' -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-1/ch3-1-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | server: 3 | peer-eureka-nodes-update-interval-ms: 10000 #默认是10分钟即600000,这里为了验证改为10秒 -------------------------------------------------------------------------------- /ch3-1/ch3-1-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: eureka-server 4 | cloud: 5 | config: 6 | uri: http://localhost:8888 7 | management: 8 | endpoints: 9 | web: 10 | exposure: 11 | include: '*' -------------------------------------------------------------------------------- /ch3-2/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-2/ch3-2-eureka-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | management: 2 | endpoints: 3 | web: 4 | exposure: 5 | include: '*' -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-2/ch3-2-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-2/ch3-2-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | server: 3 | use-read-only-response-cache: false 4 | response-cache-auto-expiration-in-seconds: 10 5 | management: 6 | endpoints: 7 | web: 8 | exposure: 9 | include: '*' -------------------------------------------------------------------------------- /ch3-2/ch3-2-zuul-gateway/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-2/ch3-2-zuul-gateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-2/ch3-2-zuul-gateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-2/ch3-2-zuul-gateway/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-2/ch3-2-zuul-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: zuul-gateway 4 | management: 5 | endpoints: 6 | web: 7 | exposure: 8 | include: '*' -------------------------------------------------------------------------------- /ch3-3/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-3/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-3/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-3/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-3/ch3-3-eureka-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | management: 2 | endpoints: 3 | web: 4 | exposure: 5 | include: '*' -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-3/ch3-3-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-3/ch3-3-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-3/ch3-3-zuul-gateway/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-3/ch3-3-zuul-gateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-3/ch3-3-zuul-gateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-3/ch3-3-zuul-gateway/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-3/ch3-3-zuul-gateway/src/main/resources/application-zone1.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 10001 3 | eureka: 4 | instance: 5 | metadataMap.zone: zone1 6 | client: 7 | register-with-eureka: true 8 | fetch-registry: true 9 | region: region-east 10 | service-url: 11 | zone1: http://localhost:8761/eureka/ 12 | zone2: http://localhost:8762/eureka/ 13 | availability-zones: 14 | region-east: zone1,zone2 -------------------------------------------------------------------------------- /ch3-3/ch3-3-zuul-gateway/src/main/resources/application-zone3-region-west.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 10002 3 | eureka: 4 | instance: 5 | metadataMap.zone: zone3 6 | client: 7 | register-with-eureka: true 8 | fetch-registry: true 9 | region: region-west 10 | service-url: 11 | zone3: http://localhost:8763/eureka/ 12 | zone4: http://localhost:8764/eureka/ 13 | availability-zones: 14 | region-west: zone3,zone4 -------------------------------------------------------------------------------- /ch3-3/ch3-3-zuul-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: zuul-gateway 4 | management: 5 | endpoints: 6 | web: 7 | exposure: 8 | include: '*' -------------------------------------------------------------------------------- /ch3-4/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-4/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-4/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-4/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-4/ch3-4-eureka-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-client/src/main/resources/application-security.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | 4 | spring: 5 | application: 6 | name: client1 7 | 8 | eureka: 9 | client: 10 | security: 11 | basic: 12 | user: admin 13 | password: Xk38CNHigBP5jK75 14 | serviceUrl: 15 | defaultZone: http://${eureka.client.security.basic.user}:${eureka.client.security.basic.password}@localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: security -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-4/ch3-4-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-4/ch3-4-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: security -------------------------------------------------------------------------------- /ch3-5/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-5/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-5/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/src/main/resources/application-https.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | 4 | spring: 5 | application: 6 | name: client1 7 | 8 | eureka: 9 | client: 10 | securePortEnabled: true 11 | ssl: 12 | key-store: client.p12 13 | key-store-password: client 14 | serviceUrl: 15 | defaultZone: https://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: https -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/src/main/resources/client.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-client/src/main/resources/client.crt -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/src/main/resources/client.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-client/src/main/resources/client.p12 -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-client/src/main/resources/server.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-client/src/main/resources/server.crt -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: https -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/src/main/resources/client.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-server/src/main/resources/client.crt -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/src/main/resources/server.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-server/src/main/resources/server.crt -------------------------------------------------------------------------------- /ch3-5/ch3-5-eureka-server/src/main/resources/server.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch3-5/ch3-5-eureka-server/src/main/resources/server.p12 -------------------------------------------------------------------------------- /ch4-1/ch4-1-hello/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8010 3 | spring: 4 | application: 5 | name: ch4-1-hello 6 | 7 | logging: 8 | level: 9 | cn.springcloud.book.feign.service.HelloFeignService: debug 10 | 11 | -------------------------------------------------------------------------------- /ch4-1/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## Feig查询Github第三方服务入门案例 3 | 4 | ch4-1-gzip开启了Gzip压缩 5 | 6 | ch4-1-hello 没有开启Gzip压缩 7 | 8 | ## 测试 9 | ### 1.启动访问 ch4-1-hello 10 | 11 | http://localhost:8010/search/github?str=spring-cloud-dubbo 12 | 13 | ### 2.启动访问 ch4-1-gizp 14 | 15 | http://localhost:8011/search/github?str=spring-cloud-dubbo 16 | 17 | 18 | 19 | 实际调用的是: 20 | https://api.github.com/search/repositories?q=spring-cloud-minos 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ch4-2/ch4-2-consumer/src/test/java/cn/springcloud/book/feign/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.feign; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch4-2/ch4-2-consumer/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch4-2/ch4-2-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch4-2/ch4-2-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8000 3 | spring: 4 | application: 5 | name: ch2-1-provider 6 | 7 | eureka: 8 | client: 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ 11 | #eureka.instance.prefer-ip-address 表示将自己的IP注册到Eureka Server上, 12 | #如果不配置,会将当前服务提供者所在的主机名注册到Eureka Server上。 13 | instance: 14 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch4-2/ch4-2-provider/src/test/java/cn/springcloud/book/feign/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.feign; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch4-2/ch4-2-provider/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch4-2/readme.md: -------------------------------------------------------------------------------- 1 | ## Feign结合服务注册发现案例 2 | 3 | ## 测试 4 | -------------------------------------------------------------------------------- /ch4-3/ch4-3-httpclient/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8010 3 | spring: 4 | application: 5 | name: ch4-3-httpclient 6 | 7 | feign: 8 | httpclient: 9 | enabled: true 10 | -------------------------------------------------------------------------------- /ch4-3/ch4-3-okhttp/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8011 3 | spring: 4 | application: 5 | name: ch4-3-okhttp 6 | 7 | 8 | feign: 9 | httpclient: 10 | enabled: false 11 | okhttp: 12 | enabled: true 13 | 14 | -------------------------------------------------------------------------------- /ch4-3/ch4-3-okhttp/src/test/java/cn/springcloud/book/feign/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.feign; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch4-3/ch4-3-okhttp/src/test/java/cn/springcloud/book/gateway/ConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.gateway; 2 | 3 | public class ConsumerApplicationTests { 4 | 5 | public void contextLoads() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /ch4-3/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## 更换Feign默认的Client 3 | 4 | ## 测试 5 | 6 | ### 1.启动访问-ch4-3-httpclient 7 | http://localhost:8010/search/github?str=spring-cloud-openfeign 8 | 9 | ### 2.启动访问-ch4-3-okhttp 10 | http://localhost:8011/search/github?str=spring-cloud-openfeign 11 | 实际调用的是: 12 | https://api.github.com/search/repositories?q=spring-cloud-openfeign 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ch4-4/ch4-4-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch4-4/ch4-4-feign-file-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8012 3 | spring: 4 | application: 5 | name: feign-file-server 6 | 7 | eureka: 8 | server: 9 | enableSelfPreservation: false 10 | client: 11 | serviceUrl: 12 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 13 | instance: 14 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch4-4/ch4-4-feign-upload-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8011 3 | spring: 4 | application: 5 | name: feign-upload-client 6 | 7 | eureka: 8 | client: 9 | service-url: 10 | defaultZone: http://localhost:8761/eureka -------------------------------------------------------------------------------- /ch4-4/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## Feign文件上传demo 3 | 4 | ### 1.启动 5 | 打开http://localhost:8011/swagger-ui.html 6 | 7 | ### 2.选择文件上传 8 | -------------------------------------------------------------------------------- /ch4-5/ch4-5-consumer/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8011 3 | spring: 4 | application: 5 | name: ch4-5-consumer 6 | 7 | 8 | eureka: 9 | client: 10 | service-url: 11 | defaultZone: http://localhost:8761/eureka -------------------------------------------------------------------------------- /ch4-5/ch4-5-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | server : 7 | enable-self-preservation: false 8 | client: 9 | registerWithEureka: false 10 | fetchRegistry: false 11 | serviceUrl: 12 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch4-5/ch4-5-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8012 3 | spring: 4 | application: 5 | name: ch4-5-provider 6 | 7 | eureka: 8 | client: 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ 11 | #eureka.instance.prefer-ip-address 表示将自己的IP注册到Eureka Server上, 12 | #如果不配置,会将当前服务提供者所在的主机名注册到Eureka Server上。 13 | instance: 14 | prefer-ip-address: true 15 | -------------------------------------------------------------------------------- /ch4-5/readme.md: -------------------------------------------------------------------------------- 1 | ## 演示Feign多参数传递 2 | http://localhost:8011/swagger-ui.html 3 | -------------------------------------------------------------------------------- /ch4-6/ch4-6-consumer/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8011 3 | spring: 4 | application: 5 | name: ch4-6-consumer 6 | 7 | 8 | eureka: 9 | client: 10 | service-url: 11 | defaultZone: http://localhost:8761/eureka -------------------------------------------------------------------------------- /ch4-6/ch4-6-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | server : 7 | enable-self-preservation: false 8 | client: 9 | registerWithEureka: false 10 | fetchRegistry: false 11 | serviceUrl: 12 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch4-6/ch4-6-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8012 3 | spring: 4 | application: 5 | name: ch4-6-provider 6 | 7 | eureka: 8 | client: 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ 11 | #eureka.instance.prefer-ip-address 表示将自己的IP注册到Eureka Server上, 12 | #如果不配置,会将当前服务提供者所在的主机名注册到Eureka Server上。 13 | instance: 14 | prefer-ip-address: true 15 | -------------------------------------------------------------------------------- /ch4-6/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## venus-cloud-feign项目的演示 3 | 4 | http://localhost:8011/swagger-ui.html 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch5-1/ch5-1-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch5-1/ch5-1-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch5-1/ch5-1-ribbon-loadbalancer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ribbon-loadbalancer 4 | server: 5 | port: 7777 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch5-2/ch5-2-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7073 3 | spring: 4 | application: 5 | name: client-b 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch5-2/ch5-2-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch5-2/ch5-2-ribbon-loadbalancer/src/main/java/cn/springcloud/book/config/AvoidScan.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.config; 2 | 3 | public @interface AvoidScan { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /ch6-1/ch6-1-client-service/src/main/java/cn/springcloud/book/service/IUserService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.service; 2 | 3 | public interface IUserService { 4 | public String getUser(String username) throws Exception; 5 | 6 | } 7 | -------------------------------------------------------------------------------- /ch6-1/ch6-1-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | spring: 4 | application: 5 | name: sc-client-service 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch6-1/ch6-1-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch6-2/ch6-2-consumer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | feign: 2 | hystrix: 3 | enabled: true -------------------------------------------------------------------------------- /ch6-2/ch6-2-consumer-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | spring: 4 | application: 5 | name: sc-consumer-service 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch6-2/ch6-2-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch6-2/ch6-2-provider-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7777 3 | spring: 4 | application: 5 | name: sc-provider-service 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch6-3/ch6-3-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch6-3/ch6-3-hello-service/src/main/java/cn/springcloud/book/hello/service/IHelloService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.hello.service; 2 | 3 | 4 | import java.util.List; 5 | 6 | /** 7 | */ 8 | public interface IHelloService { 9 | public List getProviderData(); 10 | } 11 | -------------------------------------------------------------------------------- /ch6-3/ch6-3-hello-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9091 3 | spring: 4 | application: 5 | name: sc-hello-service 6 | 7 | -------------------------------------------------------------------------------- /ch6-3/ch6-3-hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | client: 3 | serviceUrl: 4 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/ 5 | instance: 6 | prefer-ip-address: true 7 | management: 8 | security: 9 | enabled: false 10 | endpoints: 11 | web: 12 | exposure: 13 | include: hystrix.stream -------------------------------------------------------------------------------- /ch6-3/ch6-3-hystrix-dashboard/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9000 3 | spring: 4 | application: 5 | name: sc-hystrix-dashboard 6 | -------------------------------------------------------------------------------- /ch6-3/ch6-3-hystrix-exception-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8088 3 | spring: 4 | application: 5 | name: sc-hystrix-exception-service 6 | 7 | -------------------------------------------------------------------------------- /ch6-3/ch6-3-provider-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8099 3 | 4 | spring: 5 | application: 6 | name: sc-provider-service 7 | -------------------------------------------------------------------------------- /ch6-3/ch6-3-turbine/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9088 3 | spring: 4 | application: 5 | name: sc-turbine-dashboard -------------------------------------------------------------------------------- /ch6-4/ch6-4-collapsing/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 5555 3 | spring: 4 | application: 5 | name: sc-collapsing-service 6 | 7 | -------------------------------------------------------------------------------- /ch6-4/ch6-4-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ch6-4/ch6-4-hystrix-cache/src/main/java/cn/springcloud/book/hystrix/service/IHelloService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.hystrix.service; 2 | 3 | import com.netflix.hystrix.contrib.javanica.cache.annotation.CacheKey; 4 | 5 | public interface IHelloService { 6 | public String hello(Integer id); 7 | public String getUserToCommandKey(@CacheKey Integer id); 8 | public String updateUser(@CacheKey Integer id); 9 | } 10 | -------------------------------------------------------------------------------- /ch6-4/ch6-4-hystrix-cache/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 5566 3 | spring: 4 | application: 5 | name: sc-hello-service 6 | 7 | -------------------------------------------------------------------------------- /ch6-4/ch6-4-hystrix-thread-context/src/main/java/cn/springcloud/book/hystrix/config/HystrixThreadLocal.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.hystrix.config; 2 | 3 | public class HystrixThreadLocal { 4 | public static ThreadLocal threadLocal = new ThreadLocal<>(); 5 | } -------------------------------------------------------------------------------- /ch6-4/ch6-4-hystrix-thread-context/src/main/java/cn/springcloud/book/hystrix/service/IThreadContextService.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.hystrix.service; 2 | 3 | public interface IThreadContextService { 4 | public String getUser(Integer id); 5 | 6 | } 7 | -------------------------------------------------------------------------------- /ch6-4/ch6-4-hystrix-thread-context/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 3333 3 | spring: 4 | application: 5 | name: sc-hystrix-thread-service 6 | 7 | -------------------------------------------------------------------------------- /ch6-4/ch6-4-provider-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7099 3 | 4 | spring: 5 | application: 6 | name: sc-provider-service 7 | -------------------------------------------------------------------------------- /ch7-1/ch7-1-client-a/src/main/java/cn/springcloud/book/eureka/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.eureka.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class TestController { 8 | 9 | @GetMapping("/add") 10 | public Integer add(Integer a, Integer b){ 11 | return a + b; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ch7-1/ch7-1-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch7-1/ch7-1-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch7-1/reademe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/ch7-1/reademe.txt -------------------------------------------------------------------------------- /ch7-2/ch7-2-client-a/src/main/java/cn/springcloud/book/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class TestController { 8 | 9 | @GetMapping("/add") 10 | public Integer add(Integer a, Integer b){ 11 | return a + b; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ch7-2/ch7-2-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch7-2/ch7-2-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch7-2/ch7-2-zuul-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: zuul-server 4 | server: 5 | port: 5555 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true 12 | zuul: 13 | routes: 14 | client-a: 15 | path: /client/** 16 | serviceId: client-a -------------------------------------------------------------------------------- /ch7-3/ch7-3-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch7-3/ch7-3-client-b/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7071 3 | spring: 4 | application: 5 | name: client-b 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch7-3/ch7-3-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/java/cn/springcloud/book/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package cn.springcloud.book.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class TestController { 8 | 9 | @GetMapping("/client") 10 | public String add(Integer a, Integer b){ 11 | return "本地跳转:" + (a + b); 12 | } 13 | } -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example1.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 服务忽略、路径忽略、前缀、重定向问题 ########################## 3 | 4 | zuul: 5 | # ignored-services: client-b #忽略的服务,防服务侵入 6 | # ignored-patterns: /**/div/** #忽略的接口,屏蔽接口 7 | # prefix: /pre #前缀 8 | # add-host-header: true #重定向header问题 9 | routes: 10 | client-a: /client/** -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example2.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 默认配置 ########################## 3 | 4 | #zuul: 5 | # routes: 6 | # client-a: 7 | # path: /client-a/** 8 | # serviceId: client-a 9 | 10 | zuul: 11 | routes: 12 | client-a: -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example3.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 简化配置 ########################## 3 | 4 | #zuul: 5 | # routes: 6 | # client-a: 7 | # path: /client/** 8 | # serviceId: client-a 9 | 10 | zuul: 11 | routes: 12 | client-a: /client/** -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example4.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 映射覆盖情况 ########################## 3 | 4 | zuul: 5 | routes: 6 | client-b: 7 | path: /client/** 8 | serviceId: client-b 9 | client-a: 10 | path: /client/** 11 | serviceId: client-a -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example5.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 敏感头设置 ########################## 3 | 4 | zuul: 5 | prefix: /pre 6 | routes: 7 | client-a: 8 | path: /client/** 9 | sensitiveHeaders: Cookie,Set-Cookie,Authorization 10 | serviceId: client-a 11 | stripPrefix: false -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example6.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 重试机制 ########################## 3 | 4 | zuul: 5 | retryable: true #开启重试 6 | 7 | ribbon: 8 | MaxAutoRetries: 1 #同一个服务重试的次数(除去首次) 9 | MaxAutoRetriesNextServer: 1 #切换相同服务数量 -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example7.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## 使用url替代serviceId路由 ########################## 3 | 4 | zuul: 5 | routes: 6 | client-a: 7 | path: /client/** 8 | url: http://localhost:7070 #client-a的地址 -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application-example9.yml: -------------------------------------------------------------------------------- 1 | 2 | ########################## foward跳转本地url ########################## 3 | 4 | zuul: 5 | routes: 6 | client-a: 7 | path: /client/** 8 | url: forward:/client -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | active: example8 -------------------------------------------------------------------------------- /ch7-3/ch7-3-zuul-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: zuul-server 4 | server: 5 | port: 5555 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-1/ch8-1-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-1/ch8-1-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch8-1/ch8-1-zuul-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | #management.endpoint.shutdown.enabled=true 3 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /ch8-2/ch8-2-auth-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: auth-server 4 | server: 5 | port: 7777 6 | servlet: 7 | contextPath: /uaa #web基路径 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 12 | instance: 13 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-2/ch8-2-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-2/ch8-2-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch8-3/ch8-3-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-3/ch8-3-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch8-4/ch8-4-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-4/ch8-4-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch8-5/ch8-5-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch8-5/ch8-5-zuul-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | #management.endpoint.shutdown.enabled=true 3 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /ch8-6/ch8-6-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /ch8-7/ch8-7-client-a/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7070 3 | spring: 4 | application: 5 | name: client-a 6 | eureka: 7 | client: 8 | serviceUrl: 9 | defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ 10 | instance: 11 | prefer-ip-address: true -------------------------------------------------------------------------------- /ch8-7/ch8-7-eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8888 3 | eureka: 4 | instance: 5 | hostname: localhost 6 | client: 7 | registerWithEureka: false 8 | fetchRegistry: false 9 | serviceUrl: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /doc/corrigendum/11-12-16误刊.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/corrigendum/11-12-16误刊.docx -------------------------------------------------------------------------------- /doc/corrigendum/第19+20+23章勘误.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/corrigendum/第19+20+23章勘误.doc -------------------------------------------------------------------------------- /doc/image/dy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/dy.jpg -------------------------------------------------------------------------------- /doc/image/ewm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/ewm.png -------------------------------------------------------------------------------- /doc/image/fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/fm.png -------------------------------------------------------------------------------- /doc/image/sqgzh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/sqgzh.png -------------------------------------------------------------------------------- /doc/image/sz_maven.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/sz_maven.jpg -------------------------------------------------------------------------------- /doc/image/szm1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/szm1.jpg -------------------------------------------------------------------------------- /doc/image/wx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cakin24/spring-cloud-code/f729a0d760f03e99f8882638feec1502c1c213c4/doc/image/wx.png --------------------------------------------------------------------------------