├── .github
└── workflows
│ └── maven.yml
├── .gitignore
├── LICENSE
├── README.md
├── springcloud-alibaba
├── .gitignore
├── README.md
├── pom.xml
├── springcloud-alibaba-nacos-feign
│ ├── .gitignore
│ ├── pom.xml
│ ├── springcloud-alibaba-nacos-feign-consumer1
│ │ ├── .gitignore
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── pancm
│ │ │ │ ├── App.java
│ │ │ │ ├── fegin
│ │ │ │ ├── CosTestClient.java
│ │ │ │ └── TestClient.java
│ │ │ │ └── web
│ │ │ │ ├── ConfigController.java
│ │ │ │ └── FeignTestController.java
│ │ │ └── resources
│ │ │ ├── application.yml
│ │ │ └── logback.xml
│ └── springcloud-alibaba-nacos-feign-consumer2
│ │ ├── .gitignore
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ ├── App.java
│ │ │ ├── fegin
│ │ │ └── TestClient.java
│ │ │ ├── util
│ │ │ └── CosBootUtil.java
│ │ │ └── web
│ │ │ ├── ConfigController.java
│ │ │ └── FeignTestController.java
│ │ └── resources
│ │ ├── application.yml
│ │ └── logback.xml
├── springcloud-alibaba-nacos
│ ├── .gitignore
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ ├── App.java
│ │ │ └── web
│ │ │ ├── ConfigController.java
│ │ │ └── DiscoveryController.java
│ │ └── resources
│ │ ├── bootstrap.properties
│ │ ├── logback.xml
│ │ └── pcm.properties
├── springcloud-alibaba-seata
│ ├── .gitignore
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ ├── App.java
│ │ │ └── web
│ │ │ ├── ConfigController.java
│ │ │ └── DiscoveryController.java
│ │ └── resources
│ │ ├── bootstrap.properties
│ │ ├── logback.xml
│ │ └── pcm.properties
├── springcloud-alibaba-sentinel
│ ├── .gitignore
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ ├── App.java
│ │ │ └── web
│ │ │ └── HelloController.java
│ │ └── resources
│ │ ├── application.properties
│ │ └── logback.xml
└── springcloud-alibaba-sideca
│ ├── .gitignore
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ └── com
│ │ └── pancm
│ │ ├── App.java
│ │ └── web
│ │ ├── ConfigController.java
│ │ └── DiscoveryController.java
│ └── resources
│ ├── bootstrap.properties
│ ├── logback.xml
│ └── pcm.properties
├── springcloud-config-bus
├── config-repo
│ ├── configtest-dev.properties
│ ├── configtest-pro.properties
│ └── configtest.properties
├── pom.xml
├── springcloud-config-bus-client
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── ConfigClientApplication.java
│ │ │ │ │ └── web
│ │ │ │ │ └── ClientController.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ └── bootstrap.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-bus-client
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ ├── application.properties
│ │ └── bootstrap.properties
├── springcloud-config-bus-client2
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── ConfigClientApplication2.java
│ │ │ │ │ └── web
│ │ │ │ │ └── ClientController.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ └── bootstrap.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-bus-client2
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ ├── application.properties
│ │ └── bootstrap.properties
├── springcloud-config-bus-eureka
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── ConfigBusEurekaApplication.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-bus-eureka
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-config-bus-server
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── ConfigServerApplication.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ └── configtest-pro.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-bus-server
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ ├── application.properties
│ │ └── configtest.properties
└── src
│ └── main
│ └── java
│ └── com
│ └── pancm
│ └── App.java
├── springcloud-config
├── README.md
├── config-repo
│ ├── configtest-dev.properties
│ ├── configtest-pro.properties
│ └── configtest.properties
├── pom.xml
├── springcloud-config-client
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── ConfigClientApplication.java
│ │ │ │ │ └── web
│ │ │ │ │ └── ClientController.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ └── bootstrap.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-client
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ ├── application.properties
│ │ └── bootstrap.properties
├── springcloud-config-eureka
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── ConfigEurekaApplication.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-eureka
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-config-server
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── ConfigServerApplication.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ └── configtest.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-config-server
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ ├── application.properties
│ │ └── configtest.properties
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── pancm
│ │ └── App.java
│ └── test
│ └── java
│ └── com
│ └── pancm
│ └── AppTest.java
├── springcloud-eureka
├── .gitignore
├── README.md
├── pom.xml
├── springboot-eureka-client
│ ├── pom.xml
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── pancm
│ │ │ │ └── App.java
│ │ │ └── resources
│ │ │ └── application.properties
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springboot-eureka-client
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springboot-eureka-server
│ ├── pom.xml
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── pancm
│ │ │ │ └── App.java
│ │ │ └── resources
│ │ │ └── application.properties
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springboot-eureka-server
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springboot-eureka-server2
│ ├── pom.xml
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── pancm
│ │ │ │ └── App.java
│ │ │ └── resources
│ │ │ └── application.properties
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springboot-eureka-server2
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springboot-eureka-server3
│ ├── pom.xml
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── pancm
│ │ │ │ └── App.java
│ │ │ └── resources
│ │ │ └── application.properties
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springboot-eureka-server3
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
└── src
│ └── main
│ └── java
│ └── com
│ └── pancm
│ └── App.java
├── springcloud-feign
├── README.md
├── pom.xml
├── springcloud-feign-consumer
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── FeignConsumerApplication.java
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ │ │ └── remote
│ │ │ │ │ ├── HelloRemote.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-feign-consumer
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-feign-consumer2
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── FeignConsumerApplication2.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-feign-consumer2
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-feign-eureka
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── FeignEurekaApplication.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-feign-eureka
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
└── src
│ └── main
│ └── java
│ └── com
│ └── pancm
│ └── App.java
├── springcloud-hystrix-dashboard
├── README.md
├── pom.xml
├── springcloud-hystrix-dashboard-consumer
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── HystrixDashboardApplication.java
│ │ │ │ │ ├── config
│ │ │ │ │ ├── HystrixServlet.java
│ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ │ │ └── remote
│ │ │ │ │ ├── HelloRemote.java
│ │ │ │ │ ├── HelloRemoteHystrix.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-dashboard-consumer
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-hystrix-dashboard-consumer2
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── HystrixConsumerApplication2.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-dashboard-consumer2
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-hystrix-dashboard-eureka
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── HystrixEurekaApplication.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-dashboard-eureka
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-hystrix-dashboard-turbine
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── HystrixTurbineApplication.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-dashboard-turbine
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── pancm
│ │ └── App.java
│ └── test
│ └── java
│ └── com
│ └── pancm
│ └── AppTest.java
├── springcloud-hystrix
├── README.md
├── pom.xml
├── springcloud-eureka-hystrix
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── HystrixEurekaApplication.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-eureka
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-hystrix-consumer
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── HystrixConsumerApplication.java
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ │ │ └── remote
│ │ │ │ │ ├── HelloRemote.java
│ │ │ │ │ ├── HelloRemoteHystrix.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-consumer
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-hystrix-consumer2
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── HystrixConsumerApplication2.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-hystrix-consumer2
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── pancm
│ │ └── App.java
│ └── test
│ └── java
│ └── com
│ └── pancm
│ └── AppTest.java
├── springcloud-ribbon
├── README.md
├── pom.xml
├── springcloud-ribbon-consumer
│ ├── pom.xml
│ ├── springcloud-ribbon-consumer.iml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── RibbonConsumerApplication.java
│ │ │ │ │ ├── config
│ │ │ │ │ ├── RibbonConfiguration.java
│ │ │ │ │ └── package-info.java
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ │ │ └── remote
│ │ │ │ │ ├── HelloRemote.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-ribbon-consumer
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-ribbon-consumer2
│ ├── pom.xml
│ ├── springcloud-ribbon-consumer2.iml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── RibbonConsumerApplication2.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-ribbon-consumer2
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-ribbon-consumer3
│ ├── pom.xml
│ ├── springcloud-ribbon-consumer3.iml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ ├── RibbonConsumerApplication3.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ConsumerController.java
│ │ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-ribbon-consumer3
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-ribbon-eureka
│ ├── pom.xml
│ ├── springcloud-ribbon-eureka.iml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── pancm
│ │ │ │ │ └── RibbonEurekaApplication.java
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── pancm
│ │ │ └── AppTest.java
│ └── target
│ │ └── classes
│ │ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── 1.0.0
│ │ │ └── springcloud-ribbon-eureka
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ │ └── application.properties
├── springcloud-ribbon.iml
└── src
│ └── main
│ └── java
│ └── com
│ └── pancm
│ └── App.java
├── springcloud-zuul-filter
├── pom.xml
├── springcloud-zuul-filter-eureka
│ ├── pom.xml
│ ├── springclound-zuul-filter-eureka.iml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ └── ZuulEurekaApplication.java
│ │ └── resources
│ │ └── application.properties
├── springcloud-zuul-filter-gateway
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ ├── ZuulApplication.java
│ │ │ ├── fallback
│ │ │ ├── MyFallback.java
│ │ │ └── package-info.java
│ │ │ └── filter
│ │ │ ├── MyErrorFilter.java
│ │ │ ├── MyZuulFilter.java
│ │ │ └── package-info.java
│ │ └── resources
│ │ └── application.properties
├── springcloud-zuul-filter-server1
│ ├── pom.xml
│ ├── springclound-zuul-filter-server1.iml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── pancm
│ │ │ ├── ZuulServerApplication1.java
│ │ │ └── controller
│ │ │ ├── ConsumerController.java
│ │ │ └── package-info.java
│ │ └── resources
│ │ └── application.properties
└── springcloud-zuul-filter-server2
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ └── pancm
│ │ ├── ZuulServerApplication2.java
│ │ └── controller
│ │ ├── ConsumerController.java
│ │ └── package-info.java
│ └── resources
│ └── application.properties
└── springcloud-zuul
├── README.md
├── pom.xml
├── springcloud-zuul-eureka
├── pom.xml
├── springcloud-zuul-eureka.iml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── pancm
│ │ └── ZuulEurekaApplication.java
│ └── resources
│ └── application.properties
├── springcloud-zuul-gateway
├── pom.xml
├── springcloud-zuul-gateway.iml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── pancm
│ │ └── ZuulApplication.java
│ └── resources
│ └── application.properties
├── springcloud-zuul-server1
├── pom.xml
├── springcloud-zuul-server1.iml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── pancm
│ │ ├── ZuulServerApplication1.java
│ │ └── controller
│ │ ├── ConsumerController.java
│ │ └── package-info.java
│ └── resources
│ └── application.properties
├── springcloud-zuul-server2
├── pom.xml
├── springcloud-zuul-server2.iml
└── src
│ └── main
│ ├── java
│ └── pancm
│ │ ├── ZuulServerApplication2.java
│ │ └── controller
│ │ ├── ConsumerController.java
│ │ └── package-info.java
│ └── resources
│ └── application.properties
├── springcloud-zuul.iml
└── src
└── main
└── java
└── com
└── pancm
└── App.java
/.github/workflows/maven.yml:
--------------------------------------------------------------------------------
1 | name: Java CI
2 |
3 | on: [push]
4 |
5 | jobs:
6 | build:
7 |
8 | runs-on: ubuntu-latest
9 |
10 | steps:
11 | - uses: actions/checkout@v1
12 | - name: Set up JDK 1.8
13 | uses: actions/setup-java@v1
14 | with:
15 | java-version: 1.8
16 | - name: Build with Maven
17 | run: mvn -B package --file pom.xml
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xuwujing/springcloud-study/fbf3ce7c334771c3a73b473db1630d19d3764079/.gitignore
--------------------------------------------------------------------------------
/springcloud-alibaba/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/springcloud-alibaba/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-alibaba
2 |
3 | ### 介绍
4 |
5 | > springcloud-alibaba 是一系列组件的集合,它为Spring Cloud提供了许多优秀的补充。
6 | > 它包括Spring Cloud Gateway、Nacos、Sentinel、Seata、Sentinel等。
7 | > 这些组件可以提高Spring Cloud应用程序的性能、可靠性、可扩展性和可管理性。
8 |
9 | 官方文档地址:
10 | https://sca.aliyun.com/zh-cn/docs/2022.0.0.0/overview/what-is-sca
11 |
12 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.boot.SpringApplication;
6 | import org.springframework.boot.autoconfigure.SpringBootApplication;
7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
8 | import org.springframework.cloud.openfeign.EnableFeignClients;
9 |
10 |
11 | /**
12 | * @Author pancm
13 | * @Description springboot集成nacos配置中心
14 | * @Date 2024/1/26
15 | * @Param
16 | * @return
17 | **/
18 | @SpringBootApplication
19 | @EnableDiscoveryClient
20 | @EnableFeignClients
21 | public class App
22 | {
23 | private static final Logger logger = LoggerFactory.getLogger(App.class);
24 | public static void main( String[] args )
25 | {
26 | // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
27 | SpringApplication.run(App.class, args);
28 | logger.info("程序启动成功!");
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/java/com/pancm/fegin/CosTestClient.java:
--------------------------------------------------------------------------------
1 | package com.pancm.fegin;
2 |
3 |
4 | import org.springframework.cloud.openfeign.FeignClient;
5 | import org.springframework.http.MediaType;
6 | import org.springframework.stereotype.Component;
7 | import org.springframework.web.bind.annotation.GetMapping;
8 | import org.springframework.web.bind.annotation.PostMapping;
9 | import org.springframework.web.bind.annotation.RequestParam;
10 | import org.springframework.web.bind.annotation.RequestPart;
11 | import org.springframework.web.multipart.MultipartFile;
12 |
13 | import java.util.Map;
14 |
15 | @FeignClient(value = "gdlh-common")
16 | @Component
17 | public interface CosTestClient {
18 |
19 | @PostMapping(value = "/file/upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
20 | Map upload(@RequestPart("file") MultipartFile file);
21 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/java/com/pancm/fegin/TestClient.java:
--------------------------------------------------------------------------------
1 | package com.pancm.fegin;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.stereotype.Component;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 |
7 | @FeignClient(value = "jeecg-nacos-consumer2")
8 | @Component
9 | public interface TestClient {
10 | @GetMapping(value = "/config/getName")
11 | String getName();
12 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/java/com/pancm/web/ConfigController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.cloud.context.config.annotation.RefreshScope;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
8 |
9 | /**
10 | * @Author pancm
11 | * @Description 官方示例文档
12 | * @Date 2024/1/26
13 | * @Param
14 | * @return
15 | **/
16 | @RestController
17 | @RequestMapping("config")
18 | public class ConfigController {
19 |
20 | @RequestMapping(value = "/getAge", method = GET)
21 | public String getAge() {
22 | return "18";
23 | }
24 |
25 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/java/com/pancm/web/FeignTestController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import com.pancm.fegin.CosTestClient;
4 | import com.pancm.fegin.TestClient;
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.web.bind.annotation.*;
7 | import org.springframework.web.multipart.MultipartFile;
8 |
9 | import java.util.Map;
10 |
11 | /**
12 | * @Author pancm
13 | * @Description
14 | * @Date 2024/1/26
15 | * @Param
16 | * @return
17 | **/
18 | @RestController
19 | @RequestMapping("test")
20 | public class FeignTestController {
21 |
22 | @Autowired
23 | private TestClient testClient;
24 |
25 | @Autowired
26 | private CosTestClient cosTestClient;
27 |
28 | @GetMapping
29 | public String test() {
30 | return testClient.getName();
31 | }
32 |
33 |
34 |
35 | @PostMapping("/upload")
36 | public Map upload(@RequestParam("file") MultipartFile multipartFile) {
37 | return cosTestClient.upload(multipartFile);
38 | }
39 |
40 |
41 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9001
3 |
4 | spring:
5 | application:
6 | # 服务名称
7 | name: springcloud-alibaba-nacos-feign-consumer1
8 | profiles:
9 | active: dev
10 | cloud:
11 | nacos:
12 | config:
13 | server-addr: 127.0.0.1
14 | group: DEFAULT_GROUP
15 | namespace: gdlh
16 | discovery:
17 | server-addr: 127.0.0.1
18 | group: DEFAULT_GROUP
19 | namespace: gdlh
20 | config:
21 | import:
22 | - optional:nacos:pancm.yaml
23 | - optional:nacos:pancm-@profile.name@.yaml
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer1/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
8 |
9 |
10 |
11 |
12 |
13 |
14 | ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
15 |
16 | 10MB
17 | 31
18 | 10GB
19 |
20 |
21 |
22 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer2/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer2/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.boot.SpringApplication;
6 | import org.springframework.boot.autoconfigure.SpringBootApplication;
7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
8 | import org.springframework.cloud.openfeign.EnableFeignClients;
9 |
10 |
11 | /**
12 | * @Author pancm
13 | * @Description springboot集成nacos配置中心
14 | * @Date 2024/1/26
15 | * @Param
16 | * @return
17 | **/
18 | @SpringBootApplication
19 | @EnableDiscoveryClient
20 | @EnableFeignClients
21 | public class App
22 | {
23 | private static final Logger logger = LoggerFactory.getLogger(App.class);
24 | public static void main( String[] args )
25 | {
26 | // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
27 | SpringApplication.run(App.class, args);
28 | logger.info("程序启动成功!");
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer2/src/main/java/com/pancm/fegin/TestClient.java:
--------------------------------------------------------------------------------
1 | package com.pancm.fegin;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.stereotype.Component;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 |
7 | /**
8 | * @Author pancm
9 | * @Description 调用jeecg-nacos-consumer1服务
10 | * @Date 2024/3/12
11 | * @Param
12 | * @return
13 | **/
14 | @FeignClient(value = "jeecg-nacos-consumer1")
15 | @Component
16 | public interface TestClient {
17 | @GetMapping(value = "/config/getAge")
18 | String getAge();
19 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer2/src/main/java/com/pancm/web/FeignTestController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import com.pancm.fegin.TestClient;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import org.springframework.web.bind.annotation.RestController;
8 |
9 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
10 |
11 | /**
12 | * @Author pancm
13 | * @Description
14 | * @Date 2024/1/26
15 | * @Param
16 | * @return
17 | **/
18 | @RestController
19 | @RequestMapping("test")
20 | public class FeignTestController {
21 |
22 | @Autowired
23 | private TestClient testClient;
24 |
25 |
26 | @GetMapping
27 | public String test() {
28 | return testClient.getAge();
29 | }
30 |
31 |
32 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer2/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9002
3 |
4 | spring:
5 | application:
6 | name: springcloud-alibaba-nacos-feign-consumer2
7 | profiles:
8 | active: dev
9 | cloud:
10 | nacos:
11 | config:
12 | server-addr: 127.0.0.1
13 | group: DEFAULT_GROUP
14 | namespace: gdlh
15 | discovery:
16 | server-addr: 127.0.0.1
17 | group: DEFAULT_GROUP
18 | namespace: gdlh
19 | config:
20 | import:
21 | - optional:nacos:pancm.yaml
22 | - optional:nacos:pancm-@profile.name@.yaml
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos-feign/springcloud-alibaba-nacos-feign-consumer2/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
8 |
9 |
10 |
11 |
12 |
13 |
14 | ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
15 |
16 | 10MB
17 | 31
18 | 10GB
19 |
20 |
21 |
22 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.boot.SpringApplication;
6 | import org.springframework.boot.autoconfigure.SpringBootApplication;
7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
8 |
9 |
10 | /**
11 | * @Author pancm
12 | * @Description springboot集成nacos配置中心
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @SpringBootApplication
18 | @EnableDiscoveryClient
19 | public class App
20 | {
21 | private static final Logger logger = LoggerFactory.getLogger(App.class);
22 | public static void main( String[] args )
23 | {
24 | // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
25 | SpringApplication.run(App.class, args);
26 | logger.info("程序启动成功!");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/src/main/java/com/pancm/web/ConfigController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 | import org.springframework.cloud.context.config.annotation.RefreshScope;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
9 |
10 | /**
11 | * @Author pancm
12 | * @Description 官方示例文档
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @RestController
18 | @RequestMapping("config")
19 | @RefreshScope
20 | public class ConfigController {
21 |
22 |
23 |
24 | @Value("${pcm.name:pcm-1001}")
25 | private String name;
26 |
27 | @Value("${pcm.age:18}")
28 | private String age;
29 |
30 |
31 | @RequestMapping(value = "/getAge", method = GET)
32 | public String getAge() {
33 | return age;
34 | }
35 |
36 | @RequestMapping(value = "/getName", method = GET)
37 | public String getName() {
38 | return name;
39 | }
40 |
41 |
42 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/src/main/java/com/pancm/web/DiscoveryController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import com.alibaba.nacos.api.annotation.NacosInjected;
4 | import com.alibaba.nacos.api.exception.NacosException;
5 | import com.alibaba.nacos.api.naming.NamingService;
6 | import com.alibaba.nacos.api.naming.pojo.Instance;
7 | import org.springframework.web.bind.annotation.RequestMapping;
8 | import org.springframework.web.bind.annotation.RequestParam;
9 | import org.springframework.web.bind.annotation.RestController;
10 |
11 | import java.util.List;
12 |
13 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
14 |
15 | @RestController
16 | @RequestMapping("discovery")
17 | public class DiscoveryController {
18 |
19 | @NacosInjected
20 | private NamingService namingService;
21 |
22 | @RequestMapping(value = "/get", method = GET)
23 | public List get(@RequestParam String serviceName) throws NacosException {
24 | return namingService.getAllInstances(serviceName);
25 | }
26 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/src/main/resources/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.banner.charset=UTF-8
2 | server.tomcat.uri-encoding=UTF-8
3 | spring.http.encoding.charset=UTF-8
4 | spring.http.encoding.enabled=true
5 | spring.http.encoding.force=true
6 | spring.messages.encoding=UTF-8
7 | server.port=8299
8 | spring.application.name=springboot-nacos
9 | spring.profiles.active=dev
10 |
11 |
12 | # nacos??
13 | nacos.discovery.autoRegister=true
14 | spring.cloud.nacos.discovery.server-addr= http://127.0.0.1:8848
15 | spring.cloud.nacos.config.server-addr= http://127.0.0.1:8848
16 | spring.cloud.nacos.config.namespace= pcm-namespace--id
17 | spring.cloud.nacos.config.group= dev
18 | spring.cloud.nacos.config.fileExtension= properties
19 |
20 |
21 | # ??????
22 | ##???????????dataId
23 | spring.cloud.nacos.config.extension-configs[0].data-id=pcm-dev.properties
24 | ##?????????????
25 | spring.cloud.nacos.config.extension-configs[0].group=dev
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
8 |
9 |
10 |
11 |
12 |
13 |
14 | ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
15 |
16 | 10MB
17 | 31
18 | 10GB
19 |
20 |
21 |
22 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-nacos/src/main/resources/pcm.properties:
--------------------------------------------------------------------------------
1 | pcm.age = 24
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.boot.SpringApplication;
6 | import org.springframework.boot.autoconfigure.SpringBootApplication;
7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
8 |
9 |
10 | /**
11 | * @Author pancm
12 | * @Description springboot集成nacos配置中心
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @SpringBootApplication
18 | @EnableDiscoveryClient
19 | public class App
20 | {
21 | private static final Logger logger = LoggerFactory.getLogger(App.class);
22 | public static void main( String[] args )
23 | {
24 | // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
25 | SpringApplication.run(App.class, args);
26 | logger.info("程序启动成功!");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/src/main/java/com/pancm/web/ConfigController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 | import org.springframework.cloud.context.config.annotation.RefreshScope;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
9 |
10 | /**
11 | * @Author pancm
12 | * @Description 官方示例文档
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @RestController
18 | @RequestMapping("config")
19 | @RefreshScope
20 | public class ConfigController {
21 |
22 |
23 |
24 | @Value("${pcm.name:pcm-1001}")
25 | private String name;
26 |
27 | @Value("${pcm.age:18}")
28 | private String age;
29 |
30 |
31 | @RequestMapping(value = "/getAge", method = GET)
32 | public String getAge() {
33 | return age;
34 | }
35 |
36 | @RequestMapping(value = "/getName", method = GET)
37 | public String getName() {
38 | return name;
39 | }
40 |
41 |
42 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/src/main/java/com/pancm/web/DiscoveryController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import com.alibaba.nacos.api.annotation.NacosInjected;
4 | import com.alibaba.nacos.api.exception.NacosException;
5 | import com.alibaba.nacos.api.naming.NamingService;
6 | import com.alibaba.nacos.api.naming.pojo.Instance;
7 | import org.springframework.web.bind.annotation.RequestMapping;
8 | import org.springframework.web.bind.annotation.RequestParam;
9 | import org.springframework.web.bind.annotation.RestController;
10 |
11 | import java.util.List;
12 |
13 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
14 |
15 | @RestController
16 | @RequestMapping("discovery")
17 | public class DiscoveryController {
18 |
19 | @NacosInjected
20 | private NamingService namingService;
21 |
22 | @RequestMapping(value = "/get", method = GET)
23 | public List get(@RequestParam String serviceName) throws NacosException {
24 | return namingService.getAllInstances(serviceName);
25 | }
26 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/src/main/resources/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.banner.charset=UTF-8
2 | server.tomcat.uri-encoding=UTF-8
3 | spring.http.encoding.charset=UTF-8
4 | spring.http.encoding.enabled=true
5 | spring.http.encoding.force=true
6 | spring.messages.encoding=UTF-8
7 | server.port=8299
8 | spring.application.name=springboot-nacos
9 | spring.profiles.active=dev
10 |
11 |
12 | # nacos??
13 | nacos.discovery.autoRegister=true
14 | spring.cloud.nacos.discovery.server-addr= http://127.0.0.1:8848
15 | spring.cloud.nacos.config.server-addr= http://127.0.0.1:8848
16 | spring.cloud.nacos.config.namespace= pcm-namespace--id
17 | spring.cloud.nacos.config.group= dev
18 | spring.cloud.nacos.config.fileExtension= properties
19 |
20 |
21 | # ??????
22 | ##???????????dataId
23 | spring.cloud.nacos.config.extension-configs[0].data-id=pcm-dev.properties
24 | ##?????????????
25 | spring.cloud.nacos.config.extension-configs[0].group=dev
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
8 |
9 |
10 |
11 |
12 |
13 |
14 | ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
15 |
16 | 10MB
17 | 31
18 | 10GB
19 |
20 |
21 |
22 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-seata/src/main/resources/pcm.properties:
--------------------------------------------------------------------------------
1 | pcm.age = 24
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sentinel/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sentinel/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.boot.SpringApplication;
6 | import org.springframework.boot.autoconfigure.SpringBootApplication;
7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
8 |
9 |
10 | /**
11 | * @Author pancm
12 | * @Description springboot集成nacos配置中心
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @SpringBootApplication
18 | @EnableDiscoveryClient
19 | public class App
20 | {
21 | private static final Logger logger = LoggerFactory.getLogger(App.class);
22 | public static void main( String[] args )
23 | {
24 | // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
25 | SpringApplication.run(App.class, args);
26 | logger.info("程序启动成功!");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sentinel/src/main/java/com/pancm/web/HelloController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 |
4 |
5 | import com.alibaba.csp.sentinel.annotation.SentinelResource;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import org.springframework.web.bind.annotation.RequestParam;
8 | import org.springframework.web.bind.annotation.RestController;
9 |
10 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
11 |
12 | /**
13 | * @Author pancm
14 | * @Description 官方示例文档
15 | * @Date 2024/1/26
16 | * @Param
17 | * @return
18 | **/
19 | @RestController
20 | @RequestMapping("hello")
21 | public class HelloController {
22 |
23 |
24 |
25 |
26 |
27 | @RequestMapping(value = "/say", method = GET)
28 | @SentinelResource("hello")
29 | public String say(@RequestParam String name) {
30 | return "say "+name+ " hello !";
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sentinel/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.banner.charset=UTF-8
2 | server.tomcat.uri-encoding=UTF-8
3 | spring.http.encoding.charset=UTF-8
4 | spring.http.encoding.enabled=true
5 | spring.http.encoding.force=true
6 | spring.messages.encoding=UTF-8
7 | server.port=8301
8 | spring.application.name=springcloud-alibaba-sentinel
9 | spring.profiles.active=dev
10 | ### 控制台地址
11 | spring.sentinel.transport.port= 8719
12 | spring.sentinel.transport.dashboard= localhost:8888
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sentinel/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
8 |
9 |
10 |
11 |
12 |
13 |
14 | ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
15 |
16 | 10MB
17 | 31
18 | 10GB
19 |
20 |
21 |
22 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.boot.SpringApplication;
6 | import org.springframework.boot.autoconfigure.SpringBootApplication;
7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
8 |
9 |
10 | /**
11 | * @Author pancm
12 | * @Description springboot集成nacos配置中心
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @SpringBootApplication
18 | @EnableDiscoveryClient
19 | public class App
20 | {
21 | private static final Logger logger = LoggerFactory.getLogger(App.class);
22 | public static void main( String[] args )
23 | {
24 | // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
25 | SpringApplication.run(App.class, args);
26 | logger.info("程序启动成功!");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/src/main/java/com/pancm/web/ConfigController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 | import org.springframework.cloud.context.config.annotation.RefreshScope;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
9 |
10 | /**
11 | * @Author pancm
12 | * @Description 官方示例文档
13 | * @Date 2024/1/26
14 | * @Param
15 | * @return
16 | **/
17 | @RestController
18 | @RequestMapping("config")
19 | @RefreshScope
20 | public class ConfigController {
21 |
22 |
23 |
24 | @Value("${pcm.name:pcm-1001}")
25 | private String name;
26 |
27 | @Value("${pcm.age:18}")
28 | private String age;
29 |
30 |
31 | @RequestMapping(value = "/getAge", method = GET)
32 | public String getAge() {
33 | return age;
34 | }
35 |
36 | @RequestMapping(value = "/getName", method = GET)
37 | public String getName() {
38 | return name;
39 | }
40 |
41 |
42 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/src/main/java/com/pancm/web/DiscoveryController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import com.alibaba.nacos.api.annotation.NacosInjected;
4 | import com.alibaba.nacos.api.exception.NacosException;
5 | import com.alibaba.nacos.api.naming.NamingService;
6 | import com.alibaba.nacos.api.naming.pojo.Instance;
7 | import org.springframework.web.bind.annotation.RequestMapping;
8 | import org.springframework.web.bind.annotation.RequestParam;
9 | import org.springframework.web.bind.annotation.RestController;
10 |
11 | import java.util.List;
12 |
13 | import static org.springframework.web.bind.annotation.RequestMethod.GET;
14 |
15 | @RestController
16 | @RequestMapping("discovery")
17 | public class DiscoveryController {
18 |
19 | @NacosInjected
20 | private NamingService namingService;
21 |
22 | @RequestMapping(value = "/get", method = GET)
23 | public List get(@RequestParam String serviceName) throws NacosException {
24 | return namingService.getAllInstances(serviceName);
25 | }
26 | }
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/src/main/resources/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.banner.charset=UTF-8
2 | server.tomcat.uri-encoding=UTF-8
3 | spring.http.encoding.charset=UTF-8
4 | spring.http.encoding.enabled=true
5 | spring.http.encoding.force=true
6 | spring.messages.encoding=UTF-8
7 | server.port=8299
8 | spring.application.name=springboot-nacos
9 | spring.profiles.active=dev
10 |
11 |
12 | # nacos??
13 | nacos.discovery.autoRegister=true
14 | spring.cloud.nacos.discovery.server-addr= http://127.0.0.1:8848
15 | spring.cloud.nacos.config.server-addr= http://127.0.0.1:8848
16 | spring.cloud.nacos.config.namespace= pcm-namespace--id
17 | spring.cloud.nacos.config.group= dev
18 | spring.cloud.nacos.config.fileExtension= properties
19 |
20 |
21 | # ??????
22 | ##???????????dataId
23 | spring.cloud.nacos.config.extension-configs[0].data-id=pcm-dev.properties
24 | ##?????????????
25 | spring.cloud.nacos.config.extension-configs[0].group=dev
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
8 |
9 |
10 |
11 |
12 |
13 |
14 | ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
15 |
16 | 10MB
17 | 31
18 | 10GB
19 |
20 |
21 |
22 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/springcloud-alibaba/springcloud-alibaba-sideca/src/main/resources/pcm.properties:
--------------------------------------------------------------------------------
1 | pcm.age = 24
--------------------------------------------------------------------------------
/springcloud-config-bus/config-repo/configtest-dev.properties:
--------------------------------------------------------------------------------
1 | word=hello world!
--------------------------------------------------------------------------------
/springcloud-config-bus/config-repo/configtest-pro.properties:
--------------------------------------------------------------------------------
1 | word=hello world!!
--------------------------------------------------------------------------------
/springcloud-config-bus/config-repo/configtest.properties:
--------------------------------------------------------------------------------
1 | word=hello world
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/src/main/java/com/pancm/ConfigClientApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 |
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 |
8 | /**
9 | *
10 | * @Title: Application
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient 表示该项目就具有了服务注册的功能
14 | * @Version:1.0.0
15 | * @author pancm
16 | * @date 2018年3月29日
17 | */
18 | @EnableDiscoveryClient
19 | @SpringBootApplication
20 | public class ConfigClientApplication {
21 |
22 | public static void main(String[] args) {
23 | SpringApplication.run(ConfigClientApplication.class, args);
24 | System.out.println("配置中心客户端启动成功!");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/src/main/java/com/pancm/web/ClientController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 | import org.springframework.cloud.context.config.annotation.RefreshScope;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RequestParam;
7 | import org.springframework.web.bind.annotation.RestController;
8 |
9 | /**
10 | *
11 | * @Title: ClientController
12 | * @Description: springboot 接口测试
13 | * 首先启动 Application 程序,然后在浏览器输入http://localhost:9006//hello?name=pancm
14 | * 即可查看信息
15 | * 在类中添加 @RestController, 默认类中的方法都会以json的格式返回
16 | RefreshScope: 该注解表示在接到SpringCloud配置中心配置刷新的时候,自动将新的配置更新到该类对应的字段中
17 | 不过需要手动刷新,使用POST方式请求该地址就会生效:http://localhost:9006/actuator/refresh
18 | * @Version:1.0.0
19 | * @author pancm
20 | * @date 2018年1月3日
21 | */
22 | @RestController
23 | @RefreshScope
24 | public class ClientController {
25 |
26 | @Value("${word}")
27 | private String word;
28 |
29 | @RequestMapping("/hello")
30 | public String index(@RequestParam String name) {
31 | return name+","+this.word;
32 | }
33 | }
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-config-bus-client
2 | server.port=9006
3 |
4 | # 不启用安全验证 springboot 1.x使用
5 | # management.security.enabled=false
6 | # 暴露refresh接入点 springboot 2.x使用
7 | management.endpoints.web.exposure.include=refresh
8 |
9 | ## bus
10 | #spring.cloud.config.failFast=true
11 |
12 | #spring.cloud.bus.trace.enabled = true
13 |
14 | #spring.rabbitmq.host:127.0.0.1
15 | #spring.rabbitmq.port:5672
16 | #spring.rabbitmq.username:guest
17 | #spring.rabbitmq.password:guest
18 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/src/main/resources/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.cloud.config.name=configtest
2 | spring.cloud.config.profile=pro
3 | spring.cloud.config.label=master
4 | spring.cloud.config.discovery.enabled=true
5 | spring.cloud.config.discovery.serviceId=springcloud-config-bus-server
6 |
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-bus-client
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/target/classes/META-INF/maven/1.0.0/springcloud-config-bus-client/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Mon Mar 25 17:39:59 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-bus-client
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config-bus\\springcloud-config-bus-client
7 | artifactId=springcloud-config-bus-client
8 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/target/classes/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-config-bus-client
2 | server.port=9006
3 |
4 | # 不启用安全验证 springboot 1.x使用
5 | # management.security.enabled=false
6 | # 暴露refresh接入点 springboot 2.x使用
7 | management.endpoints.web.exposure.include=refresh
8 |
9 | ## bus
10 | #spring.cloud.config.failFast=true
11 |
12 | #spring.cloud.bus.trace.enabled = true
13 |
14 | #spring.rabbitmq.host:127.0.0.1
15 | #spring.rabbitmq.port:5672
16 | #spring.rabbitmq.username:guest
17 | #spring.rabbitmq.password:guest
18 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client/target/classes/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.cloud.config.name=configtest
2 | spring.cloud.config.profile=pro
3 | spring.cloud.config.label=master
4 | spring.cloud.config.discovery.enabled=true
5 | spring.cloud.config.discovery.serviceId=springcloud-config-bus-server
6 |
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/src/main/java/com/pancm/ConfigClientApplication2.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 |
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 |
8 | /**
9 | *
10 | * @Title: Application
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient 表示该项目就具有了服务注册的功能
14 | * @Version:1.0.0
15 | * @author pancm
16 | * @date 2018年3月29日
17 | */
18 | @EnableDiscoveryClient
19 | @SpringBootApplication
20 | public class ConfigClientApplication2 {
21 |
22 | public static void main(String[] args) {
23 | SpringApplication.run(ConfigClientApplication2.class, args);
24 | System.out.println("配置中心第二个客户端启动成功!");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/src/main/java/com/pancm/web/ClientController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 | import org.springframework.cloud.context.config.annotation.RefreshScope;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RequestParam;
7 | import org.springframework.web.bind.annotation.RestController;
8 |
9 | /**
10 | *
11 | * @Title: ClientController
12 | * @Description: springboot 接口测试
13 | * 首先启动 Application 程序,然后在浏览器输入http://localhost:9006//hello?name=pancm
14 | * 即可查看信息
15 | * 在类中添加 @RestController, 默认类中的方法都会以json的格式返回
16 | RefreshScope: 该注解表示在接到SpringCloud配置中心配置刷新的时候,自动将新的配置更新到该类对应的字段中
17 | 不过需要手动刷新,使用POST方式请求该地址就会生效:http://localhost:9006/actuator/refresh
18 | * @Version:1.0.0
19 | * @author pancm
20 | * @date 2018年1月3日
21 | */
22 | @RestController
23 | @RefreshScope
24 | public class ClientController {
25 |
26 | @Value("${word}")
27 | private String word;
28 |
29 | @RequestMapping("/hello")
30 | public String index(@RequestParam String name) {
31 | return name+","+this.word;
32 | }
33 | }
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-config-bus-client2
2 | server.port=9007
3 |
4 | # 不启用安全验证 springboot 1.x使用
5 | # management.security.enabled=false
6 | # 暴露refresh接入点 springboot 2.x使用
7 | management.endpoints.web.exposure.include=refresh
8 |
9 | ## bus
10 | spring.cloud.config.failFast=true
11 |
12 | spring.cloud.bus.trace.enabled = true
13 |
14 | spring.rabbitmq.host:127.0.0.1
15 | spring.rabbitmq.port:5672
16 | spring.rabbitmq.username:guest
17 | spring.rabbitmq.password:guest
18 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/src/main/resources/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.cloud.config.name=configtest
2 | spring.cloud.config.profile=pro
3 | spring.cloud.config.label=master
4 | spring.cloud.config.discovery.enabled=true
5 | spring.cloud.config.discovery.serviceId=springcloud-config-bus-server
6 |
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-bus-client2
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/target/classes/META-INF/maven/1.0.0/springcloud-config-bus-client2/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Tue Mar 26 14:04:46 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-bus-client2
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config-bus\\springcloud-config-bus-client2
7 | artifactId=springcloud-config-bus-client2
8 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/target/classes/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-config-bus-client2
2 | server.port=9007
3 |
4 | # 不启用安全验证 springboot 1.x使用
5 | # management.security.enabled=false
6 | # 暴露refresh接入点 springboot 2.x使用
7 | management.endpoints.web.exposure.include=refresh
8 |
9 | ## bus
10 | spring.cloud.config.failFast=true
11 |
12 | spring.cloud.bus.trace.enabled = true
13 |
14 | spring.rabbitmq.host:127.0.0.1
15 | spring.rabbitmq.port:5672
16 | spring.rabbitmq.username:guest
17 | spring.rabbitmq.password:guest
18 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-client2/target/classes/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.cloud.config.name=configtest
2 | spring.cloud.config.profile=pro
3 | spring.cloud.config.label=master
4 | spring.cloud.config.discovery.enabled=true
5 | spring.cloud.config.discovery.serviceId=springcloud-config-bus-server
6 |
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config-bus
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-bus-eureka
11 | springcloud-config-bus-eureka
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 | org.springframework.cloud
19 | spring-cloud-starter-netflix-eureka-server
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/src/main/java/com/pancm/ConfigBusEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: ConfigEurekaApplication
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @SpringBootApplication
18 | @EnableEurekaServer
19 | public class ConfigBusEurekaApplication {
20 |
21 | public static void main(String[] args) {
22 | SpringApplication.run(ConfigBusEurekaApplication.class, args);
23 | System.out.println("config bus 注册中心服务启动...");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-bus-eureka
3 |
4 | server.port=8006
5 | ## 表示是否将自己注册到Eureka Server,默认为true。
6 | eureka.client.register-with-eureka=false
7 | ## 表示是否从Eureka Server获取注册信息,默认为true。
8 | eureka.client.fetch-registry=false
9 |
10 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
11 | eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
12 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-bus-eureka
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/target/classes/META-INF/maven/1.0.0/springcloud-config-bus-eureka/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Tue Mar 26 08:34:50 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-bus-eureka
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config-bus\\springcloud-config-bus-eureka
7 | artifactId=springcloud-config-bus-eureka
8 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/target/classes/META-INF/maven/1.0.0/springcloud-config-bus-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config-bus
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-bus-eureka
11 | springcloud-config-bus-eureka
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 | org.springframework.cloud
19 | spring-cloud-starter-netflix-eureka-server
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-eureka/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-bus-eureka
3 |
4 | server.port=8006
5 | ## 表示是否将自己注册到Eureka Server,默认为true。
6 | eureka.client.register-with-eureka=false
7 | ## 表示是否从Eureka Server获取注册信息,默认为true。
8 | eureka.client.fetch-registry=false
9 |
10 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
11 | eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
12 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/src/main/java/com/pancm/ConfigServerApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 |
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 | import org.springframework.cloud.config.server.EnableConfigServer;
8 | /**
9 | *
10 | * @Title: ConfigServerApplication
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient: 启用服务注册与发现
14 | EnableConfigServer: 启用config配置中心
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @EnableDiscoveryClient
20 | @EnableConfigServer
21 | @SpringBootApplication
22 | public class ConfigServerApplication {
23 |
24 | public static void main(String[] args) {
25 | SpringApplication.run(ConfigServerApplication.class, args);
26 | System.out.println("配置中心服务端启动成功!");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-bus-server
3 |
4 | server.port=9005
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
8 |
9 | ## 读取本地文件
10 | spring.profiles.active=native
11 |
12 |
13 | ## 读取git的路径
14 | # git仓库的地址
15 | spring.cloud.config.server.git.uri = https://github.com/xuwujing/springcloud-study/
16 | # git仓库地址下的相对地址 多个用逗号","分割
17 | spring.cloud.config.server.git.search-paths = /springcloud-config-bus/config-repo
18 | # git仓库的账号
19 | spring.cloud.config.server.git.username =
20 | # git仓库的密码
21 | spring.cloud.config.server.git.password =
22 |
23 | # management.endpoints.web.exposure.include: bus-refresh
24 | management.endpoints.web.exposure.include=bus-refresh
25 | ## bus
26 |
27 | spring.cloud.bus.enabled = true
28 | # 失败快速响应
29 | spring.cloud.bus.trace.enabled = true
30 |
31 | spring.rabbitmq.host:127.0.0.1
32 | spring.rabbitmq.port:5672
33 | spring.rabbitmq.username:guest
34 | spring.rabbitmq.password:guest
35 |
36 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/src/main/resources/configtest-pro.properties:
--------------------------------------------------------------------------------
1 | word=hello!!!
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-bus-server
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/target/classes/META-INF/maven/1.0.0/springcloud-config-bus-server/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Mon Mar 25 17:40:00 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-bus-server
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config-bus\\springcloud-config-bus-server
7 | artifactId=springcloud-config-bus-server
8 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-bus-server
3 |
4 | server.port=9005
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
8 |
9 | ## 读取本地文件
10 | spring.profiles.active=native
11 |
12 |
13 | ## 读取git的路径
14 | # git仓库的地址
15 | # spring.cloud.config.server.git.uri = https://github.com/xuwujing/springcloud-study/
16 | # git仓库地址下的相对地址 多个用逗号","分割
17 | # spring.cloud.config.server.git.search-paths = /springcloud-config/config-repo
18 | # git仓库的账号
19 | # spring.cloud.config.server.git.username =
20 | # git仓库的密码
21 | # spring.cloud.config.server.git.password =
22 |
23 | management.endpoints.web.exposure.include: bus-refresh
24 | ## bus
25 |
26 | spring.cloud.bus.enabled = true
27 | # 失败快速响应
28 | spring.cloud.bus.trace.enabled = true
29 |
30 | spring.rabbitmq.host:127.0.0.1
31 | spring.rabbitmq.port:5672
32 | spring.rabbitmq.username:guest
33 | spring.rabbitmq.password:guest
34 |
35 |
--------------------------------------------------------------------------------
/springcloud-config-bus/springcloud-config-bus-server/target/classes/configtest.properties:
--------------------------------------------------------------------------------
1 | word=hello world!!!
--------------------------------------------------------------------------------
/springcloud-config-bus/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-config/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-config
2 |
3 | ### 介绍
4 |
5 | > Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据、并依据此数据初始化自己的应用。
6 |
7 |
8 | ### 使用
9 |
10 |
11 | 依次运行 springcloud-config-eureka、springcloud-config-server和springcloud-config-config。启动成功之后,在浏览器输入 `http://localhost:8005/` 进行查看相关信息!
12 |
13 |
14 | **本地配置文件读取测试**
15 |
16 | 在 springcloud-config-server项目中的**application.properties** 将 `spring.profiles.active=native` 该配置的注释解开,然后启动程序。
17 |
18 | 启动成功之后在浏览器输入:
19 | > http://localhost:9005/configtest/word
20 |
21 | 即可查看配置的读取信息!
22 |
23 | **Git配置文件读取测试**
24 |
25 | 在 `springcloud-config-server`项目中的**application.properties** 将 `spring.cloud.config.server.git` 配置的信息填写完成,然后启动程序。
26 |
27 | 启动成功之后在浏览器输入:
28 | > http://localhost:9005/configtest/word
29 |
30 | 或
31 |
32 | > http://localhost:9005/configtest-pro.properties
33 |
34 | 即可查看配置的读取信息!
35 |
36 |
37 |
38 | **客户端配置文件读取测试**
39 |
40 | 启动 `springcloud-config-config` 程序后,在浏览器输入:
41 |
42 | > http://localhost:9006/hello?name=pancm
43 |
44 | 即可查看客户端读取配置中心的配置!
--------------------------------------------------------------------------------
/springcloud-config/config-repo/configtest-dev.properties:
--------------------------------------------------------------------------------
1 | word=hello world!
--------------------------------------------------------------------------------
/springcloud-config/config-repo/configtest-pro.properties:
--------------------------------------------------------------------------------
1 | word=hello world!!
--------------------------------------------------------------------------------
/springcloud-config/config-repo/configtest.properties:
--------------------------------------------------------------------------------
1 | word=hello world
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-client
11 | springcloud-config-client
12 | http://maven.apache.org
13 |
14 |
15 |
16 |
17 | org.springframework.boot
18 | spring-boot-starter-web
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-client
23 |
24 |
25 | org.springframework.cloud
26 | spring-cloud-starter-config
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | org.springframework.boot
35 | spring-boot-maven-plugin
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/src/main/java/com/pancm/ConfigClientApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 |
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 |
8 | /**
9 | *
10 | * @Title: Application
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient 表示该项目就具有了服务注册的功能
14 | * @Version:1.0.0
15 | * @author pancm
16 | * @date 2018年3月29日
17 | */
18 | @EnableDiscoveryClient
19 | @SpringBootApplication
20 | public class ConfigClientApplication {
21 |
22 | public static void main(String[] args) {
23 | SpringApplication.run(ConfigClientApplication.class, args);
24 | System.out.println("配置中心客户端启动成功!");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/src/main/java/com/pancm/web/ClientController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.web;
2 |
3 | import org.springframework.beans.factory.annotation.Value;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RequestParam;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | /**
9 | *
10 | * @Title: ClientController
11 | * @Description: springboot 接口测试
12 | * 首先启动 Application 程序,然后在浏览器输入http://localhost:9006//hello?name=pancm
13 | * 即可查看信息
14 | * 在类中添加 @RestController, 默认类中的方法都会以json的格式返回
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年1月3日
18 | */
19 | @RestController
20 | public class ClientController {
21 |
22 | @Value("${word}")
23 | private String word;
24 |
25 | @RequestMapping("/hello")
26 | public String index(@RequestParam String name) {
27 | return name+","+this.word;
28 | }
29 | }
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-config-client
2 | server.port=9006
3 |
4 |
5 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/src/main/resources/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.cloud.config.name=configtest
2 | spring.cloud.config.profile=pro
3 | spring.cloud.config.label=master
4 | spring.cloud.config.discovery.enabled=true
5 | spring.cloud.config.discovery.serviceId=springcloud-config-server
6 |
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/
8 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-client
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/target/classes/META-INF/maven/1.0.0/springcloud-config-client/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Jan 04 09:33:40 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-client
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config\\springcloud-config-client
7 | artifactId=springcloud-config-client
8 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/target/classes/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-config-client
2 | server.port=9006
3 |
4 |
5 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-client/target/classes/bootstrap.properties:
--------------------------------------------------------------------------------
1 | spring.cloud.config.name=configtest
2 | spring.cloud.config.profile=pro
3 | spring.cloud.config.label=master
4 | spring.cloud.config.discovery.enabled=true
5 | spring.cloud.config.discovery.serviceId=springcloud-config-server
6 |
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-eureka
11 | springcloud-config-eureka
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 | org.springframework.cloud
19 | spring-cloud-starter-netflix-eureka-server
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/src/main/java/com/pancm/ConfigEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: ConfigEurekaApplication
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @SpringBootApplication
18 | @EnableEurekaServer
19 | public class ConfigEurekaApplication {
20 |
21 | public static void main(String[] args) {
22 | SpringApplication.run(ConfigEurekaApplication.class, args);
23 | System.out.println("config 注册中心服务启动...");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-eureka
3 |
4 | server.port=8005
5 | ## 表示是否将自己注册到Eureka Server,默认为true。
6 | eureka.client.register-with-eureka=false
7 | ## 表示是否从Eureka Server获取注册信息,默认为true。
8 | eureka.client.fetch-registry=false
9 |
10 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
11 | eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
12 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-eureka
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/target/classes/META-INF/maven/1.0.0/springcloud-config-eureka/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Jan 04 09:14:30 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-eureka
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config\\springcloud-config-eureka
7 | artifactId=springcloud-config-eureka
8 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/target/classes/META-INF/maven/1.0.0/springcloud-config-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-eureka
11 | springcloud-config-eureka
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 | org.springframework.cloud
19 | spring-cloud-starter-netflix-eureka-server
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-eureka/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-eureka
3 |
4 | server.port=8005
5 | ## 表示是否将自己注册到Eureka Server,默认为true。
6 | eureka.client.register-with-eureka=false
7 | ## 表示是否从Eureka Server获取注册信息,默认为true。
8 | eureka.client.fetch-registry=false
9 |
10 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
11 | eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
12 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-server
11 | springcloud-config-server
12 | http://maven.apache.org
13 |
14 |
15 | org.springframework.cloud
16 | spring-cloud-config-server
17 |
18 |
19 | org.springframework.cloud
20 | spring-cloud-starter-netflix-eureka-server
21 |
22 |
23 |
24 |
25 |
26 |
27 | org.springframework.boot
28 | spring-boot-maven-plugin
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/src/main/java/com/pancm/ConfigServerApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 |
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 | import org.springframework.cloud.config.server.EnableConfigServer;
8 | /**
9 | *
10 | * @Title: ConfigServerApplication
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient: 启用服务注册与发现
14 | EnableConfigServer: 启用config配置中心
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @EnableDiscoveryClient
20 | @EnableConfigServer
21 | @SpringBootApplication
22 | public class ConfigServerApplication {
23 |
24 | public static void main(String[] args) {
25 | SpringApplication.run(ConfigServerApplication.class, args);
26 | System.out.println("配置中心服务端启动成功!");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-server
3 |
4 | server.port=9005
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/
8 |
9 | ## 读取本地文件
10 | # spring.profiles.active=native
11 |
12 |
13 | ## 读取git的路径
14 | # git仓库的地址
15 | spring.cloud.config.server.git.uri = https://github.com/xuwujing/springcloud-study/
16 | # git仓库地址下的相对地址 多个用逗号","分割
17 | spring.cloud.config.server.git.search-paths = /springcloud-config/config-repo
18 | # git仓库的账号
19 | spring.cloud.config.server.git.username =
20 | # git仓库的密码
21 | spring.cloud.config.server.git.password =
22 |
23 |
24 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/src/main/resources/configtest.properties:
--------------------------------------------------------------------------------
1 | word=hello world
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-config-server
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/target/classes/META-INF/maven/1.0.0/springcloud-config-server/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Jan 04 10:10:12 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-config-server
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-config\\springcloud-config-server
7 | artifactId=springcloud-config-server
8 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/target/classes/META-INF/maven/1.0.0/springcloud-config-server/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-config
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-config-server
11 | springcloud-config-server
12 | http://maven.apache.org
13 |
14 |
15 | org.springframework.cloud
16 | spring-cloud-config-server
17 |
18 |
19 | org.springframework.cloud
20 | spring-cloud-starter-netflix-eureka-server
21 |
22 |
23 |
24 |
25 |
26 |
27 | org.springframework.boot
28 | spring-boot-maven-plugin
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-config-server
3 |
4 | server.port=9005
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/
8 |
9 | ## 读取本地文件
10 | # spring.profiles.active=native
11 |
12 |
13 | ## 读取git的路径
14 | # git仓库的地址
15 | spring.cloud.config.server.git.uri = https://github.com/xuwujing/springcloud-study/
16 | # git仓库地址下的相对地址 多个用逗号","分割
17 | spring.cloud.config.server.git.search-paths = /springcloud-config/config-repo
18 | # git仓库的账号
19 | spring.cloud.config.server.git.username =
20 | # git仓库的密码
21 | spring.cloud.config.server.git.password =
22 |
23 |
24 |
--------------------------------------------------------------------------------
/springcloud-config/springcloud-config-server/target/classes/configtest.properties:
--------------------------------------------------------------------------------
1 | word=hello world
--------------------------------------------------------------------------------
/springcloud-config/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-config/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-eureka/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xuwujing/springcloud-study/fbf3ce7c334771c3a73b473db1630d19d3764079/springcloud-eureka/.gitignore
--------------------------------------------------------------------------------
/springcloud-eureka/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-eureka
2 |
3 | ### 介绍
4 |
5 | > Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是springcloud体系中最重要最核心的组件之一。
6 |
7 |
8 | ### 使用
9 |
10 |
11 | 先运行 springboot-eureka-server 项目,启动成功之后在浏览器输入 `http://localhost:8000/` 即可查看springcloud界面。然后在启动springboot-eureka-client 项目,刷新界面,在` Instances currently registered with Eureka` 查看该服务信息。
12 |
13 |
14 | ### 高可用注册中心使用
15 |
16 | 在当前的系统的host文件中添加如下配置:
17 |
18 | 127.0.0.1 server2
19 | 127.0.0.1 server3
20 |
21 |
22 | **hosts文件地址:**
23 |
24 | Windows 系统地址:`C:\Windows\System32\drivers\etc\hosts`
25 |
26 | Linux系统地址: `/etc/hosts`
27 |
28 |
29 | 配置完成之后,启动`springboot-eureka-server2`和`springboot-eureka-server3`这两个服务,然后在浏览器输入:
30 | `http://server2:8002/`
31 | 或
32 | `http://server3:8003/`
33 | 即可查看信息.
34 |
35 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-client/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description: 程序入口 EnableDiscoveryClient 表示该项目就具有了服务注册的功能
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class App {
18 |
19 | public static void main(String[] args) {
20 | SpringApplication.run(App.class, args);
21 | System.out.println("客户端服务启动...");
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-client/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-client
3 | server.port=9001
4 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
5 | eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
6 |
7 |
8 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-client/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springboot-eureka-client
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-client/target/classes/META-INF/maven/1.0.0/springboot-eureka-client/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Thu Dec 20 16:17:45 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springboot-eureka-client
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-eureka\\springboot-eureka-client
7 | artifactId=springboot-eureka-client
8 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-client/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springboot-eureka-client
3 | server.port=9001
4 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
5 | eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
6 |
7 |
8 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | 4.0.0
7 |
8 | 1.0.0
9 | springcloud-eureka
10 | 0.0.1-SNAPSHOT
11 |
12 |
13 | springboot-eureka-server
14 | springboot-eureka-server
15 | http://maven.apache.org
16 |
17 | UTF-8
18 |
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-server
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | 在浏览器输入http://localhost:8000 即可查看相关信息
14 | * @Version:1.0.0
15 | * @author pancm
16 | * @date 2018年3月29日
17 | */
18 | @EnableEurekaServer
19 | @SpringBootApplication
20 | public class App {
21 | public static void main(String[] args) {
22 | SpringApplication.run(App.class, args);
23 | System.out.println("注册中心服务启动...");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8000
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springboot-eureka-server
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/target/classes/META-INF/maven/1.0.0/springboot-eureka-server/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Thu Dec 20 16:17:47 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springboot-eureka-server
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-eureka\\springboot-eureka-server
7 | artifactId=springboot-eureka-server
8 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/target/classes/META-INF/maven/1.0.0/springboot-eureka-server/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | 4.0.0
7 |
8 | 1.0.0
9 | springcloud-eureka
10 | 0.0.1-SNAPSHOT
11 |
12 |
13 | springboot-eureka-server
14 | springboot-eureka-server
15 | http://maven.apache.org
16 |
17 | UTF-8
18 |
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-server
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springboot-eureka-server
3 |
4 | server.port=8000
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | 4.0.0
7 |
8 | 1.0.0
9 | springcloud-eureka
10 | 0.0.1-SNAPSHOT
11 |
12 |
13 | springboot-eureka-server2
14 | springboot-eureka-server2
15 | http://maven.apache.org
16 |
17 | UTF-8
18 |
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-server
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @EnableEurekaServer
17 | @SpringBootApplication
18 | public class App {
19 | public static void main(String[] args) {
20 | SpringApplication.run(App.class, args);
21 | System.out.println("第二个注册中心服务启动...");
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8002
5 | eureka.instance.hostname = server2
6 |
7 | ## 这里设置另一个Eureka Server交互的地址,如果是多个就通过 ","逗号隔开
8 | eureka.client.serviceUrl.defaultZone=http://server3:8003/eureka/
9 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springboot-eureka-server2
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/target/classes/META-INF/maven/1.0.0/springboot-eureka-server2/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Jan 11 16:04:26 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springboot-eureka-server2
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-eureka\\springboot-eureka-server2
7 | artifactId=springboot-eureka-server2
8 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/target/classes/META-INF/maven/1.0.0/springboot-eureka-server2/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | 4.0.0
7 |
8 | 1.0.0
9 | springcloud-eureka
10 | 0.0.1-SNAPSHOT
11 |
12 |
13 | springboot-eureka-server2
14 | springboot-eureka-server2
15 | http://maven.apache.org
16 |
17 | UTF-8
18 |
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-server
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server2/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8002
5 | eureka.instance.hostname = server2
6 |
7 | ## 这里设置另一个Eureka Server交互的地址,如果是多个就通过 ","逗号隔开
8 | eureka.client.serviceUrl.defaultZone=http://server3:8003/eureka/
9 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | 4.0.0
7 |
8 | 1.0.0
9 | springcloud-eureka
10 | 0.0.1-SNAPSHOT
11 |
12 |
13 | springboot-eureka-server3
14 | springboot-eureka-server3
15 | http://maven.apache.org
16 |
17 | UTF-8
18 |
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-server
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @EnableEurekaServer
17 | @SpringBootApplication
18 | public class App {
19 | public static void main(String[] args) {
20 | SpringApplication.run(App.class, args);
21 | System.out.println("第三个注册中心服务启动...");
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8003
5 | eureka.instance.hostname = server3
6 |
7 | ## 这里设置另一个Eureka Server交互的地址,如果是多个就通过 ","逗号隔开
8 | eureka.client.serviceUrl.defaultZone=http://server2:8002/eureka/
9 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springboot-eureka-server3
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/target/classes/META-INF/maven/1.0.0/springboot-eureka-server3/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Jan 11 16:04:47 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springboot-eureka-server3
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-eureka\\springboot-eureka-server3
7 | artifactId=springboot-eureka-server3
8 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/target/classes/META-INF/maven/1.0.0/springboot-eureka-server3/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | 4.0.0
7 |
8 | 1.0.0
9 | springcloud-eureka
10 | 0.0.1-SNAPSHOT
11 |
12 |
13 | springboot-eureka-server3
14 | springboot-eureka-server3
15 | http://maven.apache.org
16 |
17 | UTF-8
18 |
19 |
20 |
21 | org.springframework.cloud
22 | spring-cloud-starter-netflix-eureka-server
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/springcloud-eureka/springboot-eureka-server3/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8003
5 | eureka.instance.hostname = server3
6 |
7 | ## 这里设置另一个Eureka Server交互的地址,如果是多个就通过 ","逗号隔开
8 | eureka.client.serviceUrl.defaultZone=http://server2:8002/eureka/
9 |
--------------------------------------------------------------------------------
/springcloud-eureka/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-feign/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-feign
2 |
3 | ### 介绍
4 |
5 | > Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
6 |
7 |
8 | ### 使用
9 |
10 |
11 | 依次运行 springcloud-feign-eureka、springcloud-feign-consumer和springcloud-feign-consumer2项目。启动成功之后,在浏览器输入 `http://localhost:8001/` 进行查看相关信息!
12 |
13 |
14 | **服务调用测试**
15 |
16 |
17 | 启动成功之后在浏览器先输入:
18 | > http://localhost:9003/hello?name=pancm
19 |
20 | 查询是否能够成功启动,
21 | 然后再输入:
22 | > http://localhost:9002/hello/pancm
23 |
24 | 返回结果:
25 |
26 | pancm,Hello World
27 | pancm,Hello World
28 |
29 |
30 | 出现以上结果说明客户端已经成功的通过feign调用了远程服务hello,并且将结果返回到了浏览器。
31 |
32 |
33 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/main/java/com/pancm/FeignConsumerApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 | import org.springframework.cloud.openfeign.EnableFeignClients;
7 |
8 | /**
9 | *
10 | * @Title: Application
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient: 启用服务注册与发现
14 | EnableFeignClients: 启用feign进行远程调用
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @SpringBootApplication
20 | @EnableDiscoveryClient
21 | @EnableFeignClients
22 | public class FeignConsumerApplication {
23 | public static void main(String[] args) {
24 | SpringApplication.run(FeignConsumerApplication.class, args);
25 | System.out.println("feign第一个消费者服务启动...");
26 | }
27 | }
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.web.bind.annotation.PathVariable;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import com.pancm.remote.HelloRemote;
9 |
10 |
11 |
12 |
13 |
14 | /**
15 | *
16 | * @Title: ConsumerController
17 | * @Description:
18 | * 用于做转发请求
19 | * 通过服务注册中心转发到另一个服务区
20 | * 例如:
21 | * 将http://localhost:9002//hello/pancm 请求转发到 http://localhost:9003//hello?name=pancm
22 | * @Version:1.0.0
23 | * @author pancm
24 | * @date 2018年3月29日
25 | */
26 | @RestController
27 | public class ConsumerController {
28 |
29 | @Autowired
30 | HelloRemote helloRemote;
31 |
32 | @RequestMapping("/hello/{name}")
33 | public String index(@PathVariable("name") String name) {
34 | System.out.println("接受到请求参数:"+name+",进行转发到其他服务");
35 | return helloRemote.hello(name);
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/main/java/com/pancm/remote/HelloRemote.java:
--------------------------------------------------------------------------------
1 | package com.pancm.remote;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RequestParam;
6 |
7 |
8 | /**
9 | *
10 | * @Title: HelloRemote
11 | * @Description:
12 | * Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @FeignClient(name= "springcloud-feign-consumer2") //指定转发的服务名称,在application.properties中进行配置
18 | public interface HelloRemote {
19 | @RequestMapping(value = "/hello")
20 | public String hello(@RequestParam(value = "name") String name);
21 | }
22 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/main/java/com/pancm/remote/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.remote;
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-feign-consumer
3 |
4 | server.port=9002
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-feign-consumer
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/target/classes/META-INF/maven/1.0.0/springcloud-feign-consumer/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Thu Dec 20 17:51:02 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-feign-consumer
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-feign\\springcloud-feign-consumer
7 | artifactId=springcloud-feign-consumer
8 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-consumer
3 |
4 | server.port=9002
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/src/main/java/com/pancm/FeignConsumerApplication2.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * 程序入口
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @SpringBootApplication
17 | @EnableDiscoveryClient
18 | public class FeignConsumerApplication2 {
19 | public static void main(String[] args) {
20 | SpringApplication.run(FeignConsumerApplication2.class, args);
21 | System.out.println("feign第二个消费者服务启动...");
22 | }
23 | }
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello")
20 | public String index(@RequestParam String name) {
21 | return name+",Hello World";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-feign-consumer2
3 |
4 | server.port=9003
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-feign-consumer2
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/target/classes/META-INF/maven/1.0.0/springcloud-feign-consumer2/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Thu Dec 20 17:48:39 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-feign-consumer2
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-feign\\springcloud-feign-consumer2
7 | artifactId=springcloud-feign-consumer2
8 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-consumer2/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-consumer2
3 |
4 | server.port=9003
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-eureka/src/main/java/com/pancm/FeignEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @EnableEurekaServer
18 | @SpringBootApplication
19 | public class FeignEurekaApplication {
20 | public static void main(String[] args) {
21 | SpringApplication.run(FeignEurekaApplication.class, args);
22 | System.out.println("feign注册中心服务启动...");
23 | }
24 | }
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-feign-eureka-server
3 |
4 | server.port=8001
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-eureka/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-eureka/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-feign-eureka
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-eureka/target/classes/META-INF/maven/1.0.0/springcloud-feign-eureka/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Thu Dec 20 17:47:41 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-feign-eureka
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-feign\\springcloud-feign-eureka
7 | artifactId=springcloud-feign-eureka
8 |
--------------------------------------------------------------------------------
/springcloud-feign/springcloud-feign-eureka/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8001
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-feign/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-hystrix-dashboard
2 |
3 | ### 介绍
4 |
5 | > Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。Turbine服务,专门监控所有断路器状态,从而掌握整个系统中所有微服务的状态。
6 |
7 |
8 | ### 使用
9 |
10 | 依次运行springcloud-hystrix-dashboard-eureka和springcloud-hystrix-dashboard-consumer项目。启动成功之后,在浏览器输入 `http://localhost:9010/hystrix` ,然后在界面中的输入框中输入:`http://localhost:9010/hystrix.stream`,即可查看hystrix界面的信息,如果提示loading,那么在浏览器中输入:`http://localhost:9010/hello/pancm`进行访问,然后再刷新该界面即可查看信息!
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/HystrixDashboardApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 | import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
8 | import org.springframework.cloud.openfeign.EnableFeignClients;
9 |
10 | /**
11 | *
12 | * @Title: Application
13 | * @Description:
14 | * 程序入口
15 | * EnableDiscoveryClient: 启用服务注册与发现
16 | EnableHystrixDashboard 启用 HystrixDashboard 断路器看板 相关配置
17 | EnableCircuitBreaker 启用hystrix
18 | 在浏览器输入 http://localhost:9010/hystrix
19 | 然后在到界面提示的地址输入: http://localhost:9010/hystrix.stream
20 | 如果提示loading,那么使没有进行访问,在浏览器输入:http://localhost:9010/hello/pancm 进行访问之后
21 | 刷新该界面就可以看到了
22 | * @Version:1.0.0
23 | * @author pancm
24 | * @date 2018年3月29日
25 | */
26 | @SpringBootApplication
27 | @EnableDiscoveryClient
28 | @EnableHystrixDashboard
29 | @EnableCircuitBreaker
30 | @EnableFeignClients
31 | public class HystrixDashboardApplication {
32 | public static void main(String[] args) {
33 | SpringApplication.run(HystrixDashboardApplication.class, args);
34 | System.out.println("hystrix dashboard 服务启动...");
35 | }
36 | }
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/config/HystrixServlet.java:
--------------------------------------------------------------------------------
1 | package com.pancm.config;
2 |
3 | import org.springframework.boot.autoconfigure.web.ServerProperties.Servlet;
4 | import org.springframework.boot.web.servlet.ServletRegistrationBean;
5 | import org.springframework.context.annotation.Bean;
6 | import org.springframework.stereotype.Component;
7 |
8 | import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
9 |
10 | /**
11 | * @Title: HystrixServlet
12 | * @Description: 初始化Hystrix的bean
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年12月24日
16 | */
17 | @Component
18 | public class HystrixServlet extends Servlet{
19 |
20 |
21 |
22 | /**
23 | * 指定 hystrix 的路径
24 | * @return
25 | */
26 | @SuppressWarnings({ "rawtypes", "unchecked" })
27 | // @Bean
28 | public ServletRegistrationBean getServlet() {
29 | HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
30 | ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
31 | registrationBean.setLoadOnStartup(1);
32 | registrationBean.addUrlMappings("/hystrix.stream");
33 | registrationBean.setName("HystrixMetricsStreamServlet");
34 | return registrationBean;
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/config/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月24日
7 | */
8 | package com.pancm.config;
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.web.bind.annotation.PathVariable;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import com.pancm.remote.HelloRemote;
9 |
10 |
11 |
12 |
13 |
14 | /**
15 | *
16 | * @Title: ConsumerController
17 | * @Description:
18 | * @Version:1.0.0
19 | * @author pancm
20 | * @date 2018年3月29日
21 | */
22 | @RestController
23 | public class ConsumerController {
24 |
25 | @Autowired
26 | HelloRemote helloRemote;
27 |
28 | @RequestMapping("/hello/{name}")
29 | public String index(@PathVariable("name") String name) {
30 | System.out.println("接受到请求参数:"+name);
31 | return helloRemote.hello(name);
32 | }
33 |
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/remote/HelloRemote.java:
--------------------------------------------------------------------------------
1 | package com.pancm.remote;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RequestParam;
6 |
7 |
8 | /**
9 | *
10 | * @Title: HelloRemote
11 | * @Description:
12 | * Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @FeignClient(name= "springcloud-hystrix-dashboard-consumer2") //指定转发的服务名称,在application.properties中进行配置
18 | public interface HelloRemote {
19 | @RequestMapping(value = "/hello")
20 | public String hello(@RequestParam(value = "name") String name);
21 | }
22 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/remote/HelloRemoteHystrix.java:
--------------------------------------------------------------------------------
1 | package com.pancm.remote;
2 |
3 | import org.springframework.stereotype.Component;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 |
6 | /**
7 | *
8 | * @Title: HelloRemoteHystrix
9 | * @Description:
10 | * 熔断机制
11 | * 当服务生产者停止服务之后,调用
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @Component
17 | public class HelloRemoteHystrix implements HelloRemote{
18 |
19 | @Override
20 | public String hello(@RequestParam(value = "name") String name) {
21 | return name+", 请求另一个服务失败!";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/java/com/pancm/remote/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.remote;
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-dashboard-consumer
3 |
4 | server.port = 9010
5 |
6 | feign.hystrix.enabled=true
7 | ## 指定hystrixDashboard路径
8 | management.endpoints.web.exposure.include=hystrix.stream
9 | management.endpoints.web.base-path=/
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://localhost:8004/eureka/
13 |
14 |
15 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-hystrix-consumer
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-dashboard-consumer/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Feb 15 16:12:10 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-dashboard-consumer
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix-dashboard\\springcloud-hystrix-dashboard-consumer
7 | artifactId=springcloud-hystrix-dashboard-consumer
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-dashboard-consumer
3 |
4 | server.port = 9010
5 |
6 | feign.hystrix.enabled=true
7 | ## 指定hystrixDashboard路径
8 | management.endpoints.web.exposure.include=hystrix.stream
9 | management.endpoints.web.base-path=/
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://localhost:8004/eureka/
13 |
14 |
15 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/src/main/java/com/pancm/HystrixConsumerApplication2.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 | import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
8 |
9 | /**
10 | *
11 | * @Title: Application
12 | * @Description:
13 | * 程序入口
14 | * @Version:1.0.0
15 | * @author pancm
16 | * @date 2018年3月29日
17 | */
18 | @SpringBootApplication
19 | @EnableDiscoveryClient
20 | @EnableHystrixDashboard
21 | @EnableCircuitBreaker
22 | public class HystrixConsumerApplication2 {
23 | public static void main(String[] args) {
24 | SpringApplication.run(HystrixConsumerApplication2.class, args);
25 | System.out.println("hystrix dashboard 第二个消费者服务启动...");
26 | }
27 | }
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.PathVariable;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 |
8 |
9 |
10 |
11 | /**
12 | *
13 | * @Title: ConsumerController
14 | * @Description:
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @RestController
20 | public class ConsumerController {
21 |
22 |
23 | @RequestMapping("/hello/{name}")
24 | public String index(@PathVariable("name") String name) {
25 | System.out.println("接受到请求参数:"+name);
26 | return "你好,"+name;
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-dashboard-consumer2
3 |
4 | server.port=9011
5 |
6 |
7 | ## 指定hystrixDashboard路径
8 | management.endpoints.web.exposure.include=hystrix.stream
9 | management.endpoints.web.base-path=/
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://localhost:8004/eureka/
13 |
14 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-hystrix-consumer2
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-dashboard-consumer2/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Feb 15 13:48:48 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-dashboard-consumer2
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix-dashboard\\springcloud-hystrix-dashboard-consumer2
7 | artifactId=springcloud-hystrix-dashboard-consumer2
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-consumer2/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-dashboard-consumer2
3 |
4 | server.port=9011
5 |
6 |
7 | ## 指定hystrixDashboard路径
8 | management.endpoints.web.exposure.include=hystrix.stream
9 | management.endpoints.web.base-path=/
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://localhost:8004/eureka/
13 |
14 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-hystrix-dashboard
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-hystrix-dashboard-eureka
11 | springcloud-eureka-hystrix
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 |
19 | org.springframework.cloud
20 | spring-cloud-starter-netflix-eureka-server
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/src/main/java/com/pancm/HystrixEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @EnableEurekaServer
18 | @SpringBootApplication
19 | public class HystrixEurekaApplication {
20 | public static void main(String[] args) {
21 | SpringApplication.run(HystrixEurekaApplication.class, args);
22 | System.out.println("hystrix dashboard 注册中心服务启动...");
23 | }
24 | }
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-eureka-server
3 |
4 | server.port=8004
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-eureka-hystrix
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-dashboard-eureka/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Feb 15 10:40:07 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-dashboard-eureka
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix-dashboard\\springcloud-hystrix-dashboard-eureka
7 | artifactId=springcloud-hystrix-dashboard-eureka
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-dashboard-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-hystrix-dashboard
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-hystrix-dashboard-eureka
11 | springcloud-eureka-hystrix
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 |
19 | org.springframework.cloud
20 | spring-cloud-starter-netflix-eureka-server
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-eureka/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-eureka-server
3 |
4 | server.port=8004
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/src/main/java/com/pancm/HystrixTurbineApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 | import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
7 | import org.springframework.cloud.netflix.turbine.EnableTurbine;
8 |
9 | /**
10 | *
11 | * @Title: Application
12 | * @Description:
13 | EnableTurbine: 开启turbine服务
14 |
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @SpringBootApplication
20 | @EnableDiscoveryClient
21 | @EnableHystrixDashboard
22 | @EnableTurbine
23 | public class HystrixTurbineApplication {
24 | public static void main(String[] args) {
25 | SpringApplication.run(HystrixTurbineApplication.class, args);
26 | System.out.println("hystrix turbine 服务启动...");
27 | }
28 | }
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello")
20 | public String index(@RequestParam String name) {
21 | return name+",Hello World";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-dashboard-turbine
3 |
4 | server.port=9012
5 |
6 |
7 | ## 指定hystrixDashboard路径
8 | #management.endpoints.web.exposure.include=hystrix.stream
9 | #management.endpoints.web.base-path=/
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://localhost:8004/eureka/
13 |
14 | ## turbine配置
15 | turbine.appConfig=springcloud-hystrix-dashboard-consumer,springcloud-hystrix-dashboard-consumer2
16 | turbine.aggregator.clusterConfig= default
17 | turbine.clusterNameExpression= new String("default")
18 | turbine.instanceUrlSuffix: /hystrix.stream
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-hystrix-dashboard-turbine
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-dashboard-turbine/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Feb 15 11:40:26 CST 2019
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-dashboard-turbine
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix-dashboard\\springcloud-hystrix-dashboard-turbine
7 | artifactId=springcloud-hystrix-dashboard-turbine
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/springcloud-hystrix-dashboard-turbine/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-dashboard-turbine
3 |
4 | server.port=9012
5 |
6 |
7 | ## 指定hystrixDashboard路径
8 | #management.endpoints.web.exposure.include=hystrix.stream
9 | #management.endpoints.web.base-path=/
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://localhost:8004/eureka/
13 |
14 | ## turbine配置
15 | turbine.appConfig=springcloud-hystrix-dashboard-consumer,springcloud-hystrix-dashboard-consumer2
16 | turbine.aggregator.clusterConfig= default
17 | turbine.clusterNameExpression= new String("default")
18 | turbine.instanceUrlSuffix: /hystrix.stream
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-hystrix-dashboard/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-hystrix
2 |
3 | ### 介绍
4 |
5 | > Netflix创建了一个名为Hystrix的库,它实现了断路器模式。主要的目的是为了解决服务雪崩效应的一个组件,是保护服务高可用的最后一道防线。
6 |
7 |
8 | ### 使用
9 |
10 |
11 | 依次运行 springcloud-eureka-hystrix、springcloud-hystrix-consumer和springcloud-hystrix-consumer2项目。启动成功之后,在浏览器输入 `http://localhost:8002/` 进行查看相关信息!
12 |
13 |
14 | **断路器测试**
15 |
16 | 启动成功之后在浏览器输入:
17 | > http://localhost:9004/hello/pancm
18 |
19 | 然后再输入:
20 |
21 | > http://localhost:9005/hello/pancm?name=pancm
22 |
23 | 查看是否正常!
24 | 然后再停止运行 springcloud-hystrix-consumer2项目!
25 |
26 | 在浏览器输入:
27 | > http://localhost:9004/hello/pancm
28 |
29 | 进行查看返回信息,最后在启动springcloud-hystrix-consumer2项目!然后再次在浏览器输入 `http://localhost:9004/hello/pancm `
30 | ,查看信息。
31 |
32 | pancm,Hello World
33 | pancm,Hello World
34 | pancm, 请求另一个服务失败!
35 | pancm,Hello World
36 |
37 |
38 | 若出现以上结果,则表示断路器已成功生效!
39 |
40 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-hystrix
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-hystrix-eureka
11 | springcloud-eureka-hystrix
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 |
19 | org.springframework.cloud
20 | spring-cloud-starter-netflix-eureka-server
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/src/main/java/com/pancm/HystrixEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @EnableEurekaServer
18 | @SpringBootApplication
19 | public class HystrixEurekaApplication {
20 | public static void main(String[] args) {
21 | SpringApplication.run(HystrixEurekaApplication.class, args);
22 | System.out.println("hystrix注册中心服务启动...");
23 | }
24 | }
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-eureka-server
3 |
4 | server.port=8002
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-eureka-hystrix
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-eureka/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 09:58:50 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-eureka
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix\\springcloud-eureka-hystrix
7 | artifactId=springcloud-hystrix-eureka
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-eureka/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | 1.0.0
7 | springcloud-hystrix
8 | 0.0.1-SNAPSHOT
9 |
10 | springcloud-hystrix-eureka
11 | springcloud-eureka-hystrix
12 | http://maven.apache.org
13 |
14 | UTF-8
15 |
16 |
17 |
18 |
19 | org.springframework.cloud
20 | spring-cloud-starter-netflix-eureka-server
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-eureka-hystrix/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8002
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/java/com/pancm/HystrixConsumerApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 | import org.springframework.cloud.openfeign.EnableFeignClients;
7 |
8 | /**
9 | *
10 | * @Title: Application
11 | * @Description:
12 | * 程序入口
13 | * EnableDiscoveryClient: 启用服务注册与发现
14 | EnableFeignClients: 启用feign进行远程调用
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @SpringBootApplication
20 | @EnableDiscoveryClient
21 | @EnableFeignClients
22 | public class HystrixConsumerApplication {
23 | public static void main(String[] args) {
24 | SpringApplication.run(HystrixConsumerApplication.class, args);
25 | System.out.println("hystrix第一个消费者服务启动...");
26 | }
27 | }
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.web.bind.annotation.PathVariable;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import com.pancm.remote.HelloRemote;
9 |
10 |
11 |
12 |
13 |
14 | /**
15 | *
16 | * @Title: ConsumerController
17 | * @Description:
18 | * 用于做转发请求
19 | * 通过服务注册中心转发到另一个服务区
20 | * 例如:
21 | * 将http://localhost:9004//hello/pancm 请求转发到 http://localhost:9005//hello?name=pancm
22 | * @Version:1.0.0
23 | * @author pancm
24 | * @date 2018年3月29日
25 | */
26 | @RestController
27 | public class ConsumerController {
28 |
29 | @Autowired
30 | HelloRemote helloRemote;
31 |
32 | @RequestMapping("/hello/{name}")
33 | public String index(@PathVariable("name") String name) {
34 | System.out.println("接受到请求参数:"+name+",进行转发到其他服务");
35 | return helloRemote.hello(name);
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/java/com/pancm/remote/HelloRemote.java:
--------------------------------------------------------------------------------
1 | package com.pancm.remote;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RequestParam;
6 |
7 |
8 | /**
9 | *
10 | * @Title: HelloRemote
11 | * @Description:
12 | * Feign是一个声明式Web Service客户端。
13 | * 使用Feign能让编写Web Service客户端更加简单,
14 | * 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。
15 | * Feign也支持可拔插式的编码器和解码器。
16 | * Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。
17 | * Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
18 | *
19 | *
20 | * @Version:1.0.0
21 | * @author pancm
22 | * @date 2018年3月29日
23 | */
24 | @FeignClient(name= "springcloud-hystrix-consumer2",fallback = HelloRemoteHystrix.class)//服务熔断的时候返回fallback类中的内容
25 | public interface HelloRemote {
26 | @RequestMapping(value = "/hello")
27 | public String hello(@RequestParam(value = "name") String name);
28 | }
29 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/java/com/pancm/remote/HelloRemoteHystrix.java:
--------------------------------------------------------------------------------
1 | package com.pancm.remote;
2 |
3 | import org.springframework.stereotype.Component;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 |
6 | /**
7 | *
8 | * @Title: HelloRemoteHystrix
9 | * @Description:
10 | * 熔断机制
11 | * 当服务生产者停止服务之后,调用
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @Component
17 | public class HelloRemoteHystrix implements HelloRemote{
18 |
19 | @Override
20 | public String hello(@RequestParam(value = "name") String name) {
21 | return name+", 请求另一个服务失败!";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/java/com/pancm/remote/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | /**
5 | * @Title: package-info
6 | * @Description:
7 | * @Version:1.0.0
8 | * @author pancm
9 | * @date 2018年3月29日
10 | */
11 | package com.pancm.remote;
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-consumer
3 |
4 | server.port = 9004
5 |
6 | ## 添加熔断机制
7 | feign.hystrix.enabled=true
8 |
9 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
10 | eureka.client.serviceUrl.defaultZone=http://localhost:8002/eureka/
11 |
12 |
13 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-hystrix-consumer
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-consumer/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 10:27:10 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-consumer
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix\\springcloud-hystrix-consumer
7 | artifactId=springcloud-hystrix-consumer
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-consumer
3 |
4 | server.port = 9004
5 |
6 | ## 添加熔断机制
7 | feign.hystrix.enabled=true
8 |
9 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
10 | eureka.client.serviceUrl.defaultZone=http://localhost:8002/eureka/
11 |
12 |
13 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/src/main/java/com/pancm/HystrixConsumerApplication2.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * 程序入口
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @SpringBootApplication
17 | @EnableDiscoveryClient
18 | public class HystrixConsumerApplication2 {
19 | public static void main(String[] args) {
20 | SpringApplication.run(HystrixConsumerApplication2.class, args);
21 | System.out.println("hystrix第二个消费者服务启动...");
22 | }
23 | }
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello")
20 | public String index(@RequestParam String name) {
21 | return name+",Hello World";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-hystrix-consumer2
3 |
4 | server.port=9005
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8002/eureka/
8 |
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-hystrix-consumer2
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/target/classes/META-INF/maven/1.0.0/springcloud-hystrix-consumer2/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 10:21:31 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-hystrix-consumer2
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-hystrix\\springcloud-hystrix-consumer2
7 | artifactId=springcloud-hystrix-consumer2
8 |
--------------------------------------------------------------------------------
/springcloud-hystrix/springcloud-hystrix-consumer2/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-consumer2
3 |
4 | server.port=9005
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8002/eureka/
8 |
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-hystrix/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-hystrix/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-ribbon/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-ribbon
2 |
3 | ### 介绍
4 |
5 | > Ribbon是一个客户端负载均衡器,它提供了对HTTP和TCP客户端的行为的大量控制。Feign已经使用了Ribbon,所以使用Feign,那么也可以使用这个功能。
6 |
7 |
8 | ### 使用
9 |
10 |
11 | 依次运行 springcloud-ribbon-eureka、springcloud-ribbon-consumer、springcloud-ribbon-consumer2和springcloud-ribbon-consumer3 这几个项目。启动成功之后,在浏览器输入 `http://localhost:8003/` 进行查看相关信息!
12 |
13 |
14 | **负载均衡测试**
15 |
16 | 启动成功之后在浏览器输入:
17 | > http://localhost:9006//hello
18 | 或
19 | > http://localhost:9006//hello/pancm
20 |
21 | 然后重复进行访问,若出现的结果交叉打印则表示已成功实现负载均衡功能。
22 |
23 | pancm,Hello World!
24 | pancm,Hello World! 这是另一个服务!
25 | pancm,Hello World!
26 | pancm,Hello World! 这是另一个服务!
27 | pancm,Hello World!
28 | pancm,Hello World! 这是另一个服务!
29 |
30 |
31 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/RibbonConsumerApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 | import org.springframework.cloud.openfeign.EnableFeignClients;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * 程序入口
12 | * EnableDiscoveryClient: 启用服务注册与发现
13 | EnableFeignClients: 启用feign进行远程调用
14 | * @Version:1.0.0
15 | * @author pancm
16 | * @date 2018年3月29日
17 | */
18 | @SpringBootApplication
19 | @EnableDiscoveryClient
20 | @EnableFeignClients
21 | public class Application {
22 | public static void main(String[] args) {
23 | SpringApplication.run(Application.class, args);
24 | System.out.println("第一个消费者服务启动...");
25 | }
26 | }
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/config/RibbonConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.pancm.config;
2 |
3 | import org.springframework.context.annotation.Bean;
4 | import org.springframework.context.annotation.Configuration;
5 |
6 | import com.netflix.loadbalancer.IRule;
7 | import com.netflix.loadbalancer.RandomRule;
8 |
9 | /**
10 | * @Title: RibbonConfiguration
11 | * @Description: 制定负载均衡策略
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2019年1月15日
15 | */
16 | @Configuration
17 | public class RibbonConfiguration{
18 | @Bean
19 | public IRule ribbonRule(){
20 | //随机负载
21 | return new RandomRule();
22 | }
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/config/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2019年1月15日
7 | */
8 | package com.pancm.config;
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.web.bind.annotation.PathVariable;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 | import org.springframework.web.client.RestTemplate;
8 |
9 | import com.pancm.remote.HelloRemote;
10 |
11 | /**
12 | *
13 | * @Title: ConsumerController
14 | * @Description:
15 | * 用于做转发请求
16 | * @Version:1.0.0
17 | * @author pancm
18 | * @date 2018年3月29日
19 | */
20 | @RestController
21 | public class ConsumerController {
22 |
23 | @Autowired
24 | RestTemplate restTemplate;
25 |
26 | @RequestMapping("/hello")
27 | public String hello() {
28 | //进行远程调用
29 | return restTemplate.getForObject("http://springcloud-ribbon-consumer2/hello/?name=xuwujing", String.class);
30 | }
31 |
32 |
33 |
34 |
35 |
36 | @Autowired
37 | HelloRemote helloRemote;
38 |
39 | @RequestMapping("/hello/{name}")
40 | public String index(@PathVariable("name") String name) {
41 | System.out.println("接受到请求参数:"+name+",进行转发到其他服务!");
42 | return helloRemote.hello(name);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/remote/HelloRemote.java:
--------------------------------------------------------------------------------
1 | package com.pancm.remote;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RequestParam;
6 |
7 |
8 | /**
9 | *
10 | * @Title: HelloRemote
11 | * @Description:
12 | * Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @FeignClient(name= "springcloud-ribbon-consumer2") //指定转发的服务名称,在application.properties中进行配置
18 | public interface HelloRemote {
19 | @RequestMapping(value = "/hello")
20 | public String hello(@RequestParam(value = "name") String name);
21 | }
22 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/java/com/pancm/remote/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.remote;
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-ribbon-consumer
3 |
4 | server.port=9006
5 |
6 | ## 禁用 eureka
7 | #ribbon.eureka.enabled: false
8 |
9 | ## 未在Eureka注册的服务实现负载均衡
10 | # springcloud-ribbon-consumer2.ribbon.listOfServers:localhost:9007,localhost:9008
11 |
12 | ## 指定随机策略 springcloud-ribbon-consumer2为指定的服务名称
13 | # springcloud-ribbon-consumer2.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
14 |
15 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
16 | eureka.client.serviceUrl.defaultZone=http://localhost:8003/eureka/
17 |
18 |
19 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-ribbon-consumer
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/target/classes/META-INF/maven/1.0.0/springcloud-ribbon-consumer/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 11:15:21 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-ribbon-consumer
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-ribbon\\springcloud-ribbon-consumer
7 | artifactId=springcloud-ribbon-consumer
8 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-consumer
3 |
4 | server.port=9006
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8003/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/src/main/java/com/pancm/RibbonConsumerApplication2.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 |
6 | /**
7 | *
8 | * @Title: Application
9 | * @Description:
10 | * 程序入口
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class RibbonConsumerApplication2 {
18 | public static void main(String[] args) {
19 | SpringApplication.run(RibbonConsumerApplication2.class, args);
20 | System.out.println("ribbon第二个消费者服务启动...");
21 | }
22 | }
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello")
20 | public String index(@RequestParam String name) {
21 | return name+",Hello World!";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-ribbon-consumer2
3 |
4 | server.port=9007
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8003/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-ribbon-consumer2
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/target/classes/META-INF/maven/1.0.0/springcloud-ribbon-consumer2/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 11:40:40 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-ribbon-consumer2
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-ribbon\\springcloud-ribbon-consumer2
7 | artifactId=springcloud-ribbon-consumer2
8 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer2/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-consumer2
3 |
4 | server.port=9007
5 |
6 |
7 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
8 | eureka.client.serviceUrl.defaultZone=http://localhost:8003/eureka/
9 |
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/src/main/java/com/pancm/RibbonConsumerApplication3.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 |
6 | /**
7 | *
8 | * @Title: Application
9 | * @Description:
10 | * 程序入口
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class RibbonConsumerApplication3 {
18 | public static void main(String[] args) {
19 | SpringApplication.run(RibbonConsumerApplication3.class, args);
20 | System.out.println("ribbon第三个消费者服务启动...");
21 | }
22 | }
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello")
20 | public String index(@RequestParam String name) {
21 | return name+",Hello World! 这是另一个服务! ";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | ## 这个名称和另一个服务的名称保持一致才能实现负载均衡
2 | spring.application.name=springcloud-ribbon-consumer2
3 |
4 | server.port=9008
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8003/eureka/
8 |
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-ribbon-consumer3
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/target/classes/META-INF/maven/1.0.0/springcloud-ribbon-consumer3/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 11:40:55 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-ribbon-consumer3
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-ribbon\\springcloud-ribbon-consumer3
7 | artifactId=springcloud-ribbon-consumer3
8 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-consumer3/target/classes/application.properties:
--------------------------------------------------------------------------------
1 | ## 这个名称和另一个服务的名称保持一致才能实现负载均衡
2 | spring.application.name=springcloud-consumer2
3 |
4 | server.port=9008
5 |
6 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
7 | eureka.client.serviceUrl.defaultZone=http://localhost:8003/eureka/
8 |
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-eureka/src/main/java/com/pancm/RibbonEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年3月29日
16 | */
17 | @EnableEurekaServer
18 | @SpringBootApplication
19 | public class Application {
20 | public static void main(String[] args) {
21 | SpringApplication.run(Application.class, args);
22 | System.out.println("注册中心服务启动...");
23 | }
24 | }
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8003
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-eureka/src/test/java/com/pancm/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-eureka/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Implementation-Title: springcloud-ribbon-eureka
3 | Implementation-Version: 0.0.1-SNAPSHOT
4 | Built-By: Administrator
5 | Implementation-Vendor-Id: 1.0.0
6 | Build-Jdk: 1.8.0_131
7 | Implementation-URL: http://maven.apache.org
8 | Created-By: Maven Integration for Eclipse
9 |
10 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-eureka/target/classes/META-INF/maven/1.0.0/springcloud-ribbon-eureka/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Fri Dec 21 11:19:05 CST 2018
3 | version=0.0.1-SNAPSHOT
4 | groupId=1.0.0
5 | m2e.projectName=springcloud-ribbon-eureka
6 | m2e.projectLocation=D\:\\git\\GitHub\\sc\\springcloud-study\\springcloud-ribbon\\springcloud-ribbon-eureka
7 | artifactId=springcloud-ribbon-eureka
8 |
--------------------------------------------------------------------------------
/springcloud-ribbon/springcloud-ribbon-eureka/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-eureka-server
3 |
4 | server.port=8003
5 | eureka.instance.hostname = localhost
6 | ## 表示是否将自己注册到Eureka Server,默认为true。
7 | eureka.client.register-with-eureka=false
8 | ## 表示是否从Eureka Server获取注册信息,默认为true。
9 | eureka.client.fetch-registry=false
10 |
11 | ## 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
12 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
13 |
--------------------------------------------------------------------------------
/springcloud-ribbon/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-eureka/springclound-zuul-filter-eureka.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-eureka/src/main/java/com/pancm/ZuulEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年12月21日
16 | */
17 | @EnableEurekaServer
18 | @SpringBootApplication
19 | public class ZuulEurekaApplication {
20 | public static void main(String[] args) {
21 | SpringApplication.run(ZuulEurekaApplication.class, args);
22 | System.out.println("zuul注册中心服务启动...");
23 | }
24 | }
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-zuul-filter-eureka
3 | server.port=8006
4 | eureka.client.register-with-eureka=false
5 | eureka.client.fetch-registry=false
6 | eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-gateway/src/main/java/com/pancm/ZuulApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * 程序入口
12 | * EnableDiscoveryClient: 启用服务注册与发现
13 | EnableFeignClients: 启用feign进行远程调用
14 | EnableZuulProxy: 开启zuul的功能
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @SpringBootApplication
20 | @EnableDiscoveryClient
21 | @EnableZuulProxy
22 | public class ZuulApplication {
23 | public static void main(String[] args) {
24 | SpringApplication.run(ZuulApplication.class, args);
25 | System.out.println("zuul 服务启动...");
26 | }
27 | }
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-gateway/src/main/java/com/pancm/fallback/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @Since: jdk1.8
6 | * @author pancm
7 | * @date 2019年5月7日
8 | */
9 | package com.pancm.fallback;
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-gateway/src/main/java/com/pancm/filter/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @Since: jdk1.8
6 | * @author pancm
7 | * @date 2019年5月7日
8 | */
9 | package com.pancm.filter;
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-gateway/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-zuul-filter-gateway
2 | server.port = 9009
3 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
4 |
5 | zuul.SendErrorFilter.error.disable=true
6 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server1/springclound-zuul-filter-server1.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server1/src/main/java/com/pancm/ZuulServerApplication1.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 |
6 | /**
7 | *
8 | * @Title: ZuulServerApplication1
9 | * @Description:
10 | * 程序入口
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class ZuulServerApplication1 {
18 | public static void main(String[] args) {
19 | SpringApplication.run(ZuulServerApplication1.class, args);
20 | System.out.println("zuul 第一个服务启动...");
21 | }
22 | }
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server1/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.PathVariable;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello/{name}")
20 | public String index(@PathVariable String name) {
21 | return name+",Hello World!";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server1/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server1/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-zuul-filter-server1
2 | server.port=9010
3 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
4 |
5 |
6 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server2/src/main/java/pancm/ZuulServerApplication2.java:
--------------------------------------------------------------------------------
1 | package pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 |
6 | /**
7 | *
8 | * @Title: ZuulServerApplication1
9 | * @Description:
10 | * 程序入口
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class ZuulServerApplication2 {
18 | public static void main(String[] args) {
19 | SpringApplication.run(ZuulServerApplication2.class, args);
20 | System.out.println("zuul 第二个服务启动...");
21 | }
22 | }
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server2/src/main/java/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hi")
20 | public String index(@RequestParam String name) {
21 | return name+",hi!";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server2/src/main/java/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package pancm.controller;
--------------------------------------------------------------------------------
/springcloud-zuul-filter/springcloud-zuul-filter-server2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-zuul-filter-server2
2 | server.port=9011
3 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/springcloud-zuul/README.md:
--------------------------------------------------------------------------------
1 | ## springcloud-zuul
2 |
3 | ### 介绍
4 |
5 | > Spring Cloud Zuul 主要的功能是提供负载均衡、反向代理、权限认证、动态路由,监控,弹性,安全等的边缘服务。
6 | > Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。
7 |
8 |
9 | ### 使用
10 |
11 |
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-eureka/src/main/java/com/pancm/ZuulEurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * springcloud服务入口
12 | EnableEurekaServer 注解启动一个服务注册中心
13 | * @Version:1.0.0
14 | * @author pancm
15 | * @date 2018年12月21日
16 | */
17 | @EnableEurekaServer
18 | @SpringBootApplication
19 | public class ZuulEurekaApplication {
20 | public static void main(String[] args) {
21 | SpringApplication.run(ZuulEurekaApplication.class, args);
22 | System.out.println("zuul注册中心服务启动...");
23 | }
24 | }
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-eureka/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-zuul-eureka
3 | server.port=8006
4 | eureka.client.register-with-eureka=false
5 | eureka.client.fetch-registry=false
6 | eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-gateway/src/main/java/com/pancm/ZuulApplication.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
6 |
7 | /**
8 | *
9 | * @Title: Application
10 | * @Description:
11 | * 程序入口
12 | * EnableDiscoveryClient: 启用服务注册与发现
13 | EnableFeignClients: 启用feign进行远程调用
14 | EnableZuulProxy: 开启zuul的功能
15 | * @Version:1.0.0
16 | * @author pancm
17 | * @date 2018年3月29日
18 | */
19 | @SpringBootApplication
20 | @EnableDiscoveryClient
21 | @EnableZuulProxy
22 | public class ZuulApplication {
23 | public static void main(String[] args) {
24 | SpringApplication.run(ZuulApplication.class, args);
25 | System.out.println("zuul 服务启动...");
26 | }
27 | }
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-gateway/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-zuul-gateway
2 | server.port = 9009
3 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
4 |
5 |
6 | zuul.routes.hello.path = /hello/**
7 | zuul.routes.hello.url = http://localhost:9010/hello
8 | zuul.routes.hi.path = /hi/**
9 | zuul.routes.hi.url = http://localhost:9011/hi
10 |
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server1/src/main/java/com/pancm/ZuulServerApplication1.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 |
6 | /**
7 | *
8 | * @Title: ZuulServerApplication1
9 | * @Description:
10 | * 程序入口
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class ZuulServerApplication1 {
18 | public static void main(String[] args) {
19 | SpringApplication.run(ZuulServerApplication1.class, args);
20 | System.out.println("zuul 第一个服务启动...");
21 | }
22 | }
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server1/src/main/java/com/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package com.pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.PathVariable;
4 | import org.springframework.web.bind.annotation.RequestMapping;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hello/{name}")
20 | public String index(@PathVariable String name) {
21 | return name+",Hello World!";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server1/src/main/java/com/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package com.pancm.controller;
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server1/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 | spring.application.name=springcloud-zuul-server1
3 | server.port=9010
4 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
5 |
6 |
7 |
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server2/src/main/java/pancm/ZuulServerApplication2.java:
--------------------------------------------------------------------------------
1 | package pancm;
2 | import org.springframework.boot.SpringApplication;
3 | import org.springframework.boot.autoconfigure.SpringBootApplication;
4 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
5 |
6 | /**
7 | *
8 | * @Title: ZuulServerApplication1
9 | * @Description:
10 | * 程序入口
11 | * @Version:1.0.0
12 | * @author pancm
13 | * @date 2018年3月29日
14 | */
15 | @SpringBootApplication
16 | @EnableDiscoveryClient
17 | public class ZuulServerApplication2 {
18 | public static void main(String[] args) {
19 | SpringApplication.run(ZuulServerApplication2.class, args);
20 | System.out.println("zuul 第二个服务启动...");
21 | }
22 | }
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server2/src/main/java/pancm/controller/ConsumerController.java:
--------------------------------------------------------------------------------
1 | package pancm.controller;
2 |
3 | import org.springframework.web.bind.annotation.RequestMapping;
4 | import org.springframework.web.bind.annotation.RequestParam;
5 | import org.springframework.web.bind.annotation.RestController;
6 |
7 | /**
8 | *
9 | * @Title: ConsumerController
10 | * @Description:
11 | * 用于做转发请求
12 | * @Version:1.0.0
13 | * @author pancm
14 | * @date 2018年3月29日
15 | */
16 | @RestController
17 | public class ConsumerController {
18 |
19 | @RequestMapping("/hi")
20 | public String index(@RequestParam String name) {
21 | return name+",hi!";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server2/src/main/java/pancm/controller/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * @Title: package-info
3 | * @Description:
4 | * @Version:1.0.0
5 | * @author pancm
6 | * @date 2018年12月20日
7 | */
8 | package pancm.controller;
--------------------------------------------------------------------------------
/springcloud-zuul/springcloud-zuul-server2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=springcloud-zuul-server2
2 | server.port=9011
3 | eureka.client.serviceUrl.defaultZone=http://localhost:8006/eureka/
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/springcloud-zuul/src/main/java/com/pancm/App.java:
--------------------------------------------------------------------------------
1 | package com.pancm;
2 |
3 | /**
4 | * Hello world!
5 | *
6 | */
7 | public class App
8 | {
9 | public static void main( String[] args )
10 | {
11 | System.out.println( "Hello World!" );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------