Showing preview only (2,913K chars total). Download the full file or copy to clipboard to get everything.
Repository: dyc87112/SpringCloud-Learning
Branch: master
Commit: fb2079c338db
Files: 710
Total size: 2.6 MB
Directory structure:
gitextract__j33z0th/
├── .gitignore
├── 1-Brixton版教程示例/
│ ├── Chapter1-1-1/
│ │ ├── compute-service/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── didispace/
│ │ │ │ │ ├── ComputeServiceApplication.java
│ │ │ │ │ └── web/
│ │ │ │ │ └── ComputeController.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── ApplicationTests.java
│ │ └── eureka-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── Chapter1-1-2/
│ │ ├── eureka-feign/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── FeignApplication.java
│ │ │ │ ├── service/
│ │ │ │ │ └── ComputeClient.java
│ │ │ │ └── web/
│ │ │ │ └── ConsumerController.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── eureka-ribbon/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── RibbonApplication.java
│ │ │ └── web/
│ │ │ └── ConsumerController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── Chapter1-1-3/
│ │ ├── compute-service/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── didispace/
│ │ │ │ │ ├── ComputeServiceApplication.java
│ │ │ │ │ └── web/
│ │ │ │ │ └── ComputeController.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── ApplicationTests.java
│ │ ├── eureka-feign/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── FeignApplication.java
│ │ │ ├── service/
│ │ │ │ ├── ComputeClient.java
│ │ │ │ └── ComputeClientHystrix.java
│ │ │ └── web/
│ │ │ └── ConsumerController.java
│ │ ├── eureka-ribbon/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── RibbonApplication.java
│ │ │ ├── service/
│ │ │ │ └── ComputeService.java
│ │ │ └── web/
│ │ │ └── ConsumerController.java
│ │ └── eureka-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── Chapter1-1-4/
│ │ ├── config-client/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── Application.java
│ │ │ │ └── web/
│ │ │ │ └── TestController.java
│ │ │ └── resources/
│ │ │ └── bootstrap.properties
│ │ ├── config-repo/
│ │ │ ├── didispace-dev.properties
│ │ │ ├── didispace-prod.properties
│ │ │ ├── didispace-test.properties
│ │ │ └── didispace.properties
│ │ └── config-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── didispace-dev.properties
│ │ ├── didispace-prod.properties
│ │ ├── didispace-test.properties
│ │ └── didispace.properties
│ ├── Chapter1-1-5/
│ │ ├── api-gateway/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── Application.java
│ │ │ │ └── filter/
│ │ │ │ └── AccessFilter.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ ├── eureka-server/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ └── Application.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ ├── service-A/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── didispace/
│ │ │ │ │ ├── ComputeServiceApplication.java
│ │ │ │ │ └── web/
│ │ │ │ │ └── ComputeController.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── ApplicationTests.java
│ │ └── service-B/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── ComputeServiceApplication.java
│ │ │ │ └── web/
│ │ │ │ └── ComputeController.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── ApplicationTests.java
│ ├── Chapter1-1-6/
│ │ ├── compute-service/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── didispace/
│ │ │ │ │ ├── ComputeServiceApplication.java
│ │ │ │ │ └── web/
│ │ │ │ │ └── ComputeController.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── ApplicationTests.java
│ │ └── eureka-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ ├── application-peer1.properties
│ │ └── application-peer2.properties
│ ├── Chapter1-1-7/
│ │ ├── config-client-eureka/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── Application.java
│ │ │ │ └── web/
│ │ │ │ └── TestController.java
│ │ │ └── resources/
│ │ │ └── bootstrap.properties
│ │ ├── config-client-eureka-kafka/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── Application.java
│ │ │ │ └── web/
│ │ │ │ └── TestController.java
│ │ │ └── resources/
│ │ │ └── bootstrap.properties
│ │ ├── config-repo/
│ │ │ ├── didispace-dev.properties
│ │ │ ├── didispace-prod.properties
│ │ │ ├── didispace-test.properties
│ │ │ └── didispace.properties
│ │ ├── config-server-eureka/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ └── Application.java
│ │ │ └── resources/
│ │ │ ├── application.properties
│ │ │ ├── didispace-dev.properties
│ │ │ ├── didispace-prod.properties
│ │ │ ├── didispace-test.properties
│ │ │ └── didispace.properties
│ │ └── config-server-eureka-kafka/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── didispace-dev.properties
│ │ ├── didispace-prod.properties
│ │ ├── didispace-test.properties
│ │ └── didispace.properties
│ ├── Chapter1-1-8/
│ │ ├── config-client-eureka/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── Application.java
│ │ │ │ └── web/
│ │ │ │ └── TestController.java
│ │ │ └── resources/
│ │ │ └── bootstrap.properties
│ │ ├── config-repo/
│ │ │ ├── didispace-dev.properties
│ │ │ ├── didispace-prod.properties
│ │ │ ├── didispace-test.properties
│ │ │ └── didispace.properties
│ │ └── config-server-eureka/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── didispace-dev.properties
│ │ ├── didispace-prod.properties
│ │ ├── didispace-test.properties
│ │ └── didispace.properties
│ └── README.md
├── 2-Dalston版教程示例/
│ ├── README.md
│ ├── api-gateway/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.yaml
│ ├── api-gateway-with-eureka/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── AccessFilter.java
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.yaml
│ ├── config-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── bootstrap.yml
│ ├── config-server-git/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.yml
│ ├── consul-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── consul-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-consumer-feign/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ ├── DcClient.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-consumer-feign-hystrix/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ ├── DcClient.java
│ │ │ ├── DcClientFallback.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-consumer-ribbon/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-consumer-ribbon-hystrix/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── DcController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-feign-api/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── api/
│ │ └── HelloService.java
│ ├── eureka-feign-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── api/
│ │ │ └── impl/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-feign-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── api/
│ │ │ └── consumer/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-feign-upload-client/
│ │ ├── pom.xml
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── didispace/
│ │ │ │ │ └── api/
│ │ │ │ │ └── consumer/
│ │ │ │ │ ├── Application.java
│ │ │ │ │ └── UploadService.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── api/
│ │ │ └── consumer/
│ │ │ └── UploadTester.java
│ │ └── upload.txt
│ ├── eureka-feign-upload-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── api/
│ │ │ └── consumer/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── eureka-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ ├── application-peer1.properties
│ │ ├── application-peer2.properties
│ │ └── application.properties
│ ├── hystrix-collapser-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ ├── Application.java
│ │ │ │ └── UserService.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── CollapserTest.java
│ ├── hystrix-collapser-provider/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ ├── Application.java
│ │ │ └── UserController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── hystrix-dashboard/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── HystrixDashboardApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── pom.xml
│ ├── stream-consumer-group/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ └── stream/
│ │ │ │ ├── ExampleApplication.java
│ │ │ │ ├── ExampleBinder.java
│ │ │ │ └── ExampleReceiver.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── ExampleApplicationTests.java
│ ├── stream-consumer-self/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ ├── TestApplication.java
│ │ │ ├── TestController.java
│ │ │ ├── TestListener.java
│ │ │ └── TestTopic.java
│ │ └── resources/
│ │ └── application.properties
│ ├── stream-hello/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── didispace/
│ │ │ │ └── stream/
│ │ │ │ ├── SinkApplication.java
│ │ │ │ └── SinkReceiver.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── SinkApplicationTests.java
│ ├── swagger-api-gateway/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.yaml
│ ├── swagger-service-a/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── swagger-service-b/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── Application.java
│ │ └── resources/
│ │ └── application.properties
│ ├── trace-1/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── TraceApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── trace-2/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── TraceApplication.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── logback-spring.xml
│ ├── turbine/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── TurbineApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── turbine-amqp/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── TurbineApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── zipkin-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── ZipkinApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── zipkin-server-stream/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── ZipkinApplication.java
│ └── resources/
│ └── application.properties
├── 3-Edgware/
│ ├── README.md
│ ├── config-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── config/
│ │ │ └── client/
│ │ │ └── ConfigClientApplication.java
│ │ └── resources/
│ │ └── bootstrap.properties
│ ├── config-server-db/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── config/
│ │ │ └── server/
│ │ │ └── db/
│ │ │ └── ConfigServerBootstrap.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── schema/
│ │ └── V1__Base_version.sql
│ └── pom.xml
├── 4-Finchley/
│ ├── README.md
│ ├── alibaba-dubbo-api/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── alibaba/
│ │ └── dubbo/
│ │ └── api/
│ │ └── HelloService.java
│ ├── alibaba-dubbo-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── dubbo/
│ │ │ └── client/
│ │ │ └── DubboClientApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-dubbo-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── dubbo/
│ │ │ └── server/
│ │ │ ├── DubboServerApplication.java
│ │ │ └── HelloServiceImpl.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-nacos-config-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── nacos/
│ │ │ └── config/
│ │ │ └── client/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── bootstrap.properties
│ ├── alibaba-nacos-discovery-client-common/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── nacos/
│ │ │ └── discovery/
│ │ │ └── client/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-nacos-discovery-client-feign/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── nacos/
│ │ │ └── discovery/
│ │ │ └── client/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-nacos-discovery-client-resttemplate/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── nacos/
│ │ │ └── discovery/
│ │ │ └── client/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-nacos-discovery-client-webclient/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── nacos/
│ │ │ └── discovery/
│ │ │ └── client/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-nacos-discovery-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── nacos/
│ │ │ └── discovery/
│ │ │ └── server/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-sentinel-annotation/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── sentinel/
│ │ │ ├── TestApplication.java
│ │ │ ├── service/
│ │ │ │ └── TestService.java
│ │ │ └── web/
│ │ │ └── TestController.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-sentinel-dashboard-apollo/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── alibaba/
│ │ │ │ └── csp/
│ │ │ │ └── sentinel/
│ │ │ │ └── dashboard/
│ │ │ │ ├── DashboardApplication.java
│ │ │ │ ├── auth/
│ │ │ │ │ ├── AuthService.java
│ │ │ │ │ ├── FakeAuthServiceImpl.java
│ │ │ │ │ └── SimpleWebAuthServiceImpl.java
│ │ │ │ ├── client/
│ │ │ │ │ ├── CommandFailedException.java
│ │ │ │ │ ├── CommandNotFoundException.java
│ │ │ │ │ └── SentinelApiClient.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── DashboardConfig.java
│ │ │ │ │ └── WebConfig.java
│ │ │ │ ├── controller/
│ │ │ │ │ ├── AppController.java
│ │ │ │ │ ├── AuthController.java
│ │ │ │ │ ├── AuthorityRuleController.java
│ │ │ │ │ ├── DegradeController.java
│ │ │ │ │ ├── DemoController.java
│ │ │ │ │ ├── FlowControllerV1.java
│ │ │ │ │ ├── MachineRegistryController.java
│ │ │ │ │ ├── MetricController.java
│ │ │ │ │ ├── ParamFlowRuleController.java
│ │ │ │ │ ├── ResourceController.java
│ │ │ │ │ ├── SystemController.java
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ ├── ClusterAssignController.java
│ │ │ │ │ │ └── ClusterConfigController.java
│ │ │ │ │ └── v2/
│ │ │ │ │ └── FlowControllerV2.java
│ │ │ │ ├── datasource/
│ │ │ │ │ └── entity/
│ │ │ │ │ ├── ApplicationEntity.java
│ │ │ │ │ ├── MachineEntity.java
│ │ │ │ │ ├── MetricEntity.java
│ │ │ │ │ ├── MetricPositionEntity.java
│ │ │ │ │ ├── SentinelVersion.java
│ │ │ │ │ └── rule/
│ │ │ │ │ ├── AbstractRuleEntity.java
│ │ │ │ │ ├── AuthorityRuleEntity.java
│ │ │ │ │ ├── DegradeRuleEntity.java
│ │ │ │ │ ├── FlowRuleEntity.java
│ │ │ │ │ ├── ParamFlowRuleEntity.java
│ │ │ │ │ ├── RuleEntity.java
│ │ │ │ │ └── SystemRuleEntity.java
│ │ │ │ ├── discovery/
│ │ │ │ │ ├── AppInfo.java
│ │ │ │ │ ├── AppManagement.java
│ │ │ │ │ ├── MachineDiscovery.java
│ │ │ │ │ ├── MachineInfo.java
│ │ │ │ │ └── SimpleMachineDiscovery.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── ResourceTreeNode.java
│ │ │ │ │ ├── Result.java
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ ├── ClusterAppAssignResultVO.java
│ │ │ │ │ │ ├── ClusterAppFullAssignRequest.java
│ │ │ │ │ │ ├── ClusterAppSingleServerAssignRequest.java
│ │ │ │ │ │ ├── ClusterClientInfoVO.java
│ │ │ │ │ │ ├── ClusterGroupEntity.java
│ │ │ │ │ │ ├── ClusterStateSingleVO.java
│ │ │ │ │ │ ├── ConnectionDescriptorVO.java
│ │ │ │ │ │ ├── ConnectionGroupVO.java
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ ├── ClusterClientConfig.java
│ │ │ │ │ │ │ ├── ServerFlowConfig.java
│ │ │ │ │ │ │ └── ServerTransportConfig.java
│ │ │ │ │ │ ├── request/
│ │ │ │ │ │ │ ├── ClusterAppAssignMap.java
│ │ │ │ │ │ │ ├── ClusterClientModifyRequest.java
│ │ │ │ │ │ │ ├── ClusterModifyRequest.java
│ │ │ │ │ │ │ └── ClusterServerModifyRequest.java
│ │ │ │ │ │ └── state/
│ │ │ │ │ │ ├── AppClusterClientStateWrapVO.java
│ │ │ │ │ │ ├── AppClusterServerStateWrapVO.java
│ │ │ │ │ │ ├── ClusterClientStateVO.java
│ │ │ │ │ │ ├── ClusterRequestLimitVO.java
│ │ │ │ │ │ ├── ClusterServerStateVO.java
│ │ │ │ │ │ ├── ClusterStateSimpleEntity.java
│ │ │ │ │ │ ├── ClusterUniversalStatePairVO.java
│ │ │ │ │ │ └── ClusterUniversalStateVO.java
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── MachineInfoVo.java
│ │ │ │ │ ├── MetricVo.java
│ │ │ │ │ └── ResourceVo.java
│ │ │ │ ├── filter/
│ │ │ │ │ └── AuthFilter.java
│ │ │ │ ├── metric/
│ │ │ │ │ └── MetricFetcher.java
│ │ │ │ ├── repository/
│ │ │ │ │ ├── metric/
│ │ │ │ │ │ ├── InMemoryMetricsRepository.java
│ │ │ │ │ │ └── MetricsRepository.java
│ │ │ │ │ └── rule/
│ │ │ │ │ ├── InMemAuthorityRuleStore.java
│ │ │ │ │ ├── InMemDegradeRuleStore.java
│ │ │ │ │ ├── InMemFlowRuleStore.java
│ │ │ │ │ ├── InMemParamFlowRuleStore.java
│ │ │ │ │ ├── InMemSystemRuleStore.java
│ │ │ │ │ ├── InMemoryRuleRepositoryAdapter.java
│ │ │ │ │ └── RuleRepository.java
│ │ │ │ ├── rule/
│ │ │ │ │ ├── DynamicRuleProvider.java
│ │ │ │ │ ├── DynamicRulePublisher.java
│ │ │ │ │ ├── FlowRuleApiProvider.java
│ │ │ │ │ ├── FlowRuleApiPublisher.java
│ │ │ │ │ └── apollo/
│ │ │ │ │ ├── ApolloConfig.java
│ │ │ │ │ ├── FlowRuleApolloProvider.java
│ │ │ │ │ └── FlowRuleApolloPublisher.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── ClusterAssignService.java
│ │ │ │ │ ├── ClusterAssignServiceImpl.java
│ │ │ │ │ └── ClusterConfigService.java
│ │ │ │ └── util/
│ │ │ │ ├── AsyncUtils.java
│ │ │ │ ├── ClusterEntityUtils.java
│ │ │ │ ├── MachineUtils.java
│ │ │ │ └── VersionUtils.java
│ │ │ ├── resources/
│ │ │ │ └── application.properties
│ │ │ └── webapp/
│ │ │ └── resources/
│ │ │ ├── .gitignore
│ │ │ ├── .jshintrc
│ │ │ ├── README.md
│ │ │ ├── README_zh.md
│ │ │ ├── app/
│ │ │ │ ├── scripts/
│ │ │ │ │ ├── app.js
│ │ │ │ │ ├── controllers/
│ │ │ │ │ │ ├── authority.js
│ │ │ │ │ │ ├── cluster_app_assign_manage.js
│ │ │ │ │ │ ├── cluster_app_server_list.js
│ │ │ │ │ │ ├── cluster_app_server_manage.js
│ │ │ │ │ │ ├── cluster_app_server_monitor.js
│ │ │ │ │ │ ├── cluster_app_token_client_list.js
│ │ │ │ │ │ ├── cluster_single.js
│ │ │ │ │ │ ├── degrade.js
│ │ │ │ │ │ ├── flow_v1.js
│ │ │ │ │ │ ├── flow_v2.js
│ │ │ │ │ │ ├── home.js
│ │ │ │ │ │ ├── identity.js
│ │ │ │ │ │ ├── login.js
│ │ │ │ │ │ ├── machine.js
│ │ │ │ │ │ ├── main.js
│ │ │ │ │ │ ├── metric.js
│ │ │ │ │ │ ├── param_flow.js
│ │ │ │ │ │ └── system.js
│ │ │ │ │ ├── directives/
│ │ │ │ │ │ ├── header/
│ │ │ │ │ │ │ ├── header.html
│ │ │ │ │ │ │ └── header.js
│ │ │ │ │ │ └── sidebar/
│ │ │ │ │ │ ├── sidebar-search/
│ │ │ │ │ │ │ ├── sidebar-search.html
│ │ │ │ │ │ │ └── sidebar-search.js
│ │ │ │ │ │ ├── sidebar.html
│ │ │ │ │ │ └── sidebar.js
│ │ │ │ │ ├── filters/
│ │ │ │ │ │ └── filters.js
│ │ │ │ │ ├── libs/
│ │ │ │ │ │ └── treeTable.js
│ │ │ │ │ └── services/
│ │ │ │ │ ├── appservice.js
│ │ │ │ │ ├── auth_service.js
│ │ │ │ │ ├── authority_service.js
│ │ │ │ │ ├── cluster_state_service.js
│ │ │ │ │ ├── degradeservice.js
│ │ │ │ │ ├── flow_service_v1.js
│ │ │ │ │ ├── flow_service_v2.js
│ │ │ │ │ ├── identityservice.js
│ │ │ │ │ ├── machineservice.js
│ │ │ │ │ ├── metricservice.js
│ │ │ │ │ ├── param_flow_service.js
│ │ │ │ │ └── systemservice.js
│ │ │ │ ├── styles/
│ │ │ │ │ ├── main.css
│ │ │ │ │ ├── page.css
│ │ │ │ │ └── timeline.css
│ │ │ │ └── views/
│ │ │ │ ├── authority.html
│ │ │ │ ├── cluster/
│ │ │ │ │ ├── client.html
│ │ │ │ │ └── server.html
│ │ │ │ ├── cluster_app_assign_manage.html
│ │ │ │ ├── cluster_app_client_list.html
│ │ │ │ ├── cluster_app_server_list.html
│ │ │ │ ├── cluster_app_server_overview.html
│ │ │ │ ├── cluster_single_config.html
│ │ │ │ ├── dashboard/
│ │ │ │ │ ├── home.html
│ │ │ │ │ └── main.html
│ │ │ │ ├── degrade.html
│ │ │ │ ├── dialog/
│ │ │ │ │ ├── authority-rule-dialog.html
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ ├── cluster-client-config-dialog.html
│ │ │ │ │ │ ├── cluster-server-assign-dialog.html
│ │ │ │ │ │ └── cluster-server-connection-detail-dialog.html
│ │ │ │ │ ├── confirm-dialog.html
│ │ │ │ │ ├── degrade-rule-dialog.html
│ │ │ │ │ ├── flow-rule-dialog.html
│ │ │ │ │ ├── param-flow-rule-dialog.html
│ │ │ │ │ └── system-rule-dialog.html
│ │ │ │ ├── flow_v1.html
│ │ │ │ ├── flow_v2.html
│ │ │ │ ├── identity.html
│ │ │ │ ├── login.html
│ │ │ │ ├── machine.html
│ │ │ │ ├── metric.html
│ │ │ │ ├── pagination.tpl.html
│ │ │ │ ├── param_flow.html
│ │ │ │ └── system.html
│ │ │ ├── dist/
│ │ │ │ ├── css/
│ │ │ │ │ └── app.css
│ │ │ │ └── js/
│ │ │ │ ├── app.js
│ │ │ │ └── app.vendor.js
│ │ │ ├── gulpfile.js
│ │ │ ├── index.htm
│ │ │ ├── index_dev.htm
│ │ │ ├── license-stat.csv
│ │ │ └── package.json
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── alibaba/
│ │ └── csp/
│ │ └── sentinel/
│ │ └── dashboard/
│ │ ├── config/
│ │ │ └── DashboardConfigTest.java
│ │ ├── datasource/
│ │ │ └── entity/
│ │ │ └── SentinelVersionTest.java
│ │ ├── discovery/
│ │ │ ├── AppInfoTest.java
│ │ │ └── MachineInfoTest.java
│ │ ├── repository/
│ │ │ └── metric/
│ │ │ └── InMemoryMetricsRepositoryTest.java
│ │ ├── rule/
│ │ │ ├── apollo/
│ │ │ │ ├── ApolloConfig.java
│ │ │ │ ├── ApolloConfigUtil.java
│ │ │ │ ├── FlowRuleApolloProvider.java
│ │ │ │ └── FlowRuleApolloPublisher.java
│ │ │ └── nacos/
│ │ │ ├── FlowRuleNacosProvider.java
│ │ │ ├── FlowRuleNacosPublisher.java
│ │ │ ├── NacosConfig.java
│ │ │ └── NacosConfigUtil.java
│ │ └── util/
│ │ └── VersionUtilsTest.java
│ ├── alibaba-sentinel-dashboard-nacos/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── alibaba/
│ │ │ │ └── csp/
│ │ │ │ └── sentinel/
│ │ │ │ └── dashboard/
│ │ │ │ ├── DashboardApplication.java
│ │ │ │ ├── auth/
│ │ │ │ │ ├── AuthService.java
│ │ │ │ │ ├── FakeAuthServiceImpl.java
│ │ │ │ │ └── SimpleWebAuthServiceImpl.java
│ │ │ │ ├── client/
│ │ │ │ │ ├── CommandFailedException.java
│ │ │ │ │ ├── CommandNotFoundException.java
│ │ │ │ │ └── SentinelApiClient.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── DashboardConfig.java
│ │ │ │ │ └── WebConfig.java
│ │ │ │ ├── controller/
│ │ │ │ │ ├── AppController.java
│ │ │ │ │ ├── AuthController.java
│ │ │ │ │ ├── AuthorityRuleController.java
│ │ │ │ │ ├── DegradeController.java
│ │ │ │ │ ├── DemoController.java
│ │ │ │ │ ├── FlowControllerV1.java
│ │ │ │ │ ├── MachineRegistryController.java
│ │ │ │ │ ├── MetricController.java
│ │ │ │ │ ├── ParamFlowRuleController.java
│ │ │ │ │ ├── ResourceController.java
│ │ │ │ │ ├── SystemController.java
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ ├── ClusterAssignController.java
│ │ │ │ │ │ └── ClusterConfigController.java
│ │ │ │ │ └── v2/
│ │ │ │ │ └── FlowControllerV2.java
│ │ │ │ ├── datasource/
│ │ │ │ │ └── entity/
│ │ │ │ │ ├── ApplicationEntity.java
│ │ │ │ │ ├── MachineEntity.java
│ │ │ │ │ ├── MetricEntity.java
│ │ │ │ │ ├── MetricPositionEntity.java
│ │ │ │ │ ├── SentinelVersion.java
│ │ │ │ │ └── rule/
│ │ │ │ │ ├── AbstractRuleEntity.java
│ │ │ │ │ ├── AuthorityRuleEntity.java
│ │ │ │ │ ├── DegradeRuleEntity.java
│ │ │ │ │ ├── FlowRuleEntity.java
│ │ │ │ │ ├── ParamFlowRuleEntity.java
│ │ │ │ │ ├── RuleEntity.java
│ │ │ │ │ └── SystemRuleEntity.java
│ │ │ │ ├── discovery/
│ │ │ │ │ ├── AppInfo.java
│ │ │ │ │ ├── AppManagement.java
│ │ │ │ │ ├── MachineDiscovery.java
│ │ │ │ │ ├── MachineInfo.java
│ │ │ │ │ └── SimpleMachineDiscovery.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── ResourceTreeNode.java
│ │ │ │ │ ├── Result.java
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ ├── ClusterAppAssignResultVO.java
│ │ │ │ │ │ ├── ClusterAppFullAssignRequest.java
│ │ │ │ │ │ ├── ClusterAppSingleServerAssignRequest.java
│ │ │ │ │ │ ├── ClusterClientInfoVO.java
│ │ │ │ │ │ ├── ClusterGroupEntity.java
│ │ │ │ │ │ ├── ClusterStateSingleVO.java
│ │ │ │ │ │ ├── ConnectionDescriptorVO.java
│ │ │ │ │ │ ├── ConnectionGroupVO.java
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ ├── ClusterClientConfig.java
│ │ │ │ │ │ │ ├── ServerFlowConfig.java
│ │ │ │ │ │ │ └── ServerTransportConfig.java
│ │ │ │ │ │ ├── request/
│ │ │ │ │ │ │ ├── ClusterAppAssignMap.java
│ │ │ │ │ │ │ ├── ClusterClientModifyRequest.java
│ │ │ │ │ │ │ ├── ClusterModifyRequest.java
│ │ │ │ │ │ │ └── ClusterServerModifyRequest.java
│ │ │ │ │ │ └── state/
│ │ │ │ │ │ ├── AppClusterClientStateWrapVO.java
│ │ │ │ │ │ ├── AppClusterServerStateWrapVO.java
│ │ │ │ │ │ ├── ClusterClientStateVO.java
│ │ │ │ │ │ ├── ClusterRequestLimitVO.java
│ │ │ │ │ │ ├── ClusterServerStateVO.java
│ │ │ │ │ │ ├── ClusterStateSimpleEntity.java
│ │ │ │ │ │ ├── ClusterUniversalStatePairVO.java
│ │ │ │ │ │ └── ClusterUniversalStateVO.java
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── MachineInfoVo.java
│ │ │ │ │ ├── MetricVo.java
│ │ │ │ │ └── ResourceVo.java
│ │ │ │ ├── filter/
│ │ │ │ │ └── AuthFilter.java
│ │ │ │ ├── metric/
│ │ │ │ │ └── MetricFetcher.java
│ │ │ │ ├── repository/
│ │ │ │ │ ├── metric/
│ │ │ │ │ │ ├── InMemoryMetricsRepository.java
│ │ │ │ │ │ └── MetricsRepository.java
│ │ │ │ │ └── rule/
│ │ │ │ │ ├── InMemAuthorityRuleStore.java
│ │ │ │ │ ├── InMemDegradeRuleStore.java
│ │ │ │ │ ├── InMemFlowRuleStore.java
│ │ │ │ │ ├── InMemParamFlowRuleStore.java
│ │ │ │ │ ├── InMemSystemRuleStore.java
│ │ │ │ │ ├── InMemoryRuleRepositoryAdapter.java
│ │ │ │ │ └── RuleRepository.java
│ │ │ │ ├── rule/
│ │ │ │ │ ├── DynamicRuleProvider.java
│ │ │ │ │ ├── DynamicRulePublisher.java
│ │ │ │ │ ├── FlowRuleApiProvider.java
│ │ │ │ │ ├── FlowRuleApiPublisher.java
│ │ │ │ │ └── nacos/
│ │ │ │ │ ├── FlowRuleNacosProvider.java
│ │ │ │ │ ├── FlowRuleNacosPublisher.java
│ │ │ │ │ └── NacosConfig.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── ClusterAssignService.java
│ │ │ │ │ ├── ClusterAssignServiceImpl.java
│ │ │ │ │ └── ClusterConfigService.java
│ │ │ │ └── util/
│ │ │ │ ├── AsyncUtils.java
│ │ │ │ ├── ClusterEntityUtils.java
│ │ │ │ ├── MachineUtils.java
│ │ │ │ └── VersionUtils.java
│ │ │ ├── resources/
│ │ │ │ └── application.properties
│ │ │ └── webapp/
│ │ │ └── resources/
│ │ │ ├── .gitignore
│ │ │ ├── .jshintrc
│ │ │ ├── README.md
│ │ │ ├── README_zh.md
│ │ │ ├── app/
│ │ │ │ ├── scripts/
│ │ │ │ │ ├── app.js
│ │ │ │ │ ├── controllers/
│ │ │ │ │ │ ├── authority.js
│ │ │ │ │ │ ├── cluster_app_assign_manage.js
│ │ │ │ │ │ ├── cluster_app_server_list.js
│ │ │ │ │ │ ├── cluster_app_server_manage.js
│ │ │ │ │ │ ├── cluster_app_server_monitor.js
│ │ │ │ │ │ ├── cluster_app_token_client_list.js
│ │ │ │ │ │ ├── cluster_single.js
│ │ │ │ │ │ ├── degrade.js
│ │ │ │ │ │ ├── flow_v1.js
│ │ │ │ │ │ ├── flow_v2.js
│ │ │ │ │ │ ├── home.js
│ │ │ │ │ │ ├── identity.js
│ │ │ │ │ │ ├── login.js
│ │ │ │ │ │ ├── machine.js
│ │ │ │ │ │ ├── main.js
│ │ │ │ │ │ ├── metric.js
│ │ │ │ │ │ ├── param_flow.js
│ │ │ │ │ │ └── system.js
│ │ │ │ │ ├── directives/
│ │ │ │ │ │ ├── header/
│ │ │ │ │ │ │ ├── header.html
│ │ │ │ │ │ │ └── header.js
│ │ │ │ │ │ └── sidebar/
│ │ │ │ │ │ ├── sidebar-search/
│ │ │ │ │ │ │ ├── sidebar-search.html
│ │ │ │ │ │ │ └── sidebar-search.js
│ │ │ │ │ │ ├── sidebar.html
│ │ │ │ │ │ └── sidebar.js
│ │ │ │ │ ├── filters/
│ │ │ │ │ │ └── filters.js
│ │ │ │ │ ├── libs/
│ │ │ │ │ │ └── treeTable.js
│ │ │ │ │ └── services/
│ │ │ │ │ ├── appservice.js
│ │ │ │ │ ├── auth_service.js
│ │ │ │ │ ├── authority_service.js
│ │ │ │ │ ├── cluster_state_service.js
│ │ │ │ │ ├── degradeservice.js
│ │ │ │ │ ├── flow_service_v1.js
│ │ │ │ │ ├── flow_service_v2.js
│ │ │ │ │ ├── identityservice.js
│ │ │ │ │ ├── machineservice.js
│ │ │ │ │ ├── metricservice.js
│ │ │ │ │ ├── param_flow_service.js
│ │ │ │ │ └── systemservice.js
│ │ │ │ ├── styles/
│ │ │ │ │ ├── main.css
│ │ │ │ │ ├── page.css
│ │ │ │ │ └── timeline.css
│ │ │ │ └── views/
│ │ │ │ ├── authority.html
│ │ │ │ ├── cluster/
│ │ │ │ │ ├── client.html
│ │ │ │ │ └── server.html
│ │ │ │ ├── cluster_app_assign_manage.html
│ │ │ │ ├── cluster_app_client_list.html
│ │ │ │ ├── cluster_app_server_list.html
│ │ │ │ ├── cluster_app_server_overview.html
│ │ │ │ ├── cluster_single_config.html
│ │ │ │ ├── dashboard/
│ │ │ │ │ ├── home.html
│ │ │ │ │ └── main.html
│ │ │ │ ├── degrade.html
│ │ │ │ ├── dialog/
│ │ │ │ │ ├── authority-rule-dialog.html
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ ├── cluster-client-config-dialog.html
│ │ │ │ │ │ ├── cluster-server-assign-dialog.html
│ │ │ │ │ │ └── cluster-server-connection-detail-dialog.html
│ │ │ │ │ ├── confirm-dialog.html
│ │ │ │ │ ├── degrade-rule-dialog.html
│ │ │ │ │ ├── flow-rule-dialog.html
│ │ │ │ │ ├── param-flow-rule-dialog.html
│ │ │ │ │ └── system-rule-dialog.html
│ │ │ │ ├── flow_v1.html
│ │ │ │ ├── flow_v2.html
│ │ │ │ ├── identity.html
│ │ │ │ ├── login.html
│ │ │ │ ├── machine.html
│ │ │ │ ├── metric.html
│ │ │ │ ├── pagination.tpl.html
│ │ │ │ ├── param_flow.html
│ │ │ │ └── system.html
│ │ │ ├── dist/
│ │ │ │ ├── css/
│ │ │ │ │ └── app.css
│ │ │ │ └── js/
│ │ │ │ ├── app.js
│ │ │ │ └── app.vendor.js
│ │ │ ├── gulpfile.js
│ │ │ ├── index.htm
│ │ │ ├── index_dev.htm
│ │ │ ├── license-stat.csv
│ │ │ └── package.json
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── alibaba/
│ │ └── csp/
│ │ └── sentinel/
│ │ └── dashboard/
│ │ ├── config/
│ │ │ └── DashboardConfigTest.java
│ │ ├── datasource/
│ │ │ └── entity/
│ │ │ └── SentinelVersionTest.java
│ │ ├── discovery/
│ │ │ ├── AppInfoTest.java
│ │ │ └── MachineInfoTest.java
│ │ ├── repository/
│ │ │ └── metric/
│ │ │ └── InMemoryMetricsRepositoryTest.java
│ │ ├── rule/
│ │ │ ├── apollo/
│ │ │ │ ├── ApolloConfig.java
│ │ │ │ ├── ApolloConfigUtil.java
│ │ │ │ ├── FlowRuleApolloProvider.java
│ │ │ │ └── FlowRuleApolloPublisher.java
│ │ │ └── nacos/
│ │ │ ├── FlowRuleNacosProvider.java
│ │ │ ├── FlowRuleNacosPublisher.java
│ │ │ ├── NacosConfig.java
│ │ │ └── NacosConfigUtil.java
│ │ └── util/
│ │ └── VersionUtilsTest.java
│ ├── alibaba-sentinel-datasource-apollo/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── sentinel/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ ├── apollo-env.properties
│ │ └── application.properties
│ ├── alibaba-sentinel-datasource-nacos/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── sentinel/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── alibaba-sentinel-rate-limiting/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── alibaba/
│ │ │ └── sentinel/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── pom.xml
│ ├── stream-consumer-self/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ ├── TestApplication.java
│ │ │ ├── TestController.java
│ │ │ ├── TestListener.java
│ │ │ └── TestTopic.java
│ │ └── resources/
│ │ └── application.properties
│ ├── stream-content-route/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── stream-delayed-message/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── stream-exception-handler-1/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── stream-exception-handler-2/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ ├── stream-exception-handler-3/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── didispace/
│ │ │ └── stream/
│ │ │ └── TestApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── stream-exception-handler-4/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── didispace/
│ │ └── stream/
│ │ └── TestApplication.java
│ └── resources/
│ └── application.properties
├── README.md
└── README_zh.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.class
# Package Files #
*.jar
*.war
*.ear
# idea Files
.idea
*.iml
target
# log Files
*.log
2-Dalston版教程示例/trace-2/build/bootstrap.json
2-Dalston版教程示例/trace-2/build/springAppName_IS_UNDEFINED.json
2-Dalston版教程示例/trace-2/build/trace-2.json
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>compute-service</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>compute-service</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ComputeServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ComputeServiceApplication.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/java/com/didispace/web/ComputeController.java
================================================
package com.didispace.web;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ComputeController {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/add" ,method = RequestMethod.GET)
public Integer add(@RequestParam Integer a, @RequestParam Integer b) {
ServiceInstance instance = client.getLocalServiceInstance();
Integer r = a + b;
logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);
return r;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/resources/application.properties
================================================
spring.application.name=compute-service
server.port=2222
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/test/java/com/didispace/ApplicationTests.java
================================================
package com.didispace;
import com.didispace.web.ComputeController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new ComputeController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/eureka-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-server</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/eureka-server/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-1/eureka-server/src/main/resources/application.properties
================================================
server.port=1111
#eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/FeignApplication.java
================================================
package com.didispace;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class FeignApplication {
public static void main(String[] args) {
SpringApplication.run(FeignApplication.class, args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/service/ComputeClient.java
================================================
package com.didispace.service;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient("compute-service")
public interface ComputeClient {
@RequestMapping(method = RequestMethod.GET, value = "/add")
Integer add(@RequestParam(value = "a") Integer a, @RequestParam(value = "b") Integer b);
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/web/ConsumerController.java
================================================
package com.didispace.web;
import com.didispace.service.ComputeClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConsumerController {
@Autowired
ComputeClient computeClient;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public Integer add() {
return computeClient.add(10, 20);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/resources/application.properties
================================================
spring.application.name=feign-consumer
server.port=3333
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-ribbon</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-ribbon</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/java/com/didispace/RibbonApplication.java
================================================
package com.didispace;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableDiscoveryClient
public class RibbonApplication {
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(RibbonApplication.class, args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/java/com/didispace/web/ConsumerController.java
================================================
package com.didispace.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class ConsumerController {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String add() {
return restTemplate.getForEntity("http://COMPUTE-SERVICE/add?a=10&b=20", String.class).getBody();
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/resources/application.properties
================================================
spring.application.name=ribbon-consumer
server.port=3333
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>compute-service</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>compute-service</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ComputeServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ComputeServiceApplication.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/java/com/didispace/web/ComputeController.java
================================================
package com.didispace.web;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ComputeController {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/add" ,method = RequestMethod.GET)
public Integer add(@RequestParam Integer a, @RequestParam Integer b) {
ServiceInstance instance = client.getLocalServiceInstance();
Integer r = a + b;
logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);
return r;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/resources/application.properties
================================================
spring.application.name=compute-service
server.port=2222
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/test/java/com/didispace/ApplicationTests.java
================================================
package com.didispace;
import com.didispace.web.ComputeController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new ComputeController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--<dependency>-->
<!--<groupId>org.springframework.cloud</groupId>-->
<!--<artifactId>spring-cloud-starter-hystrix</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/FeignApplication.java
================================================
package com.didispace;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class FeignApplication {
public static void main(String[] args) {
SpringApplication.run(FeignApplication.class, args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/service/ComputeClient.java
================================================
package com.didispace.service;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(value = "compute-service", fallback = ComputeClientHystrix.class)
public interface ComputeClient {
@RequestMapping(method = RequestMethod.GET, value = "/add")
Integer add(@RequestParam(value = "a") Integer a, @RequestParam(value = "b") Integer b);
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/service/ComputeClientHystrix.java
================================================
package com.didispace.service;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
@Component
public class ComputeClientHystrix implements ComputeClient {
@Override
public Integer add(@RequestParam(value = "a") Integer a, @RequestParam(value = "b") Integer b) {
return -9999;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/web/ConsumerController.java
================================================
package com.didispace.web;
import com.didispace.service.ComputeClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConsumerController {
@Autowired
ComputeClient computeClient;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public Integer add() {
return computeClient.add(10, 20);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-ribbon</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-ribbon</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/RibbonApplication.java
================================================
package com.didispace;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
public class RibbonApplication {
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(RibbonApplication.class, args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/service/ComputeService.java
================================================
package com.didispace.service;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class ComputeService {
@Autowired
RestTemplate restTemplate;
@HystrixCommand(fallbackMethod = "addServiceFallback")
public String addService() {
return restTemplate.getForEntity("http://COMPUTE-SERVICE/add?a=10&b=20", String.class).getBody();
}
public String addServiceFallback() {
return "error";
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/web/ConsumerController.java
================================================
package com.didispace.web;
import com.didispace.service.ComputeService;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@RestController
public class ConsumerController {
@Autowired
private ComputeService computeService;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String add() {
return computeService.addService();
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-server</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-server/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-server/src/main/resources/application.properties
================================================
server.port=1111
#eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-client/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-client</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/java/com/didispace/web/TestController.java
================================================
package com.didispace.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope
@RestController
class TestController {
@Value("${from}")
private String from;
@RequestMapping("/from")
public String from() {
return this.from;
}
public void setFrom(String from) {
this.from = from;
}
public String getFrom() {
return from;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/resources/bootstrap.properties
================================================
spring.application.name=didispace
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost:7001/
server.port=7002
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace-dev.properties
================================================
from=git-dev-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace-prod.properties
================================================
from=git-prod-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace-test.properties
================================================
from=git-test-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace.properties
================================================
from=git-default-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-server</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/application.properties
================================================
spring.application.name=config-server
server.port=7001
# git
spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringBoot-Learning/
spring.cloud.config.server.git.searchPaths=Chapter9-1-4/config-repo
spring.cloud.config.server.git.username=username
spring.cloud.config.server.git.password=password
#
spring.profiles.active=native
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace-dev.properties
================================================
from=local-dev
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace-prod.properties
================================================
from=local-prod
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace-test.properties
================================================
from=local-test
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace.properties
================================================
from=local
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/api-gateway/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>api-gateway</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>api-gateway</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import com.didispace.filter.AccessFilter;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;
@EnableZuulProxy
@SpringCloudApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
@Bean
public AccessFilter accessFilter() {
return new AccessFilter();
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/java/com/didispace/filter/AccessFilter.java
================================================
package com.didispace.filter;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
public class AccessFilter extends ZuulFilter {
private static Logger log = LoggerFactory.getLogger(AccessFilter.class);
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));
Object accessToken = request.getParameter("accessToken");
if(accessToken == null) {
log.warn("access token is empty");
ctx.setSendZuulResponse(false);
ctx.setResponseStatusCode(401);
return null;
}
log.info("access token ok");
return null;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/resources/application.properties
================================================
spring.application.name=api-gateway
server.port=5555
# routes to serviceId
zuul.routes.api-a.path=/api-a/**
zuul.routes.api-a.serviceId=service-A
zuul.routes.api-b.path=/api-b/**
zuul.routes.api-b.serviceId=service-B
# routes to url
zuul.routes.api-a-url.path=/api-a-url/**
zuul.routes.api-a-url.url=http://localhost:2222/
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/eureka-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-server</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/eureka-server/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/eureka-server/src/main/resources/application.properties
================================================
server.port=1111
#eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>service-A</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>service-A</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/java/com/didispace/ComputeServiceApplication.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ComputeServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ComputeServiceApplication.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/java/com/didispace/web/ComputeController.java
================================================
package com.didispace.web;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ComputeController {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/add" ,method = RequestMethod.GET)
public String add(@RequestParam Integer a, @RequestParam Integer b) {
ServiceInstance instance = client.getLocalServiceInstance();
Integer r = a + b;
logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);
return "From Service-A, Result is " + r;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/resources/application.properties
================================================
spring.application.name=service-A
server.port=2222
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/test/java/com/didispace/ApplicationTests.java
================================================
package com.didispace;
import com.didispace.web.ComputeController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new ComputeController()).build();
}
@Test
public void getHello() throws Exception {
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>service-B</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>service-B</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/java/com/didispace/ComputeServiceApplication.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ComputeServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ComputeServiceApplication.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/java/com/didispace/web/ComputeController.java
================================================
package com.didispace.web;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ComputeController {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/add" ,method = RequestMethod.GET)
public String add(@RequestParam Integer a, @RequestParam Integer b) {
ServiceInstance instance = client.getLocalServiceInstance();
Integer r = a + b;
logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);
return "From Service-B, Result is " + r;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/resources/application.properties
================================================
spring.application.name=service-B
server.port=3333
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/test/java/com/didispace/ApplicationTests.java
================================================
package com.didispace;
import com.didispace.web.ComputeController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new ComputeController()).build();
}
@Test
public void getHello() throws Exception {
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>compute-service</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>compute-service</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ComputeServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ComputeServiceApplication.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/java/com/didispace/web/ComputeController.java
================================================
package com.didispace.web;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ComputeController {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/add" ,method = RequestMethod.GET)
public Integer add(@RequestParam Integer a, @RequestParam Integer b) {
ServiceInstance instance = client.getLocalServiceInstance();
Integer r = a + b;
logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);
return r;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/resources/application.properties
================================================
spring.application.name=compute-service
server.port=2222
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/test/java/com/didispace/ApplicationTests.java
================================================
package com.didispace;
import com.didispace.web.ComputeController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new ComputeController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/eureka-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-server</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/resources/application-peer1.properties
================================================
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/resources/application-peer2.properties
================================================
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-client-eureka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-client-eureka</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/java/com/didispace/web/TestController.java
================================================
package com.didispace.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope
@RestController
public class TestController {
@Value("${from}")
private String from;
@RequestMapping("/from")
public String from() {
return this.from;
}
public void setFrom(String from) {
this.from = from;
}
public String getFrom() {
return from;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/resources/bootstrap.properties
================================================
spring.application.name=didispace
server.port=7002
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
spring.cloud.config.profile=dev
spring.cloud.config.failFast=true
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=springcloud
spring.rabbitmq.password=123456
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-client-eureka-kafka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-client-eureka-kafka</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/java/com/didispace/web/TestController.java
================================================
package com.didispace.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope
@RestController
public class TestController {
@Value("${from}")
private String from;
@RequestMapping("/from")
public String from() {
return this.from;
}
public void setFrom(String from) {
this.from = from;
}
public String getFrom() {
return from;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/resources/bootstrap.properties
================================================
spring.application.name=didispace
server.port=7002
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
spring.cloud.config.profile=dev
spring.cloud.config.failFast=true
#kafka
spring.cloud.stream.kafka.binder.zk-nodes=localhost:2181
spring.cloud.stream.kafka.binder.brokers=localhost:9092
spring.cloud.bus.trace.enabled=true
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace-dev.properties
================================================
from=git-dev-3.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace-prod.properties
================================================
from=git-prod-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace-test.properties
================================================
from=git-test-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace.properties
================================================
from=git-default-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-server-eureka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-server-eureka</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/application.properties
================================================
spring.application.name=config-server
server.port=7001
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
# git
spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringCloud-Learning/
spring.cloud.config.server.git.searchPaths=Chapter1-1-8/config-repo
spring.cloud.config.server.git.username=username
spring.cloud.config.server.git.password=password
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace-dev.properties
================================================
from=local-dev
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace-prod.properties
================================================
from=local-prod
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace-test.properties
================================================
from=local-test
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace.properties
================================================
from=local
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-server-eureka-kafka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-server-eureka-kafka</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/application.properties
================================================
spring.application.name=config-server
server.port=7001
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
# git
spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringCloud-Learning/
spring.cloud.config.server.git.searchPaths=Chapter1-1-7/config-repo
spring.cloud.config.server.git.username=username
spring.cloud.config.server.git.password=password
#kafka
spring.cloud.stream.kafka.binder.zk-nodes=localhost:2181
spring.cloud.stream.kafka.binder.brokers=localhost:9092
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace-dev.properties
================================================
from=local-dev
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace-prod.properties
================================================
from=local-prod
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace-test.properties
================================================
from=local-test
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace.properties
================================================
from=local
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-client-eureka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-client-eureka</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/java/com/didispace/web/TestController.java
================================================
package com.didispace.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope
@RestController
public class TestController {
@Value("${from}")
private String from;
@RequestMapping("/from")
public String from() {
return this.from;
}
public void setFrom(String from) {
this.from = from;
}
public String getFrom() {
return from;
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/resources/bootstrap.properties
================================================
spring.application.name=didispace
server.port=7002
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
spring.cloud.config.profile=dev
spring.cloud.config.failFast=true
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace-dev.properties
================================================
from=git-dev-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace-prod.properties
================================================
from=git-prod-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace-test.properties
================================================
from=git-test-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace.properties
================================================
from=git-default-1.0
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-server-eureka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-server-eureka</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/application.properties
================================================
spring.application.name=config-server
server.port=7001
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
# git¹ÜÀíÅäÖÃ
spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringCloud-Learning/
spring.cloud.config.server.git.searchPaths=Chapter1-1-8/config-repo
spring.cloud.config.server.git.username=username
spring.cloud.config.server.git.password=password
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace-dev.properties
================================================
from=local-dev
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace-prod.properties
================================================
from=local-prod
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace-test.properties
================================================
from=local-test
================================================
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace.properties
================================================
from=local
================================================
FILE: 1-Brixton版教程示例/README.md
================================================
# Spring Cloud教程
本项目内容为Spring Cloud教程的程序样例。如您觉得该项目对您有用,欢迎点击右上方的**Star**按钮,给予支持!!
- 我的博客:http://blog.didispace.com
- **我的小密圈(深度交流与问答):https://t.xiaomiquan.com/zfEiY3v**
- GitHub:https://github.com/dyc87112/SpringCloud-Learning
- Gitee:https://gitee.com/didispace/SpringCloud-Learning
- Spring For All社区:http://www.spring4all.com/
- Spring Boot基础教程:http://blog.didispace.com/Spring-Boot%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- Spring Cloud基础教程:http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- **公益调试Eureka:http://eureka.didispace.com**
**优惠云服务推荐**
- [阿里云:ECS云服务器2折起](https://www.aliyun.com/minisite/goods?userCode=wxfqkr0o&share_source=copy_link)
- [腾讯云:3年时长最低265元/年](https://cloud.tencent.com/redirect.php?redirect=1005&cps_key=f6a8af1297bfac40b9d10ffa1270029a)
本项目教程因做了版本更新,所以对目录结构做了调整,根目录下的各个章节为了博文链接兼容暂时保留。
## 教程列表
#### 《Spring Cloud构建微服务架构》系列博文Brixton版示例
- 1-Brixton版教程示例/chapter1-1-1:[Spring Cloud构建微服务架构(一)服务注册与发现](http://blog.didispace.com/springcloud1/)
- 1-Brixton版教程示例/chapter1-1-2:[Spring Cloud构建微服务架构(二)服务消费者](http://blog.didispace.com/springcloud2/)
- 1-Brixton版教程示例/chapter1-1-3:[Spring Cloud构建微服务架构(三)断路器](http://blog.didispace.com/springcloud3/)
- 1-Brixton版教程示例/chapter1-1-4:[Spring Cloud构建微服务架构(四)分布式配置中心](http://blog.didispace.com/springcloud4/)
- 1-Brixton版教程示例/chapter1-1-8:[Spring Cloud构建微服务架构(四)分布式配置中心(续)](http://blog.didispace.com/springcloud4-2/)
- 1-Brixton版教程示例/chapter1-1-5:[Spring Cloud构建微服务架构(五)服务网关](http://blog.didispace.com/springcloud5/)
- 1-Brixton版教程示例/chapter1-1-6:[Spring Cloud构建微服务架构(六)高可用服务注册中心](http://blog.didispace.com/springcloud6/)
- 1-Brixton版教程示例/chapter1-1-7:[Spring Cloud构建微服务架构(七)消息总线(Rabbit)](http://blog.didispace.com/springcloud7/)
- 1-Brixton版教程示例/chapter1-1-7:[Spring Cloud构建微服务架构(七)消息总线(Kafka)](http://blog.didispace.com/springcloud7-2/)
## 我的公众号

## 推荐我的书

## 其他推荐
- [Spring Boot基础教程](http://blog.didispace.com/Spring-Boot%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/)
- [Spring Boot 2.0新特性](http://blog.didispace.com/Spring-Boot-2-0-feature/)
- [Spring Cloud基础教程](http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/)
- [微服务架构专题](http://blog.didispace.com/micro-serivces-arch/)
================================================
FILE: 2-Dalston版教程示例/README.md
================================================
# Spring Cloud教程
本项目内容为Spring Cloud教程的程序样例。如您觉得该项目对您有用,欢迎点击右上方的**Star**按钮,给予支持!!
- 我的博客:http://blog.didispace.com
- **我的小密圈(深度交流与问答):https://t.xiaomiquan.com/zfEiY3v**
- GitHub:https://github.com/dyc87112/SpringCloud-Learning
- Gitee:https://gitee.com/didispace/SpringCloud-Learning
- Spring For All社区:http://www.spring4all.com/
- Spring Boot基础教程:http://blog.didispace.com/Spring-Boot%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- Spring Cloud基础教程:http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- **公益调试Eureka:http://eureka.didispace.com**
**优惠云服务推荐**
- [阿里云:ECS云服务器2折起](https://www.aliyun.com/sale-season/2020/procurement-new-members?userCode=wxfqkr0o)
- [腾讯云:3年时长最低265元/年](https://url.cn/5iF8JP2)
## 教程列表
#### 《Spring Cloud构建微服务架构》系列博文Dalston版
- [服务注册与发现(Eureka、Consul)](http://blog.didispace.com/spring-cloud-starter-dalston-1/)
- [服务消费者(基础)](http://blog.didispace.com/spring-cloud-starter-dalston-2-1/)
- [服务消费者(Ribbon)](http://blog.didispace.com/spring-cloud-starter-dalston-2-2/)
- [服务消费者(Feign)](http://blog.didispace.com/spring-cloud-starter-dalston-2-3/)
- [服务消费者(Feign)传文件](http://blog.didispace.com/spring-cloud-starter-dalston-2-4/)
- [分布式配置中心](http://blog.didispace.com/spring-cloud-starter-dalston-3)
- [服务容错保护(Hystrix服务降级)](http://blog.didispace.com/spring-cloud-starter-dalston-4-1)
- [服务容错保护(Hystrix依赖隔离)](http://blog.didispace.com/spring-cloud-starter-dalston-4-2)
- [服务容错保护(Hystrix断路器)](http://blog.didispace.com/spring-cloud-starter-dalston-4-3)
- [Hystrix监控面板](http://blog.didispace.com/spring-cloud-starter-dalston-5-1/)
- [Hystrix监控数据聚合](http://blog.didispace.com/spring-cloud-starter-dalston-5-2/)
- [服务网关(基础)](http://blog.didispace.com/spring-cloud-starter-dalston-6-1/)
- [服务网关(路由配置)](http://blog.didispace.com/spring-cloud-starter-dalston-6-2/)
- [服务网关(过滤器)](http://blog.didispace.com/spring-cloud-starter-dalston-6-3/)
- [服务网关(API文档汇总)](http://blog.didispace.com/Spring-Cloud-Zuul-use-Swagger-API-doc/)
- [消息驱动的微服务(入门)](http://blog.didispace.com/spring-cloud-starter-dalston-7-1/)
- [消息驱动的微服务(核心概念)](http://blog.didispace.com/spring-cloud-starter-dalston-7-2/)
- [消息驱动的微服务(消费组)](http://blog.didispace.com/spring-cloud-starter-dalston-7-3/)
- [消息驱动的微服务(消费组案例:解决消息重复消费)](http://blog.didispace.com/spring-cloud-starter-dalston-7-5/)
- [消息驱动的微服务(消息分区)](http://blog.didispace.com/spring-cloud-starter-dalston-7-4/)
- [分布式服务跟踪(入门)](http://blog.didispace.com/spring-cloud-starter-dalston-8-1/)
- [分布式服务跟踪(跟踪原理)](http://blog.didispace.com/spring-cloud-starter-dalston-8-2/)
- [分布式服务跟踪(整合logstash)](http://blog.didispace.com/spring-cloud-starter-dalston-8-3/)
- [分布式服务跟踪(整合zipkin)](http://blog.didispace.com/spring-cloud-starter-dalston-8-4/)
- [分布式服务跟踪(收集原理)](http://blog.didispace.com/spring-cloud-starter-dalston-8-5/)
- [分布式服务跟踪(抽样收集)](http://blog.didispace.com/spring-cloud-starter-dalston-8-6/)
## 我的公众号

## 推荐我的书

## 其他推荐
- [Spring Boot基础教程](http://blog.didispace.com/Spring-Boot%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/)
- [Spring Boot 2.0新特性](http://blog.didispace.com/Spring-Boot-2-0-feature/)
- [Spring Cloud基础教程](http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/)
- [微服务架构专题](http://blog.didispace.com/micro-serivces-arch/)
================================================
FILE: 2-Dalston版教程示例/api-gateway/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>api-gateway</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>api-gateway</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/api-gateway/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@EnableZuulProxy
@SpringCloudApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/api-gateway/src/main/resources/application.yaml
================================================
spring:
application:
name: api-gateway
server:
port: 1101
zuul:
routes:
# single-instance
api-a:
path: /api-a/**
url: http://localhost:2001/
# multi-instance
api-b:
path: /api-b/**
serviceId: api-b
api-b:
ribbon:
listOfServers: http://localhost:2001/, http://localhost:2002/
================================================
FILE: 2-Dalston版教程示例/api-gateway-with-eureka/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>api-gateway-with-eureka</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>api-gateway-with-eureka</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/api-gateway-with-eureka/src/main/java/com/didispace/AccessFilter.java
================================================
package com.didispace;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
public class AccessFilter extends ZuulFilter {
private static Logger log = LoggerFactory.getLogger(AccessFilter.class);
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
log.info("send {} request to {}", request.getMethod(), request.getRequestURL().toString());
Object accessToken = request.getParameter("accessToken");
if(accessToken == null) {
log.warn("access token is empty");
ctx.setSendZuulResponse(false);
ctx.setResponseStatusCode(401);
return null;
}
log.info("access token ok");
return null;
}
}
================================================
FILE: 2-Dalston版教程示例/api-gateway-with-eureka/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@EnableZuulProxy
@SpringCloudApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/api-gateway-with-eureka/src/main/resources/application.yaml
================================================
spring:
application:
name: api-gateway
server:
port: 1101
zuul:
routes:
api-a:
path: /api-a/**
serviceId: eureka-client
eureka:
client:
serviceUrl:
defaultZone: http://localhost:1001/eureka/
================================================
FILE: 2-Dalston版教程示例/config-client/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-client</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/config-client/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
//@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/config-client/src/main/resources/bootstrap.yml
================================================
spring:
application:
name: config-client
cloud:
config:
uri: http://localhost:1201/
profile: default
label: master
server:
port: 2001
================================================
FILE: 2-Dalston版教程示例/config-server-git/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>config-server-git</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>config-server-git</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-security</artifactId>-->
<!--</dependency>-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/config-server-git/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/config-server-git/src/main/resources/application.yml
================================================
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: http://git.oschina.net/didispace/config-repo-demo/
# search-paths: repo
# username:
# password:
server:
port: 1201
================================================
FILE: 2-Dalston版教程示例/consul-client/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>consul-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>consul-client</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/consul-client/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/consul-client/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("/dc")
public String dc() {
String services = "Services: " + discoveryClient.getServices();
System.out.println(services);
return services;
}
}
================================================
FILE: 2-Dalston版教程示例/consul-client/src/main/resources/application.properties
================================================
spring.application.name=consul-client
server.port=2001
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
================================================
FILE: 2-Dalston版教程示例/consul-consumer/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>consul-consumer</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>consul-consumer</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/consul-consumer/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/consul-consumer/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
LoadBalancerClient loadBalancerClient;
@Autowired
RestTemplate restTemplate;
@GetMapping("/consumer")
public String dc() {
ServiceInstance serviceInstance = loadBalancerClient.choose("consul-client");
String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/dc";
System.out.println(url);
return restTemplate.getForObject(url, String.class);
}
}
================================================
FILE: 2-Dalston版教程示例/consul-consumer/src/main/resources/application.properties
================================================
spring.application.name=consul-consumer
server.port=2101
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
logging.file=${spring.application.name}.log
================================================
FILE: 2-Dalston版教程示例/eureka-client/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-client</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-actuator</artifactId>-->
<!--</dependency>-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-client/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-client/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("/dc")
public String dc() {
String services = "Services: " + discoveryClient.getServices();
System.out.println(services);
return services;
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-client/src/main/resources/application.properties
================================================
spring.application.name=eureka-client
server.port=2001
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
#eureka.client.serviceUrl.defaultZone=http://peer1:1001/eureka/,http://peer2:1002/eureka/
logging.file=${spring.application.name}.log
#eureka.instance.prefer-ip-address=true
#
#eureka.client.healthcheck.enabled=true
# ˿
#eureka.instance.instance-id=${spring.application.name}:${random.int}
#server.port=0
#server.port=${random.int[10000,19999]}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-consumer</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-consumer</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-consumer/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
LoadBalancerClient loadBalancerClient;
@Autowired
RestTemplate restTemplate;
@GetMapping("/consumer")
public String dc() {
ServiceInstance serviceInstance = loadBalancerClient.choose("eureka-client");
String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/dc";
System.out.println(url);
return restTemplate.getForObject(url, String.class);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer/src/main/resources/application.properties
================================================
spring.application.name=eureka-consumer
server.port=2101
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
logging.file=${spring.application.name}.log
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-consumer-feign</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-consumer-feign</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/DcClient.java
================================================
package com.didispace;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @author 翟永超
* @create 2017/6/24.
* @blog http://blog.didispace.com
*/
@FeignClient("eureka-client")
public interface DcClient {
@GetMapping("/dc")
String consumer();
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
DcClient dcClient;
@GetMapping("/consumer")
public String dc() {
return dcClient.consumer();
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/resources/application.properties
================================================
spring.application.name=eureka-consumer
server.port=2101
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
logging.file=${spring.application.name}.log
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-consumer-feign-hystrix</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-consumer-feign-hystrix</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcClient.java
================================================
package com.didispace;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @author 翟永超
* @create 2017/6/24.
* @blog http://blog.didispace.com
*/
@FeignClient(name = "eureka-client", fallback = DcClientFallback.class)
public interface DcClient {
@GetMapping("/dc")
String consumer();
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcClientFallback.java
================================================
package com.didispace;
import org.springframework.stereotype.Component;
/**
* @author 翟永超
* @create 2017/6/24.
* @blog http://blog.didispace.com
*/
@Component
public class DcClientFallback implements DcClient {
@Override
public String consumer() {
return "fallback";
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
DcClient dcClient;
@GetMapping("/consumer")
public String dc() {
return dcClient.consumer();
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/resources/application.properties
================================================
spring.application.name=eureka-consumer
server.port=2101
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
feign.hystrix.enabled=true
logging.file=${spring.application.name}.log
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-consumer-ribbon</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-consumer-ribbon</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
RestTemplate restTemplate;
@GetMapping("/consumer")
public String dc() {
return restTemplate.getForObject("http://eureka-client/dc", String.class);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon/src/main/resources/application.properties
================================================
spring.application.name=eureka-consumer
server.port=2101
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
logging.file=${spring.application.name}.log
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-consumer-ribbon-hystrix</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-consumer-ribbon-hystrix</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableCircuitBreaker
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/java/com/didispace/DcController.java
================================================
package com.didispace;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.ribbon.proxy.annotation.Hystrix;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@RestController
public class DcController {
@Autowired
ConsumerService consumerService;
@GetMapping("/consumer")
public String dc() {
return consumerService.consumer();
}
@Service
class ConsumerService {
@Autowired
RestTemplate restTemplate;
@HystrixCommand(fallbackMethod = "fallback")
public String consumer() {
return restTemplate.getForObject("http://eureka-client/dc", String.class);
}
public String fallback() {
return "fallbck";
}
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/resources/application.properties
================================================
spring.application.name=eureka-consumer-ribbon-hystrix
server.port=2101
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
logging.file=${spring.application.name}.log
================================================
FILE: 2-Dalston版教程示例/eureka-feign-api/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-api</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign-api</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-feign-api/src/main/java/com/didispace/api/HelloService.java
================================================
package com.didispace.api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author 翟永超
* @create 2017/8/8.
* @blog http://blog.didispace.com
*/
public interface HelloService {
@GetMapping("/hello")
String hello(@RequestParam(value = "name") String name);
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-client/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign-client</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-feign-client/src/main/java/com/didispace/api/impl/Application.java
================================================
package com.didispace.api.impl;
import com.didispace.api.HelloService;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RestController;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@RestController
class HelloController implements HelloService {
@Override
public String hello(String name) {
return "hello " + name;
}
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-client/src/main/resources/application.properties
================================================
spring.application.name=eureka-feign-client
server.port=2101
eureka.client.serviceUrl.defaultZone=http://eureka.didispace.com/eureka/
================================================
FILE: 2-Dalston版教程示例/eureka-feign-consumer/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-consumer</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign-consumer</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-feign-consumer/src/main/java/com/didispace/api/consumer/Application.java
================================================
package com.didispace.api.consumer;
import com.didispace.api.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@FeignClient("eureka-feign-client")
interface HelloServiceClient extends HelloService {
}
@RestController
class TestController {
@Autowired
private HelloServiceClient helloServiceClient;
@GetMapping("/test")
public String test(String name) {
return helloServiceClient.hello(name);
}
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-consumer/src/main/resources/application.properties
================================================
spring.application.name=eureka-feign-consumer
server.port=2102
eureka.client.serviceUrl.defaultZone=http://eureka.didispace.com/eureka/
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-upload-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign-upload-client</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form-spring</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/main/java/com/didispace/api/consumer/Application.java
================================================
package com.didispace.api.consumer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/main/java/com/didispace/api/consumer/UploadService.java
================================================
package com.didispace.api.consumer;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
@FeignClient(value = "eureka-feign-upload-server", configuration = UploadService.MultipartSupportConfig.class)
public interface UploadService {
@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String handleFileUpload(@RequestPart(value = "file") MultipartFile file);
@Configuration
class MultipartSupportConfig {
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder();
}
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/main/resources/application.properties
================================================
spring.application.name=eureka-feign-upload-client
server.port=10002
eureka.client.serviceUrl.defaultZone=http://eureka.didispace.com/eureka/
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/test/java/com/didispace/api/consumer/UploadTester.java
================================================
package com.didispace.api.consumer;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class UploadTester {
@Autowired
private UploadService uploadService;
@Test
@SneakyThrows
public void testHandleFileUpload() {
File file = new File("upload.txt");
DiskFileItem fileItem = (DiskFileItem) new DiskFileItemFactory().createItem("file",
MediaType.TEXT_PLAIN_VALUE, true, file.getName());
try (InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream()) {
IOUtils.copy(input, os);
} catch (Exception e) {
throw new IllegalArgumentException("Invalid file: " + e, e);
}
MultipartFile multi = new CommonsMultipartFile(fileItem);
log.info(uploadService.handleFileUpload(multi));
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/upload.txt
================================================
aaa
bbb
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-feign-upload-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-feign-upload-server</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-server/src/main/java/com/didispace/api/consumer/Application.java
================================================
package com.didispace.api.consumer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@RestController
public class UploadController {
@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String handleFileUpload(@RequestPart(value = "file") MultipartFile file) {
return file.getName();
}
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-feign-upload-server/src/main/resources/application.properties
================================================
spring.application.name=eureka-feign-upload-server
server.port=10001
eureka.client.serviceUrl.defaultZone=http://eureka.didispace.com/eureka/
================================================
FILE: 2-Dalston版教程示例/eureka-server/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka-server</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-actuator</artifactId>-->
<!--</dependency>-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/eureka-server/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/eureka-server/src/main/resources/application-peer1.properties
================================================
spring.application.name=eureka-server
server.port=1001
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1002/eureka/
================================================
FILE: 2-Dalston版教程示例/eureka-server/src/main/resources/application-peer2.properties
================================================
spring.application.name=eureka-server
server.port=1002
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1001/eureka/
================================================
FILE: 2-Dalston版教程示例/eureka-server/src/main/resources/application.properties
================================================
spring.application.name=eureka-server
server.port=1001
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
logging.file=${spring.application.name}.log
# رձ
#eureka.server.enable-self-preservation=false
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>hystrix-collapser-consumer</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>hystrix-collapser-consumer</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-actuator</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableHystrix
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/main/java/com/didispace/UserService.java
================================================
package com.didispace;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCollapser;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Future;
/**
* @author 翟永超
* @create 2017/7/25.
* @blog http://blog.didispace.com
*/
@Slf4j
@Service
public class UserService {
@Autowired
RestTemplate restTemplate;
@HystrixCollapser(
scope = com.netflix.hystrix.HystrixCollapser.Scope.GLOBAL,
batchMethod = "findByIds",
collapserProperties = {
@HystrixProperty(name="timerDelayInMilliseconds", value = "100")
}
)
public Future<String> findById(Long id) {
log.info("findById : " + id);
return null;
}
@HystrixCommand(commandProperties = @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "5000"))
public List<String> findByIds(List<Long> ids) {
log.info("findByIds : " + ids);
List<String> result = restTemplate.getForObject("http://hystrix-collapser-provider/users?ids={1}",
List.class, StringUtils.join(ids, ","));
log.info(result.toString());
return result;
}
}
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/main/resources/application.properties
================================================
spring.application.name=hystrix-collapser-consumer
server.port=2002
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/test/java/CollapserTest.java
================================================
import com.didispace.Application;
import com.didispace.UserService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.concurrent.Future;
/**
* @author 翟永超
* @create 2017/7/25.
* @blog http://blog.didispace.com
*/
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class CollapserTest {
@Autowired
UserService userService;
@Test
public void test() throws Exception {
Future<String> u1 = userService.findById(1L);
Future<String> u2 = userService.findById(2L);
Future<String> u3 = userService.findById(3L);
Future<String> u4 = userService.findById(4L);
log.info(u1.get().toString());
log.info(u2.get().toString());
log.info(u3.get().toString());
log.info(u4.get().toString());
Assert.assertEquals("aaa",u1.get());
Assert.assertEquals("bbb",u2.get());
Assert.assertEquals("ccc",u3.get());
Assert.assertEquals("ddd",u4.get());
}
}
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-provider/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>hystrix-collapser-provider</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>hystrix-collapser-provider</name>
<description>Spring Cloud In Action</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-actuator</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-provider/src/main/java/com/didispace/Application.java
================================================
package com.didispace;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-provider/src/main/java/com/didispace/UserController.java
================================================
package com.didispace;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author 翟永超
* @create 2017/4/15.
* @blog http://blog.didispace.com
*/
@Slf4j
@RestController
public class UserController {
private static Map<Long, String> users = new HashMap<>();
static {
users.put(1L, "aaa");
users.put(2L, "bbb");
users.put(3L, "ccc");
users.put(4L, "ddd");
users.put(5L, "eee");
}
@RequestMapping(value = "/users/{id}", method = RequestMethod.GET)
public String findById(@PathVariable Long id) {
log.info("findById : " + id);
return users.get(id);
}
@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<String> findByIds(@RequestParam String ids) {
log.info("findByIds : " + ids);
List<String> result = new ArrayList<>();
for(String id : ids.split(",")) {
if(users.get(Long.valueOf(id)) != null)
result.add(users.get(Long.valueOf(id)));
}
log.info("findByIds : " + result);
return result;
}
}
================================================
FILE: 2-Dalston版教程示例/hystrix-collapser-provider/src/main/resources/application.properties
================================================
spring.application.name=hystrix-collapser-provider
server.port=2001
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
================================================
FILE: 2-Dalston版教程示例/hystrix-dashboard/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>hystrix-dashboard</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hystrix-dashboard</name>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Dalston.SR1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/hystrix-dashboard/src/main/java/com/didispace/HystrixDashboardApplication.java
================================================
package com.didispace;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
@EnableHystrixDashboard
@SpringCloudApplication
public class HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}
}
================================================
FILE: 2-Dalston版教程示例/hystrix-dashboard/src/main/resources/application.properties
================================================
spring.application.name=hystrix-dashboard
server.port=1301
================================================
FILE: 2-Dalston版教程示例/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>spring-cloud-dalston</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<modules>
<module>eureka-server</module>
<module>eureka-client</module>
<module>consul-client</module>
<module>eureka-consumer</module>
<module>consul-consumer</module>
<!--使用ribbon和feign调用服务接口-->
<module>eureka-consumer-ribbon</module>
<module>eureka-consumer-feign</module>
<!--分布式配置中心-->
<module>config-server-git</module>
<module>config-client</module>
<!--使用hystrix-->
<module>eureka-consumer-ribbon-hystrix</module>
<module>eureka-consumer-feign-hystrix</module>
<module>hystrix-dashboard</module>
<module>turbine</module>
<module>turbine-amqp</module>
<!--使用feign-->
<module>eureka-feign-api</module>
<module>eureka-feign-client</module>
<module>eureka-feign-consumer</module>
<!--使用feign上传文件-->
<module>eureka-feign-upload-client</module>
<module>eureka-feign-upload-server</module>
<!--hystrix请求合并-->
<module>hystrix-collapser-provider</module>
<module>hystrix-collapser-consumer</module>
<!--api网关-->
<module>api-gateway</module>
<module>api-gateway-with-eureka</module>
<!--使用spring cloud stream-->
<module>stream-hello</module>
<module>stream-consumer-group</module> <!-- 负载均衡消费 -->
<module>stream-consumer-self</module> <!-- 消费自己的消息 -->
<!--分布式跟踪-->
<module>trace-1</module>
<module>trace-2</module>
<module>zipkin-server</module>
<module>zipkin-server-stream</module>
<!--swagger api 文档汇总-->
<module>swagger-service-a</module>
<module>swagger-service-b</module>
<module>swagger-api-gateway</module>
</modules>
</project>
================================================
FILE: 2-Dalston版教程示例/stream-consumer-group/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>stream-consumer-group</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/java/com/didispace/stream/ExampleApplication.java
================================================
package com.didispace.stream;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ExampleApplication {
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
}
================================================
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/java/com/didispace/stream/ExampleBinder.java
================================================
package com.didispace.stream;
import org.springframework.cloud.stream.annotation.Input;
import org.springframework.messaging.SubscribableChannel;
interface ExampleBinder {
String NAME = "example-topic";
@Input(NAME)
SubscribableChannel input();
}
================================================
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/java/com/didispace/stream/ExampleReceiver.java
================================================
package com.didispace.stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
@EnableBinding(ExampleBinder.class)
public class ExampleReceiver {
private static Logger logger = LoggerFactory.getLogger(ExampleReceiver.class);
@StreamListener(ExampleBinder.NAME)
public void receive(String payload) {
logger.info("Received: " + payload);
}
}
================================================
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/resources/application.properties
================================================
spring.application.name=stream-consumer-group
server.port=0
spring.cloud.stream.bindings.example-topic.group=aaa
================================================
FILE: 2-Dalston版教程示例/stream-consumer-group/src/test/java/com/didispace/ExampleApplicationTests.java
================================================
package com.didispace;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.MessageChannel;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@EnableBinding(value = {ExampleApplicationTests.ExampleBinder.class})
public class ExampleApplicationTests {
@Autowired
private ExampleBinder exampleBinder;
@Test
public void exampleBinderTester() {
exampleBinder.output().send(MessageBuilder.withPayload("Produce a message from : http://blog.didispace.com").build());
}
public interface ExampleBinder {
String NAME = "example-topic";
@Output(NAME)
MessageChannel output();
}
}
================================================
FILE: 2-Dalston版教程示例/stream-consumer-self/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.didispace</groupId>
<artifactId>stream-consumer-self</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestApplication.java
================================================
package com.didispace.stream;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.stream.annotation.EnableBinding;
@EnableBinding(TestTopic.class)
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
================================================
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestController.java
================================================
package com.didispace.stream;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class TestController {
@Autowired
private TestTopic testTopic;
@GetMapping("/sendMessage")
public String messageWithMQ(@RequestParam String message) {
testTopic.output().send(MessageBuilder.withPayload(message).build());
return "ok";
}
}
================================================
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestListener.java
================================================
package com.didispace.stream;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.stream.annotation.Strea
gitextract__j33z0th/ ├── .gitignore ├── 1-Brixton版教程示例/ │ ├── Chapter1-1-1/ │ │ ├── compute-service/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter1-1-2/ │ │ ├── eureka-feign/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── FeignApplication.java │ │ │ │ ├── service/ │ │ │ │ │ └── ComputeClient.java │ │ │ │ └── web/ │ │ │ │ └── ConsumerController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── eureka-ribbon/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── RibbonApplication.java │ │ │ └── web/ │ │ │ └── ConsumerController.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter1-1-3/ │ │ ├── compute-service/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ ├── eureka-feign/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── FeignApplication.java │ │ │ ├── service/ │ │ │ │ ├── ComputeClient.java │ │ │ │ └── ComputeClientHystrix.java │ │ │ └── web/ │ │ │ └── ConsumerController.java │ │ ├── eureka-ribbon/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── RibbonApplication.java │ │ │ ├── service/ │ │ │ │ └── ComputeService.java │ │ │ └── web/ │ │ │ └── ConsumerController.java │ │ └── eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter1-1-4/ │ │ ├── config-client/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── TestController.java │ │ │ └── resources/ │ │ │ └── bootstrap.properties │ │ ├── config-repo/ │ │ │ ├── didispace-dev.properties │ │ │ ├── didispace-prod.properties │ │ │ ├── didispace-test.properties │ │ │ └── didispace.properties │ │ └── config-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── didispace-dev.properties │ │ ├── didispace-prod.properties │ │ ├── didispace-test.properties │ │ └── didispace.properties │ ├── Chapter1-1-5/ │ │ ├── api-gateway/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── filter/ │ │ │ │ └── AccessFilter.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ ├── eureka-server/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ ├── service-A/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── service-B/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ └── web/ │ │ │ │ └── ComputeController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter1-1-6/ │ │ ├── compute-service/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application-peer1.properties │ │ └── application-peer2.properties │ ├── Chapter1-1-7/ │ │ ├── config-client-eureka/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── TestController.java │ │ │ └── resources/ │ │ │ └── bootstrap.properties │ │ ├── config-client-eureka-kafka/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── TestController.java │ │ │ └── resources/ │ │ │ └── bootstrap.properties │ │ ├── config-repo/ │ │ │ ├── didispace-dev.properties │ │ │ ├── didispace-prod.properties │ │ │ ├── didispace-test.properties │ │ │ └── didispace.properties │ │ ├── config-server-eureka/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── didispace-dev.properties │ │ │ ├── didispace-prod.properties │ │ │ ├── didispace-test.properties │ │ │ └── didispace.properties │ │ └── config-server-eureka-kafka/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── didispace-dev.properties │ │ ├── didispace-prod.properties │ │ ├── didispace-test.properties │ │ └── didispace.properties │ ├── Chapter1-1-8/ │ │ ├── config-client-eureka/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── TestController.java │ │ │ └── resources/ │ │ │ └── bootstrap.properties │ │ ├── config-repo/ │ │ │ ├── didispace-dev.properties │ │ │ ├── didispace-prod.properties │ │ │ ├── didispace-test.properties │ │ │ └── didispace.properties │ │ └── config-server-eureka/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── didispace-dev.properties │ │ ├── didispace-prod.properties │ │ ├── didispace-test.properties │ │ └── didispace.properties │ └── README.md ├── 2-Dalston版教程示例/ │ ├── README.md │ ├── api-gateway/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.yaml │ ├── api-gateway-with-eureka/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── AccessFilter.java │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.yaml │ ├── config-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── bootstrap.yml │ ├── config-server-git/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.yml │ ├── consul-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── consul-consumer/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-consumer/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-consumer-feign/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ ├── DcClient.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-consumer-feign-hystrix/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ ├── DcClient.java │ │ │ ├── DcClientFallback.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-consumer-ribbon/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-consumer-ribbon-hystrix/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── DcController.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-feign-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── api/ │ │ └── HelloService.java │ ├── eureka-feign-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── api/ │ │ │ └── impl/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-feign-consumer/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── api/ │ │ │ └── consumer/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-feign-upload-client/ │ │ ├── pom.xml │ │ ├── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ └── api/ │ │ │ │ │ └── consumer/ │ │ │ │ │ ├── Application.java │ │ │ │ │ └── UploadService.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── api/ │ │ │ └── consumer/ │ │ │ └── UploadTester.java │ │ └── upload.txt │ ├── eureka-feign-upload-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── api/ │ │ │ └── consumer/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application-peer1.properties │ │ ├── application-peer2.properties │ │ └── application.properties │ ├── hystrix-collapser-consumer/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── UserService.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── CollapserTest.java │ ├── hystrix-collapser-provider/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── hystrix-dashboard/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── HystrixDashboardApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── pom.xml │ ├── stream-consumer-group/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── stream/ │ │ │ │ ├── ExampleApplication.java │ │ │ │ ├── ExampleBinder.java │ │ │ │ └── ExampleReceiver.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ExampleApplicationTests.java │ ├── stream-consumer-self/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ ├── TestApplication.java │ │ │ ├── TestController.java │ │ │ ├── TestListener.java │ │ │ └── TestTopic.java │ │ └── resources/ │ │ └── application.properties │ ├── stream-hello/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── stream/ │ │ │ │ ├── SinkApplication.java │ │ │ │ └── SinkReceiver.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── SinkApplicationTests.java │ ├── swagger-api-gateway/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.yaml │ ├── swagger-service-a/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── swagger-service-b/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── trace-1/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── TraceApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── trace-2/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── TraceApplication.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-spring.xml │ ├── turbine/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── TurbineApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── turbine-amqp/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── TurbineApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── zipkin-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ZipkinApplication.java │ │ └── resources/ │ │ └── application.properties │ └── zipkin-server-stream/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ZipkinApplication.java │ └── resources/ │ └── application.properties ├── 3-Edgware/ │ ├── README.md │ ├── config-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── config/ │ │ │ └── client/ │ │ │ └── ConfigClientApplication.java │ │ └── resources/ │ │ └── bootstrap.properties │ ├── config-server-db/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── config/ │ │ │ └── server/ │ │ │ └── db/ │ │ │ └── ConfigServerBootstrap.java │ │ └── resources/ │ │ ├── application.properties │ │ └── schema/ │ │ └── V1__Base_version.sql │ └── pom.xml ├── 4-Finchley/ │ ├── README.md │ ├── alibaba-dubbo-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── alibaba/ │ │ └── dubbo/ │ │ └── api/ │ │ └── HelloService.java │ ├── alibaba-dubbo-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── dubbo/ │ │ │ └── client/ │ │ │ └── DubboClientApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-dubbo-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── dubbo/ │ │ │ └── server/ │ │ │ ├── DubboServerApplication.java │ │ │ └── HelloServiceImpl.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-nacos-config-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── nacos/ │ │ │ └── config/ │ │ │ └── client/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── bootstrap.properties │ ├── alibaba-nacos-discovery-client-common/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── nacos/ │ │ │ └── discovery/ │ │ │ └── client/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-nacos-discovery-client-feign/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── nacos/ │ │ │ └── discovery/ │ │ │ └── client/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-nacos-discovery-client-resttemplate/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── nacos/ │ │ │ └── discovery/ │ │ │ └── client/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-nacos-discovery-client-webclient/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── nacos/ │ │ │ └── discovery/ │ │ │ └── client/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-nacos-discovery-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── nacos/ │ │ │ └── discovery/ │ │ │ └── server/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-sentinel-annotation/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── sentinel/ │ │ │ ├── TestApplication.java │ │ │ ├── service/ │ │ │ │ └── TestService.java │ │ │ └── web/ │ │ │ └── TestController.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-sentinel-dashboard-apollo/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── csp/ │ │ │ │ └── sentinel/ │ │ │ │ └── dashboard/ │ │ │ │ ├── DashboardApplication.java │ │ │ │ ├── auth/ │ │ │ │ │ ├── AuthService.java │ │ │ │ │ ├── FakeAuthServiceImpl.java │ │ │ │ │ └── SimpleWebAuthServiceImpl.java │ │ │ │ ├── client/ │ │ │ │ │ ├── CommandFailedException.java │ │ │ │ │ ├── CommandNotFoundException.java │ │ │ │ │ └── SentinelApiClient.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DashboardConfig.java │ │ │ │ │ └── WebConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── AppController.java │ │ │ │ │ ├── AuthController.java │ │ │ │ │ ├── AuthorityRuleController.java │ │ │ │ │ ├── DegradeController.java │ │ │ │ │ ├── DemoController.java │ │ │ │ │ ├── FlowControllerV1.java │ │ │ │ │ ├── MachineRegistryController.java │ │ │ │ │ ├── MetricController.java │ │ │ │ │ ├── ParamFlowRuleController.java │ │ │ │ │ ├── ResourceController.java │ │ │ │ │ ├── SystemController.java │ │ │ │ │ ├── cluster/ │ │ │ │ │ │ ├── ClusterAssignController.java │ │ │ │ │ │ └── ClusterConfigController.java │ │ │ │ │ └── v2/ │ │ │ │ │ └── FlowControllerV2.java │ │ │ │ ├── datasource/ │ │ │ │ │ └── entity/ │ │ │ │ │ ├── ApplicationEntity.java │ │ │ │ │ ├── MachineEntity.java │ │ │ │ │ ├── MetricEntity.java │ │ │ │ │ ├── MetricPositionEntity.java │ │ │ │ │ ├── SentinelVersion.java │ │ │ │ │ └── rule/ │ │ │ │ │ ├── AbstractRuleEntity.java │ │ │ │ │ ├── AuthorityRuleEntity.java │ │ │ │ │ ├── DegradeRuleEntity.java │ │ │ │ │ ├── FlowRuleEntity.java │ │ │ │ │ ├── ParamFlowRuleEntity.java │ │ │ │ │ ├── RuleEntity.java │ │ │ │ │ └── SystemRuleEntity.java │ │ │ │ ├── discovery/ │ │ │ │ │ ├── AppInfo.java │ │ │ │ │ ├── AppManagement.java │ │ │ │ │ ├── MachineDiscovery.java │ │ │ │ │ ├── MachineInfo.java │ │ │ │ │ └── SimpleMachineDiscovery.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── ResourceTreeNode.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── cluster/ │ │ │ │ │ │ ├── ClusterAppAssignResultVO.java │ │ │ │ │ │ ├── ClusterAppFullAssignRequest.java │ │ │ │ │ │ ├── ClusterAppSingleServerAssignRequest.java │ │ │ │ │ │ ├── ClusterClientInfoVO.java │ │ │ │ │ │ ├── ClusterGroupEntity.java │ │ │ │ │ │ ├── ClusterStateSingleVO.java │ │ │ │ │ │ ├── ConnectionDescriptorVO.java │ │ │ │ │ │ ├── ConnectionGroupVO.java │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── ClusterClientConfig.java │ │ │ │ │ │ │ ├── ServerFlowConfig.java │ │ │ │ │ │ │ └── ServerTransportConfig.java │ │ │ │ │ │ ├── request/ │ │ │ │ │ │ │ ├── ClusterAppAssignMap.java │ │ │ │ │ │ │ ├── ClusterClientModifyRequest.java │ │ │ │ │ │ │ ├── ClusterModifyRequest.java │ │ │ │ │ │ │ └── ClusterServerModifyRequest.java │ │ │ │ │ │ └── state/ │ │ │ │ │ │ ├── AppClusterClientStateWrapVO.java │ │ │ │ │ │ ├── AppClusterServerStateWrapVO.java │ │ │ │ │ │ ├── ClusterClientStateVO.java │ │ │ │ │ │ ├── ClusterRequestLimitVO.java │ │ │ │ │ │ ├── ClusterServerStateVO.java │ │ │ │ │ │ ├── ClusterStateSimpleEntity.java │ │ │ │ │ │ ├── ClusterUniversalStatePairVO.java │ │ │ │ │ │ └── ClusterUniversalStateVO.java │ │ │ │ │ └── vo/ │ │ │ │ │ ├── MachineInfoVo.java │ │ │ │ │ ├── MetricVo.java │ │ │ │ │ └── ResourceVo.java │ │ │ │ ├── filter/ │ │ │ │ │ └── AuthFilter.java │ │ │ │ ├── metric/ │ │ │ │ │ └── MetricFetcher.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── metric/ │ │ │ │ │ │ ├── InMemoryMetricsRepository.java │ │ │ │ │ │ └── MetricsRepository.java │ │ │ │ │ └── rule/ │ │ │ │ │ ├── InMemAuthorityRuleStore.java │ │ │ │ │ ├── InMemDegradeRuleStore.java │ │ │ │ │ ├── InMemFlowRuleStore.java │ │ │ │ │ ├── InMemParamFlowRuleStore.java │ │ │ │ │ ├── InMemSystemRuleStore.java │ │ │ │ │ ├── InMemoryRuleRepositoryAdapter.java │ │ │ │ │ └── RuleRepository.java │ │ │ │ ├── rule/ │ │ │ │ │ ├── DynamicRuleProvider.java │ │ │ │ │ ├── DynamicRulePublisher.java │ │ │ │ │ ├── FlowRuleApiProvider.java │ │ │ │ │ ├── FlowRuleApiPublisher.java │ │ │ │ │ └── apollo/ │ │ │ │ │ ├── ApolloConfig.java │ │ │ │ │ ├── FlowRuleApolloProvider.java │ │ │ │ │ └── FlowRuleApolloPublisher.java │ │ │ │ ├── service/ │ │ │ │ │ ├── ClusterAssignService.java │ │ │ │ │ ├── ClusterAssignServiceImpl.java │ │ │ │ │ └── ClusterConfigService.java │ │ │ │ └── util/ │ │ │ │ ├── AsyncUtils.java │ │ │ │ ├── ClusterEntityUtils.java │ │ │ │ ├── MachineUtils.java │ │ │ │ └── VersionUtils.java │ │ │ ├── resources/ │ │ │ │ └── application.properties │ │ │ └── webapp/ │ │ │ └── resources/ │ │ │ ├── .gitignore │ │ │ ├── .jshintrc │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── app/ │ │ │ │ ├── scripts/ │ │ │ │ │ ├── app.js │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ ├── authority.js │ │ │ │ │ │ ├── cluster_app_assign_manage.js │ │ │ │ │ │ ├── cluster_app_server_list.js │ │ │ │ │ │ ├── cluster_app_server_manage.js │ │ │ │ │ │ ├── cluster_app_server_monitor.js │ │ │ │ │ │ ├── cluster_app_token_client_list.js │ │ │ │ │ │ ├── cluster_single.js │ │ │ │ │ │ ├── degrade.js │ │ │ │ │ │ ├── flow_v1.js │ │ │ │ │ │ ├── flow_v2.js │ │ │ │ │ │ ├── home.js │ │ │ │ │ │ ├── identity.js │ │ │ │ │ │ ├── login.js │ │ │ │ │ │ ├── machine.js │ │ │ │ │ │ ├── main.js │ │ │ │ │ │ ├── metric.js │ │ │ │ │ │ ├── param_flow.js │ │ │ │ │ │ └── system.js │ │ │ │ │ ├── directives/ │ │ │ │ │ │ ├── header/ │ │ │ │ │ │ │ ├── header.html │ │ │ │ │ │ │ └── header.js │ │ │ │ │ │ └── sidebar/ │ │ │ │ │ │ ├── sidebar-search/ │ │ │ │ │ │ │ ├── sidebar-search.html │ │ │ │ │ │ │ └── sidebar-search.js │ │ │ │ │ │ ├── sidebar.html │ │ │ │ │ │ └── sidebar.js │ │ │ │ │ ├── filters/ │ │ │ │ │ │ └── filters.js │ │ │ │ │ ├── libs/ │ │ │ │ │ │ └── treeTable.js │ │ │ │ │ └── services/ │ │ │ │ │ ├── appservice.js │ │ │ │ │ ├── auth_service.js │ │ │ │ │ ├── authority_service.js │ │ │ │ │ ├── cluster_state_service.js │ │ │ │ │ ├── degradeservice.js │ │ │ │ │ ├── flow_service_v1.js │ │ │ │ │ ├── flow_service_v2.js │ │ │ │ │ ├── identityservice.js │ │ │ │ │ ├── machineservice.js │ │ │ │ │ ├── metricservice.js │ │ │ │ │ ├── param_flow_service.js │ │ │ │ │ └── systemservice.js │ │ │ │ ├── styles/ │ │ │ │ │ ├── main.css │ │ │ │ │ ├── page.css │ │ │ │ │ └── timeline.css │ │ │ │ └── views/ │ │ │ │ ├── authority.html │ │ │ │ ├── cluster/ │ │ │ │ │ ├── client.html │ │ │ │ │ └── server.html │ │ │ │ ├── cluster_app_assign_manage.html │ │ │ │ ├── cluster_app_client_list.html │ │ │ │ ├── cluster_app_server_list.html │ │ │ │ ├── cluster_app_server_overview.html │ │ │ │ ├── cluster_single_config.html │ │ │ │ ├── dashboard/ │ │ │ │ │ ├── home.html │ │ │ │ │ └── main.html │ │ │ │ ├── degrade.html │ │ │ │ ├── dialog/ │ │ │ │ │ ├── authority-rule-dialog.html │ │ │ │ │ ├── cluster/ │ │ │ │ │ │ ├── cluster-client-config-dialog.html │ │ │ │ │ │ ├── cluster-server-assign-dialog.html │ │ │ │ │ │ └── cluster-server-connection-detail-dialog.html │ │ │ │ │ ├── confirm-dialog.html │ │ │ │ │ ├── degrade-rule-dialog.html │ │ │ │ │ ├── flow-rule-dialog.html │ │ │ │ │ ├── param-flow-rule-dialog.html │ │ │ │ │ └── system-rule-dialog.html │ │ │ │ ├── flow_v1.html │ │ │ │ ├── flow_v2.html │ │ │ │ ├── identity.html │ │ │ │ ├── login.html │ │ │ │ ├── machine.html │ │ │ │ ├── metric.html │ │ │ │ ├── pagination.tpl.html │ │ │ │ ├── param_flow.html │ │ │ │ └── system.html │ │ │ ├── dist/ │ │ │ │ ├── css/ │ │ │ │ │ └── app.css │ │ │ │ └── js/ │ │ │ │ ├── app.js │ │ │ │ └── app.vendor.js │ │ │ ├── gulpfile.js │ │ │ ├── index.htm │ │ │ ├── index_dev.htm │ │ │ ├── license-stat.csv │ │ │ └── package.json │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── csp/ │ │ └── sentinel/ │ │ └── dashboard/ │ │ ├── config/ │ │ │ └── DashboardConfigTest.java │ │ ├── datasource/ │ │ │ └── entity/ │ │ │ └── SentinelVersionTest.java │ │ ├── discovery/ │ │ │ ├── AppInfoTest.java │ │ │ └── MachineInfoTest.java │ │ ├── repository/ │ │ │ └── metric/ │ │ │ └── InMemoryMetricsRepositoryTest.java │ │ ├── rule/ │ │ │ ├── apollo/ │ │ │ │ ├── ApolloConfig.java │ │ │ │ ├── ApolloConfigUtil.java │ │ │ │ ├── FlowRuleApolloProvider.java │ │ │ │ └── FlowRuleApolloPublisher.java │ │ │ └── nacos/ │ │ │ ├── FlowRuleNacosProvider.java │ │ │ ├── FlowRuleNacosPublisher.java │ │ │ ├── NacosConfig.java │ │ │ └── NacosConfigUtil.java │ │ └── util/ │ │ └── VersionUtilsTest.java │ ├── alibaba-sentinel-dashboard-nacos/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── csp/ │ │ │ │ └── sentinel/ │ │ │ │ └── dashboard/ │ │ │ │ ├── DashboardApplication.java │ │ │ │ ├── auth/ │ │ │ │ │ ├── AuthService.java │ │ │ │ │ ├── FakeAuthServiceImpl.java │ │ │ │ │ └── SimpleWebAuthServiceImpl.java │ │ │ │ ├── client/ │ │ │ │ │ ├── CommandFailedException.java │ │ │ │ │ ├── CommandNotFoundException.java │ │ │ │ │ └── SentinelApiClient.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DashboardConfig.java │ │ │ │ │ └── WebConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── AppController.java │ │ │ │ │ ├── AuthController.java │ │ │ │ │ ├── AuthorityRuleController.java │ │ │ │ │ ├── DegradeController.java │ │ │ │ │ ├── DemoController.java │ │ │ │ │ ├── FlowControllerV1.java │ │ │ │ │ ├── MachineRegistryController.java │ │ │ │ │ ├── MetricController.java │ │ │ │ │ ├── ParamFlowRuleController.java │ │ │ │ │ ├── ResourceController.java │ │ │ │ │ ├── SystemController.java │ │ │ │ │ ├── cluster/ │ │ │ │ │ │ ├── ClusterAssignController.java │ │ │ │ │ │ └── ClusterConfigController.java │ │ │ │ │ └── v2/ │ │ │ │ │ └── FlowControllerV2.java │ │ │ │ ├── datasource/ │ │ │ │ │ └── entity/ │ │ │ │ │ ├── ApplicationEntity.java │ │ │ │ │ ├── MachineEntity.java │ │ │ │ │ ├── MetricEntity.java │ │ │ │ │ ├── MetricPositionEntity.java │ │ │ │ │ ├── SentinelVersion.java │ │ │ │ │ └── rule/ │ │ │ │ │ ├── AbstractRuleEntity.java │ │ │ │ │ ├── AuthorityRuleEntity.java │ │ │ │ │ ├── DegradeRuleEntity.java │ │ │ │ │ ├── FlowRuleEntity.java │ │ │ │ │ ├── ParamFlowRuleEntity.java │ │ │ │ │ ├── RuleEntity.java │ │ │ │ │ └── SystemRuleEntity.java │ │ │ │ ├── discovery/ │ │ │ │ │ ├── AppInfo.java │ │ │ │ │ ├── AppManagement.java │ │ │ │ │ ├── MachineDiscovery.java │ │ │ │ │ ├── MachineInfo.java │ │ │ │ │ └── SimpleMachineDiscovery.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── ResourceTreeNode.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── cluster/ │ │ │ │ │ │ ├── ClusterAppAssignResultVO.java │ │ │ │ │ │ ├── ClusterAppFullAssignRequest.java │ │ │ │ │ │ ├── ClusterAppSingleServerAssignRequest.java │ │ │ │ │ │ ├── ClusterClientInfoVO.java │ │ │ │ │ │ ├── ClusterGroupEntity.java │ │ │ │ │ │ ├── ClusterStateSingleVO.java │ │ │ │ │ │ ├── ConnectionDescriptorVO.java │ │ │ │ │ │ ├── ConnectionGroupVO.java │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── ClusterClientConfig.java │ │ │ │ │ │ │ ├── ServerFlowConfig.java │ │ │ │ │ │ │ └── ServerTransportConfig.java │ │ │ │ │ │ ├── request/ │ │ │ │ │ │ │ ├── ClusterAppAssignMap.java │ │ │ │ │ │ │ ├── ClusterClientModifyRequest.java │ │ │ │ │ │ │ ├── ClusterModifyRequest.java │ │ │ │ │ │ │ └── ClusterServerModifyRequest.java │ │ │ │ │ │ └── state/ │ │ │ │ │ │ ├── AppClusterClientStateWrapVO.java │ │ │ │ │ │ ├── AppClusterServerStateWrapVO.java │ │ │ │ │ │ ├── ClusterClientStateVO.java │ │ │ │ │ │ ├── ClusterRequestLimitVO.java │ │ │ │ │ │ ├── ClusterServerStateVO.java │ │ │ │ │ │ ├── ClusterStateSimpleEntity.java │ │ │ │ │ │ ├── ClusterUniversalStatePairVO.java │ │ │ │ │ │ └── ClusterUniversalStateVO.java │ │ │ │ │ └── vo/ │ │ │ │ │ ├── MachineInfoVo.java │ │ │ │ │ ├── MetricVo.java │ │ │ │ │ └── ResourceVo.java │ │ │ │ ├── filter/ │ │ │ │ │ └── AuthFilter.java │ │ │ │ ├── metric/ │ │ │ │ │ └── MetricFetcher.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── metric/ │ │ │ │ │ │ ├── InMemoryMetricsRepository.java │ │ │ │ │ │ └── MetricsRepository.java │ │ │ │ │ └── rule/ │ │ │ │ │ ├── InMemAuthorityRuleStore.java │ │ │ │ │ ├── InMemDegradeRuleStore.java │ │ │ │ │ ├── InMemFlowRuleStore.java │ │ │ │ │ ├── InMemParamFlowRuleStore.java │ │ │ │ │ ├── InMemSystemRuleStore.java │ │ │ │ │ ├── InMemoryRuleRepositoryAdapter.java │ │ │ │ │ └── RuleRepository.java │ │ │ │ ├── rule/ │ │ │ │ │ ├── DynamicRuleProvider.java │ │ │ │ │ ├── DynamicRulePublisher.java │ │ │ │ │ ├── FlowRuleApiProvider.java │ │ │ │ │ ├── FlowRuleApiPublisher.java │ │ │ │ │ └── nacos/ │ │ │ │ │ ├── FlowRuleNacosProvider.java │ │ │ │ │ ├── FlowRuleNacosPublisher.java │ │ │ │ │ └── NacosConfig.java │ │ │ │ ├── service/ │ │ │ │ │ ├── ClusterAssignService.java │ │ │ │ │ ├── ClusterAssignServiceImpl.java │ │ │ │ │ └── ClusterConfigService.java │ │ │ │ └── util/ │ │ │ │ ├── AsyncUtils.java │ │ │ │ ├── ClusterEntityUtils.java │ │ │ │ ├── MachineUtils.java │ │ │ │ └── VersionUtils.java │ │ │ ├── resources/ │ │ │ │ └── application.properties │ │ │ └── webapp/ │ │ │ └── resources/ │ │ │ ├── .gitignore │ │ │ ├── .jshintrc │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── app/ │ │ │ │ ├── scripts/ │ │ │ │ │ ├── app.js │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ ├── authority.js │ │ │ │ │ │ ├── cluster_app_assign_manage.js │ │ │ │ │ │ ├── cluster_app_server_list.js │ │ │ │ │ │ ├── cluster_app_server_manage.js │ │ │ │ │ │ ├── cluster_app_server_monitor.js │ │ │ │ │ │ ├── cluster_app_token_client_list.js │ │ │ │ │ │ ├── cluster_single.js │ │ │ │ │ │ ├── degrade.js │ │ │ │ │ │ ├── flow_v1.js │ │ │ │ │ │ ├── flow_v2.js │ │ │ │ │ │ ├── home.js │ │ │ │ │ │ ├── identity.js │ │ │ │ │ │ ├── login.js │ │ │ │ │ │ ├── machine.js │ │ │ │ │ │ ├── main.js │ │ │ │ │ │ ├── metric.js │ │ │ │ │ │ ├── param_flow.js │ │ │ │ │ │ └── system.js │ │ │ │ │ ├── directives/ │ │ │ │ │ │ ├── header/ │ │ │ │ │ │ │ ├── header.html │ │ │ │ │ │ │ └── header.js │ │ │ │ │ │ └── sidebar/ │ │ │ │ │ │ ├── sidebar-search/ │ │ │ │ │ │ │ ├── sidebar-search.html │ │ │ │ │ │ │ └── sidebar-search.js │ │ │ │ │ │ ├── sidebar.html │ │ │ │ │ │ └── sidebar.js │ │ │ │ │ ├── filters/ │ │ │ │ │ │ └── filters.js │ │ │ │ │ ├── libs/ │ │ │ │ │ │ └── treeTable.js │ │ │ │ │ └── services/ │ │ │ │ │ ├── appservice.js │ │ │ │ │ ├── auth_service.js │ │ │ │ │ ├── authority_service.js │ │ │ │ │ ├── cluster_state_service.js │ │ │ │ │ ├── degradeservice.js │ │ │ │ │ ├── flow_service_v1.js │ │ │ │ │ ├── flow_service_v2.js │ │ │ │ │ ├── identityservice.js │ │ │ │ │ ├── machineservice.js │ │ │ │ │ ├── metricservice.js │ │ │ │ │ ├── param_flow_service.js │ │ │ │ │ └── systemservice.js │ │ │ │ ├── styles/ │ │ │ │ │ ├── main.css │ │ │ │ │ ├── page.css │ │ │ │ │ └── timeline.css │ │ │ │ └── views/ │ │ │ │ ├── authority.html │ │ │ │ ├── cluster/ │ │ │ │ │ ├── client.html │ │ │ │ │ └── server.html │ │ │ │ ├── cluster_app_assign_manage.html │ │ │ │ ├── cluster_app_client_list.html │ │ │ │ ├── cluster_app_server_list.html │ │ │ │ ├── cluster_app_server_overview.html │ │ │ │ ├── cluster_single_config.html │ │ │ │ ├── dashboard/ │ │ │ │ │ ├── home.html │ │ │ │ │ └── main.html │ │ │ │ ├── degrade.html │ │ │ │ ├── dialog/ │ │ │ │ │ ├── authority-rule-dialog.html │ │ │ │ │ ├── cluster/ │ │ │ │ │ │ ├── cluster-client-config-dialog.html │ │ │ │ │ │ ├── cluster-server-assign-dialog.html │ │ │ │ │ │ └── cluster-server-connection-detail-dialog.html │ │ │ │ │ ├── confirm-dialog.html │ │ │ │ │ ├── degrade-rule-dialog.html │ │ │ │ │ ├── flow-rule-dialog.html │ │ │ │ │ ├── param-flow-rule-dialog.html │ │ │ │ │ └── system-rule-dialog.html │ │ │ │ ├── flow_v1.html │ │ │ │ ├── flow_v2.html │ │ │ │ ├── identity.html │ │ │ │ ├── login.html │ │ │ │ ├── machine.html │ │ │ │ ├── metric.html │ │ │ │ ├── pagination.tpl.html │ │ │ │ ├── param_flow.html │ │ │ │ └── system.html │ │ │ ├── dist/ │ │ │ │ ├── css/ │ │ │ │ │ └── app.css │ │ │ │ └── js/ │ │ │ │ ├── app.js │ │ │ │ └── app.vendor.js │ │ │ ├── gulpfile.js │ │ │ ├── index.htm │ │ │ ├── index_dev.htm │ │ │ ├── license-stat.csv │ │ │ └── package.json │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── csp/ │ │ └── sentinel/ │ │ └── dashboard/ │ │ ├── config/ │ │ │ └── DashboardConfigTest.java │ │ ├── datasource/ │ │ │ └── entity/ │ │ │ └── SentinelVersionTest.java │ │ ├── discovery/ │ │ │ ├── AppInfoTest.java │ │ │ └── MachineInfoTest.java │ │ ├── repository/ │ │ │ └── metric/ │ │ │ └── InMemoryMetricsRepositoryTest.java │ │ ├── rule/ │ │ │ ├── apollo/ │ │ │ │ ├── ApolloConfig.java │ │ │ │ ├── ApolloConfigUtil.java │ │ │ │ ├── FlowRuleApolloProvider.java │ │ │ │ └── FlowRuleApolloPublisher.java │ │ │ └── nacos/ │ │ │ ├── FlowRuleNacosProvider.java │ │ │ ├── FlowRuleNacosPublisher.java │ │ │ ├── NacosConfig.java │ │ │ └── NacosConfigUtil.java │ │ └── util/ │ │ └── VersionUtilsTest.java │ ├── alibaba-sentinel-datasource-apollo/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── sentinel/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ ├── apollo-env.properties │ │ └── application.properties │ ├── alibaba-sentinel-datasource-nacos/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── sentinel/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── alibaba-sentinel-rate-limiting/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── alibaba/ │ │ │ └── sentinel/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── pom.xml │ ├── stream-consumer-self/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ ├── TestApplication.java │ │ │ ├── TestController.java │ │ │ ├── TestListener.java │ │ │ └── TestTopic.java │ │ └── resources/ │ │ └── application.properties │ ├── stream-content-route/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── stream-delayed-message/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── stream-exception-handler-1/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── stream-exception-handler-2/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ ├── stream-exception-handler-3/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── stream/ │ │ │ └── TestApplication.java │ │ └── resources/ │ │ └── application.properties │ └── stream-exception-handler-4/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── stream/ │ │ └── TestApplication.java │ └── resources/ │ └── application.properties ├── README.md └── README_zh.md
Showing preview only (297K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3280 symbols across 388 files)
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java
class ComputeServiceApplication (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/java/com/didispace/web/ComputeController.java
class ComputeController (line 12) | @RestController
method add (line 20) | @RequestMapping(value = "/add" ,method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-1/compute-service/src/test/java/com/didispace/ApplicationTests.java
class ApplicationTests (line 21) | @RunWith(SpringJUnit4ClassRunner.class)
method setUp (line 28) | @Before
method getHello (line 33) | @Test
FILE: 1-Brixton版教程示例/Chapter1-1-1/eureka-server/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableEurekaServer
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/FeignApplication.java
class FeignApplication (line 8) | @SpringBootApplication
method main (line 13) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/service/ComputeClient.java
type ComputeClient (line 8) | @FeignClient("compute-service")
method add (line 11) | @RequestMapping(method = RequestMethod.GET, value = "/add")
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/web/ConsumerController.java
class ConsumerController (line 9) | @RestController
method add (line 15) | @RequestMapping(value = "/add", method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/java/com/didispace/RibbonApplication.java
class RibbonApplication (line 10) | @SpringBootApplication
method restTemplate (line 14) | @Bean
method main (line 20) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/java/com/didispace/web/ConsumerController.java
class ConsumerController (line 9) | @RestController
method add (line 15) | @RequestMapping(value = "/add", method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java
class ComputeServiceApplication (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/java/com/didispace/web/ComputeController.java
class ComputeController (line 12) | @RestController
method add (line 20) | @RequestMapping(value = "/add" ,method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-3/compute-service/src/test/java/com/didispace/ApplicationTests.java
class ApplicationTests (line 21) | @RunWith(SpringJUnit4ClassRunner.class)
method setUp (line 28) | @Before
method getHello (line 33) | @Test
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/FeignApplication.java
class FeignApplication (line 8) | @SpringBootApplication
method main (line 13) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/service/ComputeClient.java
type ComputeClient (line 8) | @FeignClient(value = "compute-service", fallback = ComputeClientHystrix....
method add (line 11) | @RequestMapping(method = RequestMethod.GET, value = "/add")
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/service/ComputeClientHystrix.java
class ComputeClientHystrix (line 6) | @Component
method add (line 9) | @Override
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/web/ConsumerController.java
class ConsumerController (line 9) | @RestController
method add (line 15) | @RequestMapping(value = "/add", method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/RibbonApplication.java
class RibbonApplication (line 11) | @SpringBootApplication
method restTemplate (line 16) | @Bean
method main (line 22) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/service/ComputeService.java
class ComputeService (line 8) | @Service
method addService (line 14) | @HystrixCommand(fallbackMethod = "addServiceFallback")
method addServiceFallback (line 19) | public String addServiceFallback() {
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/web/ConsumerController.java
class ConsumerController (line 13) | @RestController
method add (line 19) | @RequestMapping(value = "/add", method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-3/eureka-server/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableEurekaServer
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/java/com/didispace/Application.java
class Application (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/java/com/didispace/web/TestController.java
class TestController (line 8) | @RefreshScope
method from (line 15) | @RequestMapping("/from")
method setFrom (line 21) | public void setFrom(String from) {
method getFrom (line 25) | public String getFrom() {
FILE: 1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableConfigServer
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/java/com/didispace/Application.java
class Application (line 9) | @EnableZuulProxy
method main (line 13) | public static void main(String[] args) {
method accessFilter (line 17) | @Bean
FILE: 1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/java/com/didispace/filter/AccessFilter.java
class AccessFilter (line 10) | public class AccessFilter extends ZuulFilter {
method filterType (line 14) | @Override
method filterOrder (line 19) | @Override
method shouldFilter (line 24) | @Override
method run (line 29) | @Override
FILE: 1-Brixton版教程示例/Chapter1-1-5/eureka-server/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableEurekaServer
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/java/com/didispace/ComputeServiceApplication.java
class ComputeServiceApplication (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/java/com/didispace/web/ComputeController.java
class ComputeController (line 12) | @RestController
method add (line 20) | @RequestMapping(value = "/add" ,method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-A/src/test/java/com/didispace/ApplicationTests.java
class ApplicationTests (line 21) | @RunWith(SpringJUnit4ClassRunner.class)
method setUp (line 28) | @Before
method getHello (line 33) | @Test
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/java/com/didispace/ComputeServiceApplication.java
class ComputeServiceApplication (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/java/com/didispace/web/ComputeController.java
class ComputeController (line 12) | @RestController
method add (line 20) | @RequestMapping(value = "/add" ,method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-5/service-B/src/test/java/com/didispace/ApplicationTests.java
class ApplicationTests (line 15) | @RunWith(SpringJUnit4ClassRunner.class)
method setUp (line 22) | @Before
method getHello (line 27) | @Test
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java
class ComputeServiceApplication (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/java/com/didispace/web/ComputeController.java
class ComputeController (line 12) | @RestController
method add (line 20) | @RequestMapping(value = "/add" ,method = RequestMethod.GET)
FILE: 1-Brixton版教程示例/Chapter1-1-6/compute-service/src/test/java/com/didispace/ApplicationTests.java
class ApplicationTests (line 21) | @RunWith(SpringJUnit4ClassRunner.class)
method setUp (line 28) | @Before
method getHello (line 33) | @Test
FILE: 1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableEurekaServer
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/java/com/didispace/web/TestController.java
class TestController (line 8) | @RefreshScope
method from (line 15) | @RequestMapping("/from")
method setFrom (line 20) | public void setFrom(String from) {
method getFrom (line 24) | public String getFrom() {
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/java/com/didispace/web/TestController.java
class TestController (line 8) | @RefreshScope
method from (line 15) | @RequestMapping("/from")
method setFrom (line 20) | public void setFrom(String from) {
method getFrom (line 24) | public String getFrom() {
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/java/com/didispace/Application.java
class Application (line 8) | @EnableDiscoveryClient
method main (line 13) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/java/com/didispace/Application.java
class Application (line 8) | @EnableDiscoveryClient
method main (line 13) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/java/com/didispace/web/TestController.java
class TestController (line 8) | @RefreshScope
method from (line 15) | @RequestMapping("/from")
method setFrom (line 20) | public void setFrom(String from) {
method getFrom (line 24) | public String getFrom() {
FILE: 1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/java/com/didispace/Application.java
class Application (line 8) | @EnableDiscoveryClient
method main (line 13) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/api-gateway-with-eureka/src/main/java/com/didispace/AccessFilter.java
class AccessFilter (line 10) | public class AccessFilter extends ZuulFilter {
method filterType (line 14) | @Override
method filterOrder (line 19) | @Override
method shouldFilter (line 24) | @Override
method run (line 29) | @Override
FILE: 2-Dalston版教程示例/api-gateway-with-eureka/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableZuulProxy
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/api-gateway/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableZuulProxy
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/config-client/src/main/java/com/didispace/Application.java
class Application (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/config-server-git/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableConfigServer
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/consul-client/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/consul-client/src/main/java/com/didispace/DcController.java
class DcController (line 14) | @RestController
method dc (line 20) | @GetMapping("/dc")
FILE: 2-Dalston版教程示例/consul-consumer/src/main/java/com/didispace/Application.java
class Application (line 9) | @EnableDiscoveryClient
method restTemplate (line 13) | @Bean
method main (line 18) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/consul-consumer/src/main/java/com/didispace/DcController.java
class DcController (line 15) | @RestController
method dc (line 23) | @GetMapping("/consumer")
FILE: 2-Dalston版教程示例/eureka-client/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-client/src/main/java/com/didispace/DcController.java
class DcController (line 14) | @RestController
method dc (line 20) | @GetMapping("/dc")
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/Application.java
class Application (line 8) | @EnableFeignClients
method main (line 13) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcClient.java
type DcClient (line 11) | @FeignClient(name = "eureka-client", fallback = DcClientFallback.class)
method consumer (line 14) | @GetMapping("/dc")
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcClientFallback.java
class DcClientFallback (line 10) | @Component
method consumer (line 13) | @Override
FILE: 2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcController.java
class DcController (line 12) | @RestController
method dc (line 18) | @GetMapping("/consumer")
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/Application.java
class Application (line 8) | @EnableFeignClients
method main (line 13) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/DcClient.java
type DcClient (line 11) | @FeignClient("eureka-client")
method consumer (line 14) | @GetMapping("/dc")
FILE: 2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/DcController.java
class DcController (line 12) | @RestController
method dc (line 18) | @GetMapping("/consumer")
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/java/com/didispace/Application.java
class Application (line 12) | @EnableCircuitBreaker
method restTemplate (line 17) | @Bean
method main (line 23) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/java/com/didispace/DcController.java
class DcController (line 17) | @RestController
method dc (line 23) | @GetMapping("/consumer")
class ConsumerService (line 28) | @Service
method consumer (line 34) | @HystrixCommand(fallbackMethod = "fallback")
method fallback (line 39) | public String fallback() {
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon/src/main/java/com/didispace/Application.java
class Application (line 10) | @EnableDiscoveryClient
method restTemplate (line 14) | @Bean
method main (line 20) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-consumer-ribbon/src/main/java/com/didispace/DcController.java
class DcController (line 13) | @RestController
method dc (line 19) | @GetMapping("/consumer")
FILE: 2-Dalston版教程示例/eureka-consumer/src/main/java/com/didispace/Application.java
class Application (line 9) | @EnableDiscoveryClient
method restTemplate (line 13) | @Bean
method main (line 18) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-consumer/src/main/java/com/didispace/DcController.java
class DcController (line 15) | @RestController
method dc (line 23) | @GetMapping("/consumer")
FILE: 2-Dalston版教程示例/eureka-feign-api/src/main/java/com/didispace/api/HelloService.java
type HelloService (line 11) | public interface HelloService {
method hello (line 13) | @GetMapping("/hello")
FILE: 2-Dalston版教程示例/eureka-feign-client/src/main/java/com/didispace/api/impl/Application.java
class Application (line 9) | @EnableDiscoveryClient
class HelloController (line 13) | @RestController
method hello (line 16) | @Override
method main (line 23) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-feign-consumer/src/main/java/com/didispace/api/consumer/Application.java
class Application (line 13) | @EnableFeignClients
type HelloServiceClient (line 18) | @FeignClient("eureka-feign-client")
class TestController (line 23) | @RestController
method test (line 29) | @GetMapping("/test")
method main (line 36) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/main/java/com/didispace/api/consumer/Application.java
class Application (line 9) | @EnableFeignClients
method main (line 14) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/main/java/com/didispace/api/consumer/UploadService.java
type UploadService (line 13) | @FeignClient(value = "eureka-feign-upload-server", configuration = Uploa...
method handleFileUpload (line 16) | @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FOR...
class MultipartSupportConfig (line 19) | @Configuration
method feignFormEncoder (line 21) | @Bean
FILE: 2-Dalston版教程示例/eureka-feign-upload-client/src/test/java/com/didispace/api/consumer/UploadTester.java
class UploadTester (line 22) | @Slf4j
method testHandleFileUpload (line 30) | @Test
FILE: 2-Dalston版教程示例/eureka-feign-upload-server/src/main/java/com/didispace/api/consumer/Application.java
class Application (line 13) | @EnableFeignClients
class UploadController (line 18) | @RestController
method handleFileUpload (line 21) | @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_F...
method main (line 28) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/eureka-server/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableEurekaServer
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/main/java/com/didispace/Application.java
class Application (line 11) | @EnableHystrix
method restTemplate (line 16) | @Bean
method main (line 22) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/main/java/com/didispace/UserService.java
class UserService (line 21) | @Slf4j
method findById (line 28) | @HystrixCollapser(
method findByIds (line 40) | @HystrixCommand(commandProperties = @HystrixProperty(name = "execution...
FILE: 2-Dalston版教程示例/hystrix-collapser-consumer/src/test/java/CollapserTest.java
class CollapserTest (line 18) | @Slf4j
method test (line 26) | @Test
FILE: 2-Dalston版教程示例/hystrix-collapser-provider/src/main/java/com/didispace/Application.java
class Application (line 7) | @EnableDiscoveryClient
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/hystrix-collapser-provider/src/main/java/com/didispace/UserController.java
class UserController (line 16) | @Slf4j
method findById (line 30) | @RequestMapping(value = "/users/{id}", method = RequestMethod.GET)
method findByIds (line 36) | @RequestMapping(value = "/users", method = RequestMethod.GET)
FILE: 2-Dalston版教程示例/hystrix-dashboard/src/main/java/com/didispace/HystrixDashboardApplication.java
class HystrixDashboardApplication (line 7) | @EnableHystrixDashboard
method main (line 11) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/java/com/didispace/stream/ExampleApplication.java
class ExampleApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/java/com/didispace/stream/ExampleBinder.java
type ExampleBinder (line 6) | interface ExampleBinder {
method input (line 10) | @Input(NAME)
FILE: 2-Dalston版教程示例/stream-consumer-group/src/main/java/com/didispace/stream/ExampleReceiver.java
class ExampleReceiver (line 8) | @EnableBinding(ExampleBinder.class)
method receive (line 13) | @StreamListener(ExampleBinder.NAME)
FILE: 2-Dalston版教程示例/stream-consumer-group/src/test/java/com/didispace/ExampleApplicationTests.java
class ExampleApplicationTests (line 12) | @RunWith(SpringRunner.class)
method exampleBinderTester (line 19) | @Test
type ExampleBinder (line 24) | public interface ExampleBinder {
method output (line 28) | @Output(NAME)
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestApplication.java
class TestApplication (line 8) | @EnableBinding(TestTopic.class)
method main (line 12) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestController.java
class TestController (line 10) | @Slf4j
method messageWithMQ (line 17) | @GetMapping("/sendMessage")
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestListener.java
class TestListener (line 7) | @Slf4j
method receive (line 11) | @StreamListener(TestTopic.INPUT)
FILE: 2-Dalston版教程示例/stream-consumer-self/src/main/java/com/didispace/stream/TestTopic.java
type TestTopic (line 8) | public interface TestTopic {
method output (line 13) | @Output(OUTPUT)
method input (line 16) | @Input(INPUT)
FILE: 2-Dalston版教程示例/stream-hello/src/main/java/com/didispace/stream/SinkApplication.java
class SinkApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/stream-hello/src/main/java/com/didispace/stream/SinkReceiver.java
class SinkReceiver (line 9) | @EnableBinding(Sink.class)
method receive (line 14) | @StreamListener(Sink.INPUT)
FILE: 2-Dalston版教程示例/stream-hello/src/test/java/com/didispace/SinkApplicationTests.java
class SinkApplicationTests (line 12) | @RunWith(SpringRunner.class)
method sinkSenderTester (line 19) | @Test
type SinkSender (line 24) | public interface SinkSender {
method output (line 28) | @Output(SinkSender.OUTPUT)
FILE: 2-Dalston版教程示例/swagger-api-gateway/src/main/java/com/didispace/Application.java
class Application (line 15) | @EnableSwagger2Doc
method main (line 20) | public static void main(String[] args) {
class DocumentationConfig (line 24) | @Component
method get (line 27) | @Override
method swaggerResource (line 35) | private SwaggerResource swaggerResource(String name, String location...
FILE: 2-Dalston版教程示例/swagger-service-a/src/main/java/com/didispace/Application.java
class Application (line 12) | @EnableSwagger2Doc
method main (line 17) | public static void main(String[] args) {
class AaaController (line 21) | @RestController
method dc (line 27) | @GetMapping("/service-a")
FILE: 2-Dalston版教程示例/swagger-service-b/src/main/java/com/didispace/Application.java
class Application (line 12) | @EnableSwagger2Doc
method main (line 17) | public static void main(String[] args) {
class BbbController (line 21) | @RestController
method dc (line 27) | @GetMapping("/service-b")
FILE: 2-Dalston版教程示例/trace-1/src/main/java/com/didispace/TraceApplication.java
class TraceApplication (line 14) | @RestController
method restTemplate (line 26) | @Bean
method trace (line 32) | @RequestMapping(value = "/trace-1", method = RequestMethod.GET)
method main (line 38) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/trace-2/src/main/java/com/didispace/TraceApplication.java
class TraceApplication (line 14) | @RestController
method trace (line 21) | @RequestMapping(value = "/trace-2", method = RequestMethod.GET)
method main (line 28) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/turbine-amqp/src/main/java/com/didispace/TurbineApplication.java
class TurbineApplication (line 9) | @Configuration
method main (line 15) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/turbine/src/main/java/com/didispace/TurbineApplication.java
class TurbineApplication (line 9) | @Configuration
method main (line 15) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/zipkin-server-stream/src/main/java/com/didispace/ZipkinApplication.java
class ZipkinApplication (line 10) | @EnableZipkinStreamServer
method main (line 14) | public static void main(String[] args) {
FILE: 2-Dalston版教程示例/zipkin-server/src/main/java/com/didispace/ZipkinApplication.java
class ZipkinApplication (line 7) | @EnableZipkinServer
method main (line 11) | public static void main(String[] args) {
FILE: 3-Edgware/config-client/src/main/java/com/didispace/config/client/ConfigClientApplication.java
class ConfigClientApplication (line 10) | @SpringBootApplication
method main (line 13) | public static void main(String[] args) {
class TestController (line 17) | @RefreshScope
method test (line 24) | @GetMapping("/test")
FILE: 3-Edgware/config-server-db/src/main/java/com/didispace/config/server/db/ConfigServerBootstrap.java
class ConfigServerBootstrap (line 9) | @EnableConfigServer
method main (line 13) | public static void main(String[] args) {
FILE: 3-Edgware/config-server-db/src/main/resources/schema/V1__Base_version.sql
type `properties` (line 1) | CREATE TABLE `properties` (
FILE: 4-Finchley/alibaba-dubbo-api/src/main/java/com/didispace/alibaba/dubbo/api/HelloService.java
type HelloService (line 9) | public interface HelloService {
method hello (line 11) | String hello(String name);
FILE: 4-Finchley/alibaba-dubbo-client/src/main/java/com/didispace/alibaba/dubbo/client/DubboClientApplication.java
class DubboClientApplication (line 14) | @EnableDiscoveryClient
method main (line 18) | public static void main(String[] args) {
class TestController (line 22) | @Slf4j
method test (line 29) | @GetMapping("/test")
FILE: 4-Finchley/alibaba-dubbo-server/src/main/java/com/didispace/alibaba/dubbo/server/DubboServerApplication.java
class DubboServerApplication (line 8) | @EnableDiscoveryClient
method main (line 12) | public static void main(String[] args) {
FILE: 4-Finchley/alibaba-dubbo-server/src/main/java/com/didispace/alibaba/dubbo/server/HelloServiceImpl.java
class HelloServiceImpl (line 7) | @Service
method hello (line 10) | @Override
FILE: 4-Finchley/alibaba-nacos-config-client/src/main/java/com/didispace/alibaba/nacos/config/client/TestApplication.java
class TestApplication (line 12) | @SpringBootApplication
method main (line 15) | public static void main(String[] args) {
class TestController (line 19) | @Slf4j
method hello (line 27) | @GetMapping("/test")
class Test2Controller (line 39) | @Slf4j
method test2 (line 51) | @GetMapping("/test2")
FILE: 4-Finchley/alibaba-nacos-discovery-client-common/src/main/java/com/didispace/alibaba/nacos/discovery/client/TestApplication.java
class TestApplication (line 15) | @EnableDiscoveryClient
method main (line 19) | public static void main(String[] args) {
class TestController (line 23) | @Slf4j
method test (line 30) | @GetMapping("/test")
FILE: 4-Finchley/alibaba-nacos-discovery-client-feign/src/main/java/com/didispace/alibaba/nacos/discovery/client/TestApplication.java
class TestApplication (line 18) | @EnableDiscoveryClient
method main (line 23) | public static void main(String[] args) {
class TestController (line 27) | @Slf4j
method test (line 34) | @GetMapping("/test")
type Client (line 42) | @FeignClient("alibaba-nacos-discovery-server")
method hello (line 45) | @GetMapping("/hello")
FILE: 4-Finchley/alibaba-nacos-discovery-client-resttemplate/src/main/java/com/didispace/alibaba/nacos/discovery/client/TestApplication.java
class TestApplication (line 15) | @EnableDiscoveryClient
method main (line 19) | public static void main(String[] args) {
class TestController (line 23) | @Slf4j
method test (line 30) | @GetMapping("/test")
method restTemplate (line 37) | @Bean
FILE: 4-Finchley/alibaba-nacos-discovery-client-webclient/src/main/java/com/didispace/alibaba/nacos/discovery/client/TestApplication.java
class TestApplication (line 16) | @EnableDiscoveryClient
method main (line 20) | public static void main(String[] args) {
class TestController (line 24) | @Slf4j
method test (line 31) | @GetMapping("/test")
method loadBalancedWebClientBuilder (line 42) | @Bean
FILE: 4-Finchley/alibaba-nacos-discovery-server/src/main/java/com/didispace/alibaba/nacos/discovery/server/TestApplication.java
class TestApplication (line 14) | @EnableDiscoveryClient
method main (line 18) | public static void main(String[] args) {
class TestController (line 22) | @Slf4j
method hello (line 26) | @GetMapping("/hello")
FILE: 4-Finchley/alibaba-sentinel-annotation/src/main/java/com/didispace/alibaba/sentinel/TestApplication.java
class TestApplication (line 9) | @SpringBootApplication
method main (line 12) | public static void main(String[] args) {
method sentinelResourceAspect (line 16) | @Bean
FILE: 4-Finchley/alibaba-sentinel-annotation/src/main/java/com/didispace/alibaba/sentinel/service/TestService.java
class TestService (line 9) | @Slf4j
method doSomeThing (line 14) | @SentinelResource(value = "doSomeThing", blockHandler = "exceptionHand...
method exceptionHandler (line 19) | public void exceptionHandler(String str, BlockException ex) {
method doSomeThing2 (line 24) | @SentinelResource(value = "doSomeThing2", fallback = "fallbackHandler")
method fallbackHandler (line 30) | public void fallbackHandler(String str) {
FILE: 4-Finchley/alibaba-sentinel-annotation/src/main/java/com/didispace/alibaba/sentinel/web/TestController.java
class TestController (line 11) | @Slf4j
method hello (line 18) | @GetMapping("/hello")
method hello2 (line 24) | @GetMapping("/hello2")
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/DashboardApplication.java
class DashboardApplication (line 28) | @SpringBootApplication
method main (line 31) | public static void main(String[] args) {
method triggerSentinelInit (line 36) | private static void triggerSentinelInit() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/AuthService.java
type AuthService (line 24) | public interface AuthService<R> {
method getAuthUser (line 32) | AuthUser getAuthUser(R request);
type PrivilegeType (line 37) | enum PrivilegeType {
type AuthUser (line 67) | interface AuthUser {
method authTarget (line 83) | boolean authTarget(String target, PrivilegeType privilegeType);
method isSuperUser (line 90) | boolean isSuperUser();
method getNickName (line 97) | String getNickName();
method getLoginName (line 104) | String getLoginName();
method getId (line 111) | String getId();
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/FakeAuthServiceImpl.java
class FakeAuthServiceImpl (line 28) | @Component
method getAuthUser (line 31) | @Override
class AuthUserImpl (line 36) | static final class AuthUserImpl implements AuthUser {
method authTarget (line 38) | @Override
method isSuperUser (line 44) | @Override
method getNickName (line 50) | @Override
method getLoginName (line 55) | @Override
method getId (line 60) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/SimpleWebAuthServiceImpl.java
class SimpleWebAuthServiceImpl (line 28) | @Primary
method getAuthUser (line 34) | @Override
class SimpleWebAuthUserImpl (line 45) | public static final class SimpleWebAuthUserImpl implements AuthUser {
method SimpleWebAuthUserImpl (line 49) | public SimpleWebAuthUserImpl(String username) {
method authTarget (line 53) | @Override
method isSuperUser (line 58) | @Override
method getNickName (line 63) | @Override
method getLoginName (line 68) | @Override
method getId (line 73) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/client/CommandFailedException.java
class CommandFailedException (line 21) | public class CommandFailedException extends RuntimeException {
method CommandFailedException (line 23) | public CommandFailedException() {}
method CommandFailedException (line 25) | public CommandFailedException(String message) {
method fillInStackTrace (line 29) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/client/CommandNotFoundException.java
class CommandNotFoundException (line 22) | public class CommandNotFoundException extends Exception {
method CommandNotFoundException (line 24) | public CommandNotFoundException() { }
method CommandNotFoundException (line 26) | public CommandNotFoundException(String message) {
method fillInStackTrace (line 30) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java
class SentinelApiClient (line 87) | @Component
method SentinelApiClient (line 124) | public SentinelApiClient() {
method isSuccess (line 136) | private boolean isSuccess(int statusCode) {
method isCommandNotFound (line 140) | private boolean isCommandNotFound(int statusCode, String body) {
method queryString (line 144) | private StringBuilder queryString(Map<String, String> params) {
method postRequest (line 162) | private HttpUriRequest postRequest(String url, Map<String, String> par...
method urlEncode (line 179) | private String urlEncode(String str) {
method getBody (line 188) | private String getBody(HttpResponse response) throws Exception {
method executeCommand (line 209) | private CompletableFuture<String> executeCommand(String ip, int port, ...
method executeCommand (line 222) | private CompletableFuture<String> executeCommand(String ip, int port, ...
method executeCommand (line 236) | private CompletableFuture<String> executeCommand(String app, String ip...
method executeCommand (line 270) | private CompletableFuture<String> executeCommand(HttpUriRequest reques...
method close (line 308) | public void close() throws Exception {
method fetchItemsAsync (line 312) | @Nullable
method fetchItems (line 325) | @Nullable
method fetchRules (line 345) | private <T extends Rule> List<T> fetchRules(String ip, int port, Strin...
method setRules (line 349) | private boolean setRules(String app, String ip, int port, String type,...
method fetchResourceOfMachine (line 374) | public List<NodeVo> fetchResourceOfMachine(String ip, int port, String...
method fetchClusterNodeOfMachine (line 386) | public List<NodeVo> fetchClusterNodeOfMachine(String ip, int port, boo...
method fetchFlowRuleOfMachine (line 394) | public List<FlowRuleEntity> fetchFlowRuleOfMachine(String app, String ...
method fetchDegradeRuleOfMachine (line 404) | public List<DegradeRuleEntity> fetchDegradeRuleOfMachine(String app, S...
method fetchSystemRuleOfMachine (line 414) | public List<SystemRuleEntity> fetchSystemRuleOfMachine(String app, Str...
method fetchParamFlowRulesOfMachine (line 433) | public CompletableFuture<List<ParamFlowRuleEntity>> fetchParamFlowRule...
method fetchAuthorityRulesOfMachine (line 458) | public List<AuthorityRuleEntity> fetchAuthorityRulesOfMachine(String a...
method setFlowRuleOfMachine (line 481) | public boolean setFlowRuleOfMachine(String app, String ip, int port, L...
method setDegradeRuleOfMachine (line 495) | public boolean setDegradeRuleOfMachine(String app, String ip, int port...
method setSystemRuleOfMachine (line 509) | public boolean setSystemRuleOfMachine(String app, String ip, int port,...
method setAuthorityRuleOfMachine (line 513) | public boolean setAuthorityRuleOfMachine(String app, String ip, int po...
method setParamFlowRuleOfMachine (line 517) | public CompletableFuture<Void> setParamFlowRuleOfMachine(String app, S...
method fetchClusterMode (line 547) | public CompletableFuture<ClusterStateSimpleEntity> fetchClusterMode(St...
method modifyClusterMode (line 560) | public CompletableFuture<Void> modifyClusterMode(String ip, int port, ...
method fetchClusterClientInfoAndConfig (line 582) | public CompletableFuture<ClusterClientInfoVO> fetchClusterClientInfoAn...
method modifyClusterClientConfig (line 595) | public CompletableFuture<Void> modifyClusterClientConfig(String app, S...
method modifyClusterServerFlowConfig (line 617) | public CompletableFuture<Void> modifyClusterServerFlowConfig(String ap...
method modifyClusterServerTransportConfig (line 639) | public CompletableFuture<Void> modifyClusterServerTransportConfig(Stri...
method modifyClusterServerNamespaceSet (line 662) | public CompletableFuture<Void> modifyClusterServerNamespaceSet(String ...
method fetchClusterServerBasicInfo (line 684) | public CompletableFuture<ClusterServerStateVO> fetchClusterServerBasic...
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/config/DashboardConfig.java
class DashboardConfig (line 36) | public class DashboardConfig {
method getConfig (line 69) | @NonNull
method getConfigStr (line 84) | protected static String getConfigStr(String name) {
method getConfigInt (line 99) | protected static int getConfigInt(String name, int defaultVal, int min...
method getAuthUsername (line 113) | public static String getAuthUsername() {
method getAuthPassword (line 117) | public static String getAuthPassword() {
method getHideAppNoMachineMillis (line 121) | public static int getHideAppNoMachineMillis() {
method getRemoveAppNoMachineMillis (line 125) | public static int getRemoveAppNoMachineMillis() {
method getAutoRemoveMachineMillis (line 129) | public static int getAutoRemoveMachineMillis() {
method getUnhealthyMachineMillis (line 133) | public static int getUnhealthyMachineMillis() {
method clearCache (line 137) | public static void clearCache() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/config/WebConfig.java
class WebConfig (line 35) | @Configuration
method addResourceHandlers (line 43) | @Override
method addViewControllers (line 48) | @Override
method sentinelFilterRegistration (line 57) | @Bean
method authenticationFilterRegistration (line 70) | @Bean
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AppController.java
class AppController (line 40) | @RestController
method queryApps (line 47) | @GetMapping("/names.json")
method queryAppInfos (line 52) | @GetMapping("/briefinfos.json")
method getMachinesByApp (line 59) | @GetMapping(value = "/{app}/machines.json")
method removeMachineById (line 80) | @RequestMapping(value = "/{app}/machine/remove.json")
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AuthController.java
class AuthController (line 37) | @RestController
method login (line 49) | @PostMapping("/login")
method logout (line 75) | @RequestMapping(value = "/logout", method = RequestMethod.POST)
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AuthorityRuleController.java
class AuthorityRuleController (line 52) | @RestController
method apiQueryAllRulesForMachine (line 66) | @GetMapping("/rules")
method checkEntityInternal (line 92) | private <R> Result<R> checkEntityInternal(AuthorityRuleEntity entity) {
method apiAddAuthorityRule (line 121) | @PostMapping("/rule")
method apiUpdateParamFlowRule (line 146) | @PutMapping("/rule/{id}")
method apiDeleteRule (line 178) | @DeleteMapping("/rule/{id}")
method publishRules (line 200) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/DegradeController.java
class DegradeController (line 46) | @Controller
method queryMachineRules (line 60) | @ResponseBody
method add (line 85) | @ResponseBody
method updateIfNotNull (line 144) | @ResponseBody
method delete (line 196) | @ResponseBody
method publishRules (line 221) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/DemoController.java
class DemoController (line 34) | @Controller
method greeting (line 40) | @RequestMapping("/greeting")
method link (line 45) | @RequestMapping("/link")
method loop (line 62) | @RequestMapping("/loop")
method slow (line 73) | @RequestMapping("/slow")
class RunTask (line 84) | static class RunTask implements Runnable {
method RunTask (line 90) | public RunTask(String name, int time, boolean slow) {
method run (line 97) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/FlowControllerV1.java
class FlowControllerV1 (line 52) | @RestController
method apiQueryMachineRules (line 66) | @GetMapping("/rules")
method checkEntityInternal (line 93) | private <R> Result<R> checkEntityInternal(FlowRuleEntity entity) {
method apiAddFlowRule (line 140) | @PostMapping("/rule")
method updateIfNotNull (line 167) | @PutMapping("/save.json")
method delete (line 248) | @DeleteMapping("/delete.json")
method publishRules (line 270) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/MachineRegistryController.java
class MachineRegistryController (line 32) | @Controller
method receiveHeartBeat (line 41) | @ResponseBody
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/MetricController.java
class MetricController (line 45) | @Controller
method queryTopResourceMetric (line 56) | @ResponseBody
method queryByAppAndResource (line 138) | @ResponseBody
method sortMetricVoAndDistinct (line 162) | private Iterable<MetricVo> sortMetricVoAndDistinct(List<MetricVo> vos) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ParamFlowRuleController.java
class ParamFlowRuleController (line 59) | @RestController
method checkIfSupported (line 75) | private boolean checkIfSupported(String app, String ip, int port) {
method apiQueryAllRulesForMachine (line 88) | @GetMapping("/rules")
method isNotSupported (line 125) | private boolean isNotSupported(Throwable ex) {
method apiAddParamFlowRule (line 129) | @PostMapping("/rule")
method checkEntityInternal (line 163) | private <R> Result<R> checkEntityInternal(ParamFlowRuleEntity entity) {
method apiUpdateParamFlowRule (line 194) | @PutMapping("/rule/{id}")
method apiDeleteRule (line 235) | @DeleteMapping("/rule/{id}")
method publishRules (line 263) | private CompletableFuture<Void> publishRules(String app, String ip, In...
method unsupportedVersion (line 268) | private <R> Result<R> unsupportedVersion() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ResourceController.java
class ResourceController (line 39) | @RestController
method fetchResourceChainListOfMachine (line 58) | @GetMapping("/machineResource.json")
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/SystemController.java
class SystemController (line 45) | @Controller
method queryMachineRules (line 57) | @ResponseBody
method countNotNullAndNotNegative (line 81) | private int countNotNullAndNotNegative(Number... values) {
method add (line 91) | @ResponseBody
method updateIfNotNull (line 151) | @ResponseBody
method delete (line 205) | @ResponseBody
method publishRules (line 229) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterAssignController.java
class ClusterAssignController (line 41) | @RestController
method apiAssignAllClusterServersOfApp (line 50) | @PostMapping("/all_server/{app}")
method apiAssignSingleClusterServersOfApp (line 70) | @PostMapping("/single_server/{app}")
method apiUnbindClusterServersOfApp (line 88) | @PostMapping("/unbind_server/{app}")
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterConfigController.java
class ClusterConfigController (line 56) | @RestController
method apiModifyClusterConfig (line 70) | @PostMapping("/config/modify_single")
method errorResponse (line 111) | private <T> Result<T> errorResponse(ExecutionException ex) {
method apiGetClusterState (line 119) | @GetMapping("/state_single")
method apiGetClusterServerStateOfApp (line 148) | @GetMapping("/server_state/{app}")
method apiGetClusterClientStateOfApp (line 167) | @GetMapping("/client_state/{app}")
method apiGetClusterStateOfApp (line 186) | @GetMapping("/state/{app}")
method isNotSupported (line 204) | private boolean isNotSupported(Throwable ex) {
method checkIfSupported (line 208) | private boolean checkIfSupported(String app, String ip, int port) {
method checkValidRequest (line 221) | private Result<Boolean> checkValidRequest(ClusterModifyRequest request) {
method unsupportedVersion (line 240) | private <R> Result<R> unsupportedVersion() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/v2/FlowControllerV2.java
class FlowControllerV2 (line 54) | @RestController
method apiQueryMachineRules (line 73) | @GetMapping("/rules")
method checkEntityInternal (line 99) | private <R> Result<R> checkEntityInternal(FlowRuleEntity entity) {
method apiAddFlowRule (line 143) | @PostMapping("/rule")
method apiUpdateFlowRule (line 168) | @PutMapping("/rule/{id}")
method apiDeleteRule (line 210) | @DeleteMapping("/rule/{id}")
method publishRules (line 230) | private void publishRules(/*@NonNull*/ String app) throws Exception {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/ApplicationEntity.java
class ApplicationEntity (line 25) | public class ApplicationEntity {
method getId (line 34) | public long getId() {
method setId (line 38) | public void setId(long id) {
method getGmtCreate (line 42) | public Date getGmtCreate() {
method setGmtCreate (line 46) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 50) | public Date getGmtModified() {
method setGmtModified (line 54) | public void setGmtModified(Date gmtModified) {
method getApp (line 58) | public String getApp() {
method setApp (line 62) | public void setApp(String app) {
method getActiveConsole (line 66) | public String getActiveConsole() {
method getLastFetch (line 70) | public Date getLastFetch() {
method setLastFetch (line 74) | public void setLastFetch(Date lastFetch) {
method setActiveConsole (line 78) | public void setActiveConsole(String activeConsole) {
method toAppInfo (line 82) | public AppInfo toAppInfo() {
method toString (line 86) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/MachineEntity.java
class MachineEntity (line 25) | public class MachineEntity {
method getId (line 35) | public long getId() {
method setId (line 39) | public void setId(long id) {
method getGmtCreate (line 43) | public Date getGmtCreate() {
method setGmtCreate (line 47) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 51) | public Date getGmtModified() {
method setGmtModified (line 55) | public void setGmtModified(Date gmtModified) {
method getApp (line 59) | public String getApp() {
method setApp (line 63) | public void setApp(String app) {
method getIp (line 67) | public String getIp() {
method setIp (line 71) | public void setIp(String ip) {
method getHostname (line 75) | public String getHostname() {
method setHostname (line 79) | public void setHostname(String hostname) {
method getTimestamp (line 83) | public Date getTimestamp() {
method setTimestamp (line 87) | public void setTimestamp(Date timestamp) {
method getPort (line 91) | public Integer getPort() {
method setPort (line 95) | public void setPort(Integer port) {
method toMachineInfo (line 99) | public MachineInfo toMachineInfo() {
method toString (line 112) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/MetricEntity.java
class MetricEntity (line 23) | public class MetricEntity {
method copyOf (line 50) | public static MetricEntity copyOf(MetricEntity oldEntity) {
method addPassQps (line 68) | public synchronized void addPassQps(Long passQps) {
method addBlockQps (line 72) | public synchronized void addBlockQps(Long blockQps) {
method addExceptionQps (line 76) | public synchronized void addExceptionQps(Long exceptionQps) {
method addCount (line 80) | public synchronized void addCount(int count) {
method addRtAndSuccessQps (line 84) | public synchronized void addRtAndSuccessQps(double avgRt, Long success...
method setRtAndSuccessQps (line 95) | public synchronized void setRtAndSuccessQps(double avgRt, Long success...
method getId (line 100) | public Long getId() {
method setId (line 104) | public void setId(Long id) {
method getGmtCreate (line 108) | public Date getGmtCreate() {
method setGmtCreate (line 112) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 116) | public Date getGmtModified() {
method setGmtModified (line 120) | public void setGmtModified(Date gmtModified) {
method getApp (line 124) | public String getApp() {
method setApp (line 128) | public void setApp(String app) {
method getTimestamp (line 132) | public Date getTimestamp() {
method setTimestamp (line 136) | public void setTimestamp(Date timestamp) {
method getResource (line 140) | public String getResource() {
method setResource (line 144) | public void setResource(String resource) {
method getPassQps (line 149) | public Long getPassQps() {
method setPassQps (line 153) | public void setPassQps(Long passQps) {
method getBlockQps (line 157) | public Long getBlockQps() {
method setBlockQps (line 161) | public void setBlockQps(Long blockQps) {
method getExceptionQps (line 165) | public Long getExceptionQps() {
method setExceptionQps (line 169) | public void setExceptionQps(Long exceptionQps) {
method getRt (line 173) | public double getRt() {
method setRt (line 177) | public void setRt(double rt) {
method getCount (line 181) | public int getCount() {
method setCount (line 185) | public void setCount(int count) {
method getResourceCode (line 189) | public int getResourceCode() {
method getSuccessQps (line 193) | public Long getSuccessQps() {
method setSuccessQps (line 197) | public void setSuccessQps(Long successQps) {
method toString (line 201) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/MetricPositionEntity.java
class MetricPositionEntity (line 23) | public class MetricPositionEntity {
method getId (line 44) | public long getId() {
method setId (line 48) | public void setId(long id) {
method getGmtCreate (line 52) | public Date getGmtCreate() {
method setGmtCreate (line 56) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 60) | public Date getGmtModified() {
method setGmtModified (line 64) | public void setGmtModified(Date gmtModified) {
method getApp (line 68) | public String getApp() {
method setApp (line 72) | public void setApp(String app) {
method getIp (line 76) | public String getIp() {
method setIp (line 80) | public void setIp(String ip) {
method getPort (line 84) | public int getPort() {
method setPort (line 88) | public void setPort(int port) {
method getHostname (line 92) | public String getHostname() {
method setHostname (line 96) | public void setHostname(String hostname) {
method getLastFetch (line 100) | public Date getLastFetch() {
method setLastFetch (line 104) | public void setLastFetch(Date lastFetch) {
method toString (line 108) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/SentinelVersion.java
class SentinelVersion (line 22) | public class SentinelVersion {
method SentinelVersion (line 28) | public SentinelVersion() {
method SentinelVersion (line 32) | public SentinelVersion(int major, int minor, int fix) {
method SentinelVersion (line 36) | public SentinelVersion(int major, int minor, int fix, String postfix) {
method getFullVersion (line 46) | public int getFullVersion() {
method getMajorVersion (line 50) | public int getMajorVersion() {
method setMajorVersion (line 54) | public SentinelVersion setMajorVersion(int majorVersion) {
method getMinorVersion (line 59) | public int getMinorVersion() {
method setMinorVersion (line 63) | public SentinelVersion setMinorVersion(int minorVersion) {
method getFixVersion (line 68) | public int getFixVersion() {
method setFixVersion (line 72) | public SentinelVersion setFixVersion(int fixVersion) {
method getPostfix (line 77) | public String getPostfix() {
method setPostfix (line 81) | public SentinelVersion setPostfix(String postfix) {
method greaterThan (line 86) | public boolean greaterThan(SentinelVersion version) {
method greaterOrEqual (line 93) | public boolean greaterOrEqual(SentinelVersion version) {
method equals (line 100) | @Override
method hashCode (line 111) | @Override
method toString (line 120) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/AbstractRuleEntity.java
class AbstractRuleEntity (line 26) | public abstract class AbstractRuleEntity<T extends AbstractRule> impleme...
method getId (line 39) | @Override
method setId (line 44) | @Override
method getApp (line 49) | @Override
method setApp (line 54) | public AbstractRuleEntity<T> setApp(String app) {
method getIp (line 59) | @Override
method setIp (line 64) | public AbstractRuleEntity<T> setIp(String ip) {
method getPort (line 69) | @Override
method setPort (line 74) | public AbstractRuleEntity<T> setPort(Integer port) {
method getRule (line 79) | public T getRule() {
method setRule (line 83) | public AbstractRuleEntity<T> setRule(T rule) {
method getGmtCreate (line 88) | @Override
method setGmtCreate (line 93) | public AbstractRuleEntity<T> setGmtCreate(Date gmtCreate) {
method getGmtModified (line 98) | public Date getGmtModified() {
method setGmtModified (line 102) | public AbstractRuleEntity<T> setGmtModified(Date gmtModified) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/AuthorityRuleEntity.java
class AuthorityRuleEntity (line 28) | public class AuthorityRuleEntity extends AbstractRuleEntity<AuthorityRul...
method AuthorityRuleEntity (line 30) | public AuthorityRuleEntity() {}
method AuthorityRuleEntity (line 32) | public AuthorityRuleEntity(AuthorityRule authorityRule) {
method fromAuthorityRule (line 37) | public static AuthorityRuleEntity fromAuthorityRule(String app, String...
method getLimitApp (line 45) | @JsonIgnore
method getResource (line 50) | @JsonIgnore
method getStrategy (line 55) | @JsonIgnore
method toRule (line 60) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/DegradeRuleEntity.java
class DegradeRuleEntity (line 25) | public class DegradeRuleEntity implements RuleEntity {
method fromDegradeRule (line 41) | public static DegradeRuleEntity fromDegradeRule(String app, String ip,...
method getIp (line 54) | @Override
method setIp (line 59) | public void setIp(String ip) {
method getPort (line 63) | @Override
method setPort (line 68) | public void setPort(Integer port) {
method getId (line 72) | @Override
method setId (line 77) | @Override
method getApp (line 82) | @Override
method setApp (line 87) | public void setApp(String app) {
method getResource (line 91) | public String getResource() {
method setResource (line 95) | public void setResource(String resource) {
method getLimitApp (line 99) | public String getLimitApp() {
method setLimitApp (line 103) | public void setLimitApp(String limitApp) {
method getCount (line 107) | public Double getCount() {
method setCount (line 111) | public void setCount(Double count) {
method getTimeWindow (line 115) | public Integer getTimeWindow() {
method setTimeWindow (line 119) | public void setTimeWindow(Integer timeWindow) {
method getGrade (line 123) | public Integer getGrade() {
method setGrade (line 127) | public void setGrade(Integer grade) {
method getGmtCreate (line 131) | @Override
method setGmtCreate (line 136) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 140) | public Date getGmtModified() {
method setGmtModified (line 144) | public void setGmtModified(Date gmtModified) {
method toRule (line 148) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/FlowRuleEntity.java
class FlowRuleEntity (line 26) | public class FlowRuleEntity implements RuleEntity {
method fromFlowRule (line 63) | public static FlowRuleEntity fromFlowRule(String app, String ip, Integ...
method getIp (line 82) | @Override
method setIp (line 87) | public void setIp(String ip) {
method getPort (line 91) | @Override
method setPort (line 96) | public void setPort(Integer port) {
method getApp (line 100) | @Override
method setApp (line 105) | public void setApp(String app) {
method getId (line 109) | @Override
method setId (line 114) | @Override
method getLimitApp (line 119) | public String getLimitApp() {
method setLimitApp (line 123) | public void setLimitApp(String limitApp) {
method getResource (line 127) | public String getResource() {
method setResource (line 131) | public void setResource(String resource) {
method getGrade (line 135) | public Integer getGrade() {
method setGrade (line 139) | public void setGrade(Integer grade) {
method getCount (line 143) | public Double getCount() {
method setCount (line 147) | public void setCount(Double count) {
method getStrategy (line 151) | public Integer getStrategy() {
method setStrategy (line 155) | public void setStrategy(Integer strategy) {
method getRefResource (line 159) | public String getRefResource() {
method setRefResource (line 163) | public void setRefResource(String refResource) {
method getControlBehavior (line 167) | public Integer getControlBehavior() {
method setControlBehavior (line 171) | public void setControlBehavior(Integer controlBehavior) {
method getWarmUpPeriodSec (line 175) | public Integer getWarmUpPeriodSec() {
method setWarmUpPeriodSec (line 179) | public void setWarmUpPeriodSec(Integer warmUpPeriodSec) {
method getMaxQueueingTimeMs (line 183) | public Integer getMaxQueueingTimeMs() {
method setMaxQueueingTimeMs (line 187) | public void setMaxQueueingTimeMs(Integer maxQueueingTimeMs) {
method isClusterMode (line 191) | public boolean isClusterMode() {
method setClusterMode (line 195) | public FlowRuleEntity setClusterMode(boolean clusterMode) {
method getClusterConfig (line 200) | public ClusterFlowConfig getClusterConfig() {
method setClusterConfig (line 204) | public FlowRuleEntity setClusterConfig(ClusterFlowConfig clusterConfig) {
method getGmtCreate (line 209) | @Override
method setGmtCreate (line 214) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 218) | public Date getGmtModified() {
method setGmtModified (line 222) | public void setGmtModified(Date gmtModified) {
method toRule (line 226) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/ParamFlowRuleEntity.java
class ParamFlowRuleEntity (line 32) | public class ParamFlowRuleEntity extends AbstractRuleEntity<ParamFlowRul...
method ParamFlowRuleEntity (line 34) | public ParamFlowRuleEntity() {}
method ParamFlowRuleEntity (line 36) | public ParamFlowRuleEntity(ParamFlowRule rule) {
method fromAuthorityRule (line 41) | public static ParamFlowRuleEntity fromAuthorityRule(String app, String...
method getLimitApp (line 49) | @JsonIgnore
method getResource (line 54) | @JsonIgnore
method getGrade (line 59) | @JsonIgnore
method getParamIdx (line 64) | @JsonIgnore
method getCount (line 69) | @JsonIgnore
method getParamFlowItemList (line 74) | @JsonIgnore
method isClusterMode (line 79) | @JsonIgnore
method getClusterConfig (line 84) | @JsonIgnore
method toRule (line 89) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/RuleEntity.java
type RuleEntity (line 25) | public interface RuleEntity {
method getId (line 27) | Long getId();
method setId (line 29) | void setId(Long id);
method getApp (line 31) | String getApp();
method getIp (line 33) | String getIp();
method getPort (line 35) | Integer getPort();
method getGmtCreate (line 37) | Date getGmtCreate();
method toRule (line 39) | Rule toRule();
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/SystemRuleEntity.java
class SystemRuleEntity (line 25) | public class SystemRuleEntity implements RuleEntity {
method fromSystemRule (line 40) | public static SystemRuleEntity fromSystemRule(String app, String ip, I...
method getIp (line 52) | @Override
method setIp (line 57) | public void setIp(String ip) {
method getPort (line 61) | @Override
method setPort (line 66) | public void setPort(Integer port) {
method getId (line 70) | @Override
method setId (line 75) | @Override
method getApp (line 80) | @Override
method setApp (line 85) | public void setApp(String app) {
method getAvgLoad (line 89) | public Double getAvgLoad() {
method setAvgLoad (line 93) | public void setAvgLoad(Double avgLoad) {
method getAvgRt (line 97) | public Long getAvgRt() {
method setAvgRt (line 101) | public void setAvgRt(Long avgRt) {
method getMaxThread (line 105) | public Long getMaxThread() {
method setMaxThread (line 109) | public void setMaxThread(Long maxThread) {
method getQps (line 113) | public Double getQps() {
method setQps (line 117) | public void setQps(Double qps) {
method getGmtCreate (line 121) | @Override
method setGmtCreate (line 126) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 130) | public Date getGmtModified() {
method setGmtModified (line 134) | public void setGmtModified(Date gmtModified) {
method toRule (line 138) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java
class AppInfo (line 27) | public class AppInfo {
method AppInfo (line 33) | public AppInfo() {}
method AppInfo (line 35) | public AppInfo(String app) {
method getApp (line 39) | public String getApp() {
method setApp (line 43) | public void setApp(String app) {
method getMachines (line 52) | public Set<MachineInfo> getMachines() {
method toString (line 56) | @Override
method addMachine (line 61) | public boolean addMachine(MachineInfo machineInfo) {
method removeMachine (line 66) | public synchronized boolean removeMachine(String ip, int port) {
method getMachine (line 78) | public Optional<MachineInfo> getMachine(String ip, int port) {
method heartbeatJudge (line 84) | private boolean heartbeatJudge(final int threshold) {
method isShown (line 108) | public boolean isShown() {
method isDead (line 117) | public boolean isDead() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppManagement.java
class AppManagement (line 27) | @Component
method init (line 35) | @PostConstruct
method getBriefApps (line 40) | @Override
method addMachine (line 45) | @Override
method removeMachine (line 50) | @Override
method getAppNames (line 55) | @Override
method getDetailApp (line 60) | @Override
method removeApp (line 65) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineDiscovery.java
type MachineDiscovery (line 21) | public interface MachineDiscovery {
method getAppNames (line 25) | List<String> getAppNames();
method getBriefApps (line 27) | Set<AppInfo> getBriefApps();
method getDetailApp (line 29) | AppInfo getDetailApp(String app);
method removeApp (line 37) | void removeApp(String app);
method addMachine (line 39) | long addMachine(MachineInfo machineInfo);
method removeMachine (line 50) | boolean removeMachine(String app, String ip, int port);
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfo.java
class MachineInfo (line 23) | public class MachineInfo implements Comparable<MachineInfo> {
method of (line 37) | public static MachineInfo of(String app, String ip, Integer port) {
method toHostPort (line 45) | public String toHostPort() {
method getPort (line 49) | public Integer getPort() {
method setPort (line 53) | public void setPort(Integer port) {
method getApp (line 57) | public String getApp() {
method setApp (line 61) | public void setApp(String app) {
method getHostname (line 65) | public String getHostname() {
method setHostname (line 69) | public void setHostname(String hostname) {
method getIp (line 73) | public String getIp() {
method setIp (line 77) | public void setIp(String ip) {
method getHeartbeatVersion (line 81) | public long getHeartbeatVersion() {
method setHeartbeatVersion (line 85) | public void setHeartbeatVersion(long heartbeatVersion) {
method getVersion (line 89) | public String getVersion() {
method setVersion (line 93) | public MachineInfo setVersion(String version) {
method isHealthy (line 98) | public boolean isHealthy() {
method isDead (line 108) | public boolean isDead() {
method getLastHeartbeat (line 116) | public long getLastHeartbeat() {
method setLastHeartbeat (line 120) | public void setLastHeartbeat(long lastHeartbeat) {
method compareTo (line 124) | @Override
method toString (line 138) | @Override
method equals (line 152) | @Override
method hashCode (line 162) | @Override
method toLogString (line 172) | public String toLogString() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/SimpleMachineDiscovery.java
class SimpleMachineDiscovery (line 32) | @Component
method addMachine (line 37) | @Override
method removeMachine (line 45) | @Override
method getAppNames (line 55) | @Override
method getDetailApp (line 60) | @Override
method getBriefApps (line 66) | @Override
method removeApp (line 71) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/ResourceTreeNode.java
class ResourceTreeNode (line 28) | public class ResourceTreeNode {
method fromNodeVoList (line 49) | public static ResourceTreeNode fromNodeVoList(List<NodeVo> nodeVos) {
method fromNodeVo (line 70) | public static ResourceTreeNode fromNodeVo(NodeVo vo) {
method searchIgnoreCase (line 89) | public void searchIgnoreCase(String searchKey) {
method search (line 97) | private boolean search(ResourceTreeNode node, String searchKey) {
method getId (line 114) | public String getId() {
method setId (line 118) | public void setId(String id) {
method getParentId (line 122) | public String getParentId() {
method setParentId (line 126) | public void setParentId(String parentId) {
method getResource (line 130) | public String getResource() {
method setResource (line 134) | public void setResource(String resource) {
method getThreadNum (line 138) | public Integer getThreadNum() {
method setThreadNum (line 142) | public void setThreadNum(Integer threadNum) {
method getPassQps (line 146) | public Long getPassQps() {
method setPassQps (line 150) | public void setPassQps(Long passQps) {
method getBlockQps (line 154) | public Long getBlockQps() {
method setBlockQps (line 158) | public void setBlockQps(Long blockQps) {
method getTotalQps (line 162) | public Long getTotalQps() {
method setTotalQps (line 166) | public void setTotalQps(Long totalQps) {
method getAverageRt (line 170) | public Long getAverageRt() {
method setAverageRt (line 174) | public void setAverageRt(Long averageRt) {
method getSuccessQps (line 178) | public Long getSuccessQps() {
method setSuccessQps (line 182) | public void setSuccessQps(Long successQps) {
method getExceptionQps (line 186) | public Long getExceptionQps() {
method setExceptionQps (line 190) | public void setExceptionQps(Long exceptionQps) {
method getOneMinutePass (line 194) | public Long getOneMinutePass() {
method setOneMinutePass (line 198) | public void setOneMinutePass(Long oneMinutePass) {
method getOneMinuteBlock (line 202) | public Long getOneMinuteBlock() {
method setOneMinuteBlock (line 206) | public void setOneMinuteBlock(Long oneMinuteBlock) {
method getOneMinuteException (line 210) | public Long getOneMinuteException() {
method setOneMinuteException (line 214) | public void setOneMinuteException(Long oneMinuteException) {
method getOneMinuteTotal (line 218) | public Long getOneMinuteTotal() {
method setOneMinuteTotal (line 222) | public void setOneMinuteTotal(Long oneMinuteTotal) {
method isVisible (line 226) | public boolean isVisible() {
method setVisible (line 230) | public void setVisible(boolean visible) {
method getChildren (line 234) | public List<ResourceTreeNode> getChildren() {
method setChildren (line 238) | public void setChildren(List<ResourceTreeNode> children) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/Result.java
class Result (line 22) | public class Result<R> {
method ofSuccess (line 29) | public static <R> Result<R> ofSuccess(R data) {
method ofSuccessMsg (line 36) | public static <R> Result<R> ofSuccessMsg(String msg) {
method ofFail (line 42) | public static <R> Result<R> ofFail(int code, String msg) {
method ofThrowable (line 50) | public static <R> Result<R> ofThrowable(int code, Throwable throwable) {
method isSuccess (line 58) | public boolean isSuccess() {
method setSuccess (line 62) | public Result<R> setSuccess(boolean success) {
method getCode (line 67) | public int getCode() {
method setCode (line 71) | public Result<R> setCode(int code) {
method getMsg (line 76) | public String getMsg() {
method setMsg (line 80) | public Result<R> setMsg(String msg) {
method getData (line 85) | public R getData() {
method setData (line 89) | public Result<R> setData(R data) {
method toString (line 94) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ClusterAppAssignResultVO.java
class ClusterAppAssignResultVO (line 24) | public class ClusterAppAssignResultVO {
method getFailedServerSet (line 31) | public Set<String> getFailedServerSet() {
method setFailedServerSet (line 35) | public ClusterAppAssignResultVO setFailedServerSet(Set<String> failedS...
method getFailedClientSet (line 40) | public Set<String> getFailedClientSet() {
method setFailedClientSet (line 44) | public ClusterAppAssignResultVO setFailedClientSet(Set<String> failedC...
method getTotalCount (line 49) | public Integer getTotalCount() {
method setTotalCount (line 53) | public ClusterAppAssignResultVO setTotalCount(Integer totalCount) {
method toString (line 58) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ClusterAppFullAssignRequest.java
class ClusterAppFullAssignRequest (line 27) | public class ClusterAppFullAssignRequest {
method getClusterMap (line 32) | public List<ClusterAppAssignMap> getClusterMap() {
method setClusterMap (line 36) | public ClusterAppFullAssignRequest setClusterMap(
method getRemainingList (line 42) | public Set<String> getRemainingList() {
method setRemainingList (line 46) | public ClusterAppFullAssignRequest setRemainingList(Set<String> remain...
method toString (line 51) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ClusterAppSingleServerAssignRequest.java
class ClusterAppSingleServerAssignRequest (line 26) | public class ClusterAppSingleServerAssignRequest {
method getClusterMap (line 31) | public ClusterAppAssignMap getClusterMap() {
method setClusterMap (line 35) | public ClusterAppSingleServerAssignRequest setClusterMap(ClusterAppAss...
method getRemainingList (line 40) | public Set<String> getRemainingList() {
method setRemainingList (line 44) | public ClusterAppSingleServerAssignRequest setRemainingList(Set<String...
method toString (line 49) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ClusterClientInfoVO.java
class ClusterClientInfoVO (line 22) | public class ClusterClientInfoVO {
method getServerHost (line 31) | public String getServerHost() {
method setServerHost (line 35) | public ClusterClientInfoVO setServerHost(String serverHost) {
method getServerPort (line 40) | public Integer getServerPort() {
method setServerPort (line 44) | public ClusterClientInfoVO setServerPort(Integer serverPort) {
method getClientState (line 49) | public Integer getClientState() {
method setClientState (line 53) | public ClusterClientInfoVO setClientState(Integer clientState) {
method getRequestTimeout (line 58) | public Integer getRequestTimeout() {
method setRequestTimeout (line 62) | public ClusterClientInfoVO setRequestTimeout(Integer requestTimeout) {
method toString (line 67) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ClusterGroupEntity.java
class ClusterGroupEntity (line 25) | public class ClusterGroupEntity {
method getMachineId (line 36) | public String getMachineId() {
method setMachineId (line 40) | public ClusterGroupEntity setMachineId(String machineId) {
method getIp (line 45) | public String getIp() {
method setIp (line 49) | public ClusterGroupEntity setIp(String ip) {
method getPort (line 54) | public Integer getPort() {
method setPort (line 58) | public ClusterGroupEntity setPort(Integer port) {
method getClientSet (line 63) | public Set<String> getClientSet() {
method setClientSet (line 67) | public ClusterGroupEntity setClientSet(Set<String> clientSet) {
method getBelongToApp (line 72) | public Boolean getBelongToApp() {
method setBelongToApp (line 76) | public ClusterGroupEntity setBelongToApp(Boolean belongToApp) {
method toString (line 81) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ClusterStateSingleVO.java
class ClusterStateSingleVO (line 22) | public class ClusterStateSingleVO {
method getAddress (line 28) | public String getAddress() {
method setAddress (line 32) | public ClusterStateSingleVO setAddress(String address) {
method getMode (line 37) | public Integer getMode() {
method setMode (line 41) | public ClusterStateSingleVO setMode(Integer mode) {
method getTarget (line 46) | public String getTarget() {
method setTarget (line 50) | public ClusterStateSingleVO setTarget(String target) {
method toString (line 55) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ConnectionDescriptorVO.java
class ConnectionDescriptorVO (line 23) | public class ConnectionDescriptorVO {
method getAddress (line 28) | public String getAddress() {
method setAddress (line 32) | public ConnectionDescriptorVO setAddress(String address) {
method getHost (line 37) | public String getHost() {
method setHost (line 41) | public ConnectionDescriptorVO setHost(String host) {
method toString (line 46) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/ConnectionGroupVO.java
class ConnectionGroupVO (line 24) | public class ConnectionGroupVO {
method getNamespace (line 30) | public String getNamespace() {
method setNamespace (line 34) | public ConnectionGroupVO setNamespace(String namespace) {
method getConnectionSet (line 39) | public List<ConnectionDescriptorVO> getConnectionSet() {
method setConnectionSet (line 43) | public ConnectionGroupVO setConnectionSet(
method getConnectedCount (line 49) | public Integer getConnectedCount() {
method setConnectedCount (line 53) | public ConnectionGroupVO setConnectedCount(Integer connectedCount) {
method toString (line 58) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/config/ClusterClientConfig.java
class ClusterClientConfig (line 22) | public class ClusterClientConfig {
method getServerHost (line 30) | public String getServerHost() {
method setServerHost (line 34) | public ClusterClientConfig setServerHost(String serverHost) {
method getServerPort (line 39) | public Integer getServerPort() {
method setServerPort (line 43) | public ClusterClientConfig setServerPort(Integer serverPort) {
method getRequestTimeout (line 48) | public Integer getRequestTimeout() {
method setRequestTimeout (line 52) | public ClusterClientConfig setRequestTimeout(Integer requestTimeout) {
method getConnectTimeout (line 57) | public Integer getConnectTimeout() {
method setConnectTimeout (line 61) | public ClusterClientConfig setConnectTimeout(Integer connectTimeout) {
method toString (line 66) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/config/ServerFlowConfig.java
class ServerFlowConfig (line 22) | public class ServerFlowConfig {
method ServerFlowConfig (line 40) | public ServerFlowConfig() {
method ServerFlowConfig (line 44) | public ServerFlowConfig(String namespace) {
method getNamespace (line 48) | public String getNamespace() {
method getExceedCount (line 52) | public Double getExceedCount() {
method setExceedCount (line 56) | public ServerFlowConfig setExceedCount(Double exceedCount) {
method getMaxOccupyRatio (line 61) | public Double getMaxOccupyRatio() {
method setMaxOccupyRatio (line 65) | public ServerFlowConfig setMaxOccupyRatio(Double maxOccupyRatio) {
method getIntervalMs (line 70) | public Integer getIntervalMs() {
method setIntervalMs (line 74) | public ServerFlowConfig setIntervalMs(Integer intervalMs) {
method getSampleCount (line 79) | public Integer getSampleCount() {
method setSampleCount (line 83) | public ServerFlowConfig setSampleCount(Integer sampleCount) {
method getMaxAllowedQps (line 88) | public Double getMaxAllowedQps() {
method setMaxAllowedQps (line 92) | public ServerFlowConfig setMaxAllowedQps(Double maxAllowedQps) {
method toString (line 97) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/config/ServerTransportConfig.java
class ServerTransportConfig (line 22) | public class ServerTransportConfig {
method ServerTransportConfig (line 30) | public ServerTransportConfig() {
method ServerTransportConfig (line 34) | public ServerTransportConfig(Integer port, Integer idleSeconds) {
method getPort (line 39) | public Integer getPort() {
method setPort (line 43) | public ServerTransportConfig setPort(Integer port) {
method getIdleSeconds (line 48) | public Integer getIdleSeconds() {
method setIdleSeconds (line 52) | public ServerTransportConfig setIdleSeconds(Integer idleSeconds) {
method toString (line 57) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/request/ClusterAppAssignMap.java
class ClusterAppAssignMap (line 24) | public class ClusterAppAssignMap {
method getMachineId (line 37) | public String getMachineId() {
method setMachineId (line 41) | public ClusterAppAssignMap setMachineId(String machineId) {
method getIp (line 46) | public String getIp() {
method setIp (line 50) | public ClusterAppAssignMap setIp(String ip) {
method getPort (line 55) | public Integer getPort() {
method setPort (line 59) | public ClusterAppAssignMap setPort(Integer port) {
method getClientSet (line 64) | public Set<String> getClientSet() {
method setClientSet (line 68) | public ClusterAppAssignMap setClientSet(Set<String> clientSet) {
method getNamespaceSet (line 73) | public Set<String> getNamespaceSet() {
method setNamespaceSet (line 77) | public ClusterAppAssignMap setNamespaceSet(Set<String> namespaceSet) {
method getBelongToApp (line 82) | public Boolean getBelongToApp() {
method setBelongToApp (line 86) | public ClusterAppAssignMap setBelongToApp(Boolean belongToApp) {
method getMaxAllowedQps (line 91) | public Double getMaxAllowedQps() {
method setMaxAllowedQps (line 95) | public ClusterAppAssignMap setMaxAllowedQps(Double maxAllowedQps) {
method toString (line 100) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/request/ClusterClientModifyRequest.java
class ClusterClientModifyRequest (line 24) | public class ClusterClientModifyRequest implements ClusterModifyRequest {
method getApp (line 33) | @Override
method setApp (line 38) | public ClusterClientModifyRequest setApp(String app) {
method getIp (line 43) | @Override
method setIp (line 48) | public ClusterClientModifyRequest setIp(String ip) {
method getPort (line 53) | @Override
method setPort (line 58) | public ClusterClientModifyRequest setPort(Integer port) {
method getMode (line 63) | @Override
method setMode (line 68) | public ClusterClientModifyRequest setMode(Integer mode) {
method getClientConfig (line 73) | public ClusterClientConfig getClientConfig() {
method setClientConfig (line 77) | public ClusterClientModifyRequest setClientConfig(
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/request/ClusterModifyRequest.java
type ClusterModifyRequest (line 22) | public interface ClusterModifyRequest {
method getApp (line 24) | String getApp();
method getIp (line 26) | String getIp();
method getPort (line 28) | Integer getPort();
method getMode (line 30) | Integer getMode();
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/request/ClusterServerModifyRequest.java
class ClusterServerModifyRequest (line 27) | public class ClusterServerModifyRequest implements ClusterModifyRequest {
method getApp (line 38) | @Override
method setApp (line 43) | public ClusterServerModifyRequest setApp(String app) {
method getIp (line 48) | @Override
method setIp (line 53) | public ClusterServerModifyRequest setIp(String ip) {
method getPort (line 58) | @Override
method setPort (line 63) | public ClusterServerModifyRequest setPort(Integer port) {
method getMode (line 68) | @Override
method setMode (line 73) | public ClusterServerModifyRequest setMode(Integer mode) {
method getFlowConfig (line 78) | public ServerFlowConfig getFlowConfig() {
method setFlowConfig (line 82) | public ClusterServerModifyRequest setFlowConfig(
method getTransportConfig (line 88) | public ServerTransportConfig getTransportConfig() {
method setTransportConfig (line 92) | public ClusterServerModifyRequest setTransportConfig(
method getNamespaceSet (line 98) | public Set<String> getNamespaceSet() {
method setNamespaceSet (line 102) | public ClusterServerModifyRequest setNamespaceSet(Set<String> namespac...
method toString (line 107) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/AppClusterClientStateWrapVO.java
class AppClusterClientStateWrapVO (line 22) | public class AppClusterClientStateWrapVO {
method getId (line 34) | public String getId() {
method setId (line 38) | public AppClusterClientStateWrapVO setId(String id) {
method getIp (line 43) | public String getIp() {
method setIp (line 47) | public AppClusterClientStateWrapVO setIp(String ip) {
method getState (line 52) | public ClusterClientStateVO getState() {
method setState (line 56) | public AppClusterClientStateWrapVO setState(ClusterClientStateVO state) {
method getCommandPort (line 61) | public Integer getCommandPort() {
method setCommandPort (line 65) | public AppClusterClientStateWrapVO setCommandPort(Integer commandPort) {
method toString (line 70) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/AppClusterServerStateWrapVO.java
class AppClusterServerStateWrapVO (line 22) | public class AppClusterServerStateWrapVO {
method getId (line 38) | public String getId() {
method setId (line 42) | public AppClusterServerStateWrapVO setId(String id) {
method getIp (line 47) | public String getIp() {
method setIp (line 51) | public AppClusterServerStateWrapVO setIp(String ip) {
method getPort (line 56) | public Integer getPort() {
method setPort (line 60) | public AppClusterServerStateWrapVO setPort(Integer port) {
method getBelongToApp (line 65) | public Boolean getBelongToApp() {
method setBelongToApp (line 69) | public AppClusterServerStateWrapVO setBelongToApp(Boolean belongToApp) {
method getConnectedCount (line 74) | public Integer getConnectedCount() {
method setConnectedCount (line 78) | public AppClusterServerStateWrapVO setConnectedCount(Integer connected...
method getState (line 83) | public ClusterServerStateVO getState() {
method setState (line 87) | public AppClusterServerStateWrapVO setState(ClusterServerStateVO state) {
method toString (line 92) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/ClusterClientStateVO.java
class ClusterClientStateVO (line 24) | public class ClusterClientStateVO {
method getClientConfig (line 31) | public ClusterClientInfoVO getClientConfig() {
method setClientConfig (line 35) | public ClusterClientStateVO setClientConfig(ClusterClientInfoVO client...
method toString (line 40) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/ClusterRequestLimitVO.java
class ClusterRequestLimitVO (line 22) | public class ClusterRequestLimitVO {
method getNamespace (line 28) | public String getNamespace() {
method setNamespace (line 32) | public ClusterRequestLimitVO setNamespace(String namespace) {
method getCurrentQps (line 37) | public Double getCurrentQps() {
method setCurrentQps (line 41) | public ClusterRequestLimitVO setCurrentQps(Double currentQps) {
method getMaxAllowedQps (line 46) | public Double getMaxAllowedQps() {
method setMaxAllowedQps (line 50) | public ClusterRequestLimitVO setMaxAllowedQps(Double maxAllowedQps) {
method toString (line 55) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/ClusterServerStateVO.java
class ClusterServerStateVO (line 29) | public class ClusterServerStateVO {
method getAppName (line 44) | public String getAppName() {
method setAppName (line 48) | public ClusterServerStateVO setAppName(String appName) {
method getTransport (line 53) | public ServerTransportConfig getTransport() {
method setTransport (line 57) | public ClusterServerStateVO setTransport(ServerTransportConfig transpo...
method getFlow (line 62) | public ServerFlowConfig getFlow() {
method setFlow (line 66) | public ClusterServerStateVO setFlow(ServerFlowConfig flow) {
method getNamespaceSet (line 71) | public Set<String> getNamespaceSet() {
method setNamespaceSet (line 75) | public ClusterServerStateVO setNamespaceSet(Set<String> namespaceSet) {
method getPort (line 80) | public Integer getPort() {
method setPort (line 84) | public ClusterServerStateVO setPort(Integer port) {
method getConnection (line 89) | public List<ConnectionGroupVO> getConnection() {
method setConnection (line 93) | public ClusterServerStateVO setConnection(List<ConnectionGroupVO> conn...
method getRequestLimitData (line 98) | public List<ClusterRequestLimitVO> getRequestLimitData() {
method setRequestLimitData (line 102) | public ClusterServerStateVO setRequestLimitData(List<ClusterRequestLim...
method getEmbedded (line 107) | public Boolean getEmbedded() {
method setEmbedded (line 111) | public ClusterServerStateVO setEmbedded(Boolean embedded) {
method toString (line 116) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/ClusterStateSimpleEntity.java
class ClusterStateSimpleEntity (line 22) | public class ClusterStateSimpleEntity {
method getMode (line 29) | public Integer getMode() {
method setMode (line 33) | public ClusterStateSimpleEntity setMode(Integer mode) {
method getLastModified (line 38) | public Long getLastModified() {
method setLastModified (line 42) | public ClusterStateSimpleEntity setLastModified(Long lastModified) {
method getClientAvailable (line 47) | public Boolean getClientAvailable() {
method setClientAvailable (line 51) | public ClusterStateSimpleEntity setClientAvailable(Boolean clientAvail...
method getServerAvailable (line 56) | public Boolean getServerAvailable() {
method setServerAvailable (line 60) | public ClusterStateSimpleEntity setServerAvailable(Boolean serverAvail...
method toString (line 65) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/ClusterUniversalStatePairVO.java
class ClusterUniversalStatePairVO (line 22) | public class ClusterUniversalStatePairVO {
method ClusterUniversalStatePairVO (line 29) | public ClusterUniversalStatePairVO() {}
method ClusterUniversalStatePairVO (line 31) | public ClusterUniversalStatePairVO(String ip, Integer commandPort, Clu...
method getIp (line 37) | public String getIp() {
method setIp (line 41) | public ClusterUniversalStatePairVO setIp(String ip) {
method getCommandPort (line 46) | public Integer getCommandPort() {
method setCommandPort (line 50) | public ClusterUniversalStatePairVO setCommandPort(Integer commandPort) {
method getState (line 55) | public ClusterUniversalStateVO getState() {
method setState (line 59) | public ClusterUniversalStatePairVO setState(ClusterUniversalStateVO st...
method toString (line 64) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/state/ClusterUniversalStateVO.java
class ClusterUniversalStateVO (line 22) | public class ClusterUniversalStateVO {
method getClient (line 28) | public ClusterClientStateVO getClient() {
method setClient (line 32) | public ClusterUniversalStateVO setClient(ClusterClientStateVO client) {
method getServer (line 37) | public ClusterServerStateVO getServer() {
method setServer (line 41) | public ClusterUniversalStateVO setServer(ClusterServerStateVO server) {
method getStateInfo (line 46) | public ClusterStateSimpleEntity getStateInfo() {
method setStateInfo (line 50) | public ClusterUniversalStateVO setStateInfo(
method toString (line 56) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/vo/MachineInfoVo.java
class MachineInfoVo (line 26) | public class MachineInfoVo {
method fromMachineInfoList (line 38) | public static List<MachineInfoVo> fromMachineInfoList(List<MachineInfo...
method fromMachineInfo (line 46) | public static MachineInfoVo fromMachineInfo(MachineInfo machine) {
method getApp (line 59) | public String getApp() {
method setApp (line 63) | public void setApp(String app) {
method getHostname (line 67) | public String getHostname() {
method setHostname (line 71) | public void setHostname(String hostname) {
method getIp (line 75) | public String getIp() {
method setIp (line 79) | public void setIp(String ip) {
method getPort (line 83) | public int getPort() {
method setPort (line 87) | public void setPort(int port) {
method getLastHeartbeat (line 91) | public long getLastHeartbeat() {
method setLastHeartbeat (line 95) | public void setLastHeartbeat(long lastHeartbeat) {
method setHeartbeatVersion (line 99) | public void setHeartbeatVersion(long heartbeatVersion) {
method getHeartbeatVersion (line 103) | public long getHeartbeatVersion() {
method getVersion (line 107) | public String getVersion() {
method setVersion (line 111) | public MachineInfoVo setVersion(String version) {
method isHealthy (line 116) | public boolean isHealthy() {
method setHealthy (line 120) | public void setHealthy(boolean healthy) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/vo/MetricVo.java
class MetricVo (line 27) | public class MetricVo implements Comparable<MetricVo> {
method MetricVo (line 43) | public MetricVo() {
method fromMetricEntities (line 46) | public static List<MetricVo> fromMetricEntities(Collection<MetricEntit...
method fromMetricEntities (line 63) | public static List<MetricVo> fromMetricEntities(Collection<MetricEntit...
method fromMetricEntity (line 75) | public static MetricVo fromMetricEntity(MetricEntity entity) {
method parse (line 95) | public static MetricVo parse(String line) {
method getId (line 116) | public Long getId() {
method setId (line 120) | public void setId(Long id) {
method getApp (line 124) | public String getApp() {
method setApp (line 128) | public void setApp(String app) {
method getTimestamp (line 132) | public Long getTimestamp() {
method setTimestamp (line 136) | public void setTimestamp(Long timestamp) {
method getGmtCreate (line 140) | public Long getGmtCreate() {
method setGmtCreate (line 144) | public void setGmtCreate(Long gmtCreate) {
method getResource (line 148) | public String getResource() {
method setResource (line 152) | public void setResource(String resource) {
method getPassQps (line 156) | public Long getPassQps() {
method setPassQps (line 160) | public void setPassQps(Long passQps) {
method getBlockQps (line 164) | public Long getBlockQps() {
method setBlockQps (line 168) | public void setBlockQps(Long blockQps) {
method getSuccessQps (line 172) | public Long getSuccessQps() {
method setSuccessQps (line 176) | public void setSuccessQps(Long successQps) {
method getExceptionQps (line 180) | public Long getExceptionQps() {
method setExceptionQps (line 184) | public void setExceptionQps(Long exceptionQps) {
method getRt (line 188) | public Double getRt() {
method setRt (line 192) | public void setRt(Double rt) {
method getCount (line 196) | public Integer getCount() {
method setCount (line 200) | public void setCount(Integer count) {
method compareTo (line 204) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/vo/ResourceVo.java
class ResourceVo (line 28) | public class ResourceVo {
method ResourceVo (line 47) | public ResourceVo() {
method fromNodeVoList (line 50) | public static List<ResourceVo> fromNodeVoList(List<NodeVo> nodeVos) {
method fromResourceTreeNode (line 75) | public static List<ResourceVo> fromResourceTreeNode(ResourceTreeNode r...
method visit (line 91) | private static void visit(ResourceTreeNode node, List<ResourceVo> list...
method getParentTtId (line 117) | public String getParentTtId() {
method setParentTtId (line 121) | public void setParentTtId(String parentTtId) {
method getTtId (line 125) | public String getTtId() {
method setTtId (line 129) | public void setTtId(String ttId) {
method getResource (line 133) | public String getResource() {
method setResource (line 137) | public void setResource(String resource) {
method getThreadNum (line 141) | public Integer getThreadNum() {
method setThreadNum (line 145) | public void setThreadNum(Integer threadNum) {
method getPassQps (line 149) | public Long getPassQps() {
method setPassQps (line 153) | public void setPassQps(Long passQps) {
method getBlockQps (line 157) | public Long getBlockQps() {
method setBlockQps (line 161) | public void setBlockQps(Long blockQps) {
method getTotalQps (line 165) | public Long getTotalQps() {
method setTotalQps (line 169) | public void setTotalQps(Long totalQps) {
method getAverageRt (line 173) | public Long getAverageRt() {
method setAverageRt (line 177) | public void setAverageRt(Long averageRt) {
method getPassRequestQps (line 181) | public Long getPassRequestQps() {
method setPassRequestQps (line 185) | public void setPassRequestQps(Long passRequestQps) {
method getExceptionQps (line 189) | public Long getExceptionQps() {
method setExceptionQps (line 193) | public void setExceptionQps(Long exceptionQps) {
method getOneMinuteException (line 197) | public Long getOneMinuteException() {
method setOneMinuteException (line 201) | public void setOneMinuteException(Long oneMinuteException) {
method getOneMinutePass (line 205) | public Long getOneMinutePass() {
method setOneMinutePass (line 209) | public void setOneMinutePass(Long oneMinutePass) {
method getOneMinuteBlock (line 213) | public Long getOneMinuteBlock() {
method setOneMinuteBlock (line 217) | public void setOneMinuteBlock(Long oneMinuteBlock) {
method getOneMinuteTotal (line 221) | public Long getOneMinuteTotal() {
method setOneMinuteTotal (line 225) | public void setOneMinuteTotal(Long oneMinuteTotal) {
method isVisible (line 229) | public boolean isVisible() {
method setVisible (line 233) | public void setVisible(boolean visible) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/filter/AuthFilter.java
class AuthFilter (line 52) | @Component
method init (line 69) | @Override
method doFilter (line 74) | @Override
method destroy (line 114) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/metric/MetricFetcher.java
class MetricFetcher (line 67) | @Component
method MetricFetcher (line 94) | public MetricFetcher() {
method start (line 125) | private void start() {
method writeMetric (line 135) | private void writeMetric(Map<String, MetricEntity> map) {
method fetchAllApp (line 150) | private void fetchAllApp() {
method fetchOnce (line 169) | private void fetchOnce(String app, long startTime, long endTime, int m...
method doFetchAppMetric (line 259) | private void doFetchAppMetric(final String app) {
method handleResponse (line 290) | private void handleResponse(final HttpResponse response, MachineInfo m...
method handleBody (line 316) | private void handleBody(String[] lines, MachineInfo machine, Map<Strin...
method buildMetricKey (line 354) | private String buildMetricKey(String app, String resource, long timest...
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/metric/InMemoryMetricsRepository.java
class InMemoryMetricsRepository (line 39) | @Component
method save (line 51) | @Override
method saveAll (line 66) | @Override
method queryByAppAndResourceBetween (line 74) | @Override
method listResourcesOfApp (line 97) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/metric/MetricsRepository.java
type MetricsRepository (line 26) | public interface MetricsRepository<T> {
method save (line 33) | void save(T metric);
method saveAll (line 40) | void saveAll(Iterable<T> metrics);
method queryByAppAndResourceBetween (line 51) | List<T> queryByAppAndResourceBetween(String app, String resource, long...
method listResourcesOfApp (line 59) | List<String> listResourcesOfApp(String app);
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemAuthorityRuleStore.java
class InMemAuthorityRuleStore (line 30) | @Component
method nextId (line 35) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemDegradeRuleStore.java
class InMemDegradeRuleStore (line 27) | @Component
method nextId (line 32) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemFlowRuleStore.java
class InMemFlowRuleStore (line 30) | @Component
method nextId (line 35) | @Override
method preProcess (line 40) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemParamFlowRuleStore.java
class InMemParamFlowRuleStore (line 29) | @Component
method nextId (line 34) | @Override
method preProcess (line 39) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemSystemRuleStore.java
class InMemSystemRuleStore (line 27) | @Component
method nextId (line 32) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemoryRuleRepositoryAdapter.java
class InMemoryRuleRepositoryAdapter (line 30) | public abstract class InMemoryRuleRepositoryAdapter<T extends RuleEntity...
method save (line 42) | @Override
method saveAll (line 60) | @Override
method delete (line 77) | @Override
method findById (line 89) | @Override
method findAllByMachine (line 94) | @Override
method findAllByApp (line 103) | @Override
method preProcess (line 113) | protected T preProcess(T entity) {
method nextId (line 122) | abstract protected long nextId();
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/RuleRepository.java
type RuleRepository (line 27) | public interface RuleRepository<T, ID> {
method save (line 35) | T save(T entity);
method saveAll (line 43) | List<T> saveAll(List<T> rules);
method delete (line 51) | T delete(ID id);
method findById (line 59) | T findById(ID id);
method findAllByMachine (line 67) | List<T> findAllByMachine(MachineInfo machineInfo);
method findAllByApp (line 76) | List<T> findAllByApp(String appName);
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/DynamicRuleProvider.java
type DynamicRuleProvider (line 22) | public interface DynamicRuleProvider<T> {
method getRules (line 24) | T getRules(String appName) throws Exception;
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/DynamicRulePublisher.java
type DynamicRulePublisher (line 22) | public interface DynamicRulePublisher<T> {
method publish (line 31) | void publish(String app, T rules) throws Exception;
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/FlowRuleApiProvider.java
class FlowRuleApiProvider (line 35) | @Component("flowRuleDefaultProvider")
method getRules (line 43) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/FlowRuleApiPublisher.java
class FlowRuleApiPublisher (line 34) | @Component("flowRuleDefaultPublisher")
method publish (line 42) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/ApolloConfig.java
class ApolloConfig (line 31) | @Configuration
method flowRuleEntityEncoder (line 34) | @Bean
method flowRuleEntityDecoder (line 39) | @Bean
method apolloOpenApiClient (line 44) | @Bean
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/FlowRuleApolloProvider.java
class FlowRuleApolloProvider (line 36) | @Component("flowRuleApolloProvider")
method getRules (line 47) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/FlowRuleApolloPublisher.java
class FlowRuleApolloPublisher (line 35) | @Component("flowRuleApolloPublisher")
method publish (line 46) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterAssignService.java
type ClusterAssignService (line 28) | public interface ClusterAssignService {
method unbindClusterServer (line 37) | ClusterAppAssignResultVO unbindClusterServer(String app, String machin...
method unbindClusterServers (line 46) | ClusterAppAssignResultVO unbindClusterServers(String app, Set<String> ...
method applyAssignToApp (line 56) | ClusterAppAssignResultVO applyAssignToApp(String app, List<ClusterAppA...
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterAssignServiceImpl.java
class ClusterAssignServiceImpl (line 50) | @Service
method isMachineInApp (line 60) | private boolean isMachineInApp(/*@NonEmpty*/ String machineId) {
method handleUnbindClusterServerNotInApp (line 64) | private ClusterAppAssignResultVO handleUnbindClusterServerNotInApp(Str...
method modifyToNonStarted (line 87) | private void modifyToNonStarted(Set<String> toModifySet, Set<String> f...
method unbindClusterServer (line 99) | @Override
method unbindClusterServers (line 128) | @Override
method applyAssignToApp (line 143) | @Override
method applyAllRemainingMachineSet (line 177) | private void applyAllRemainingMachineSet(String app, Set<String> remai...
method applyAllClientConfigChange (line 195) | private void applyAllClientConfigChange(String app, ClusterAppAssignMa...
method handleFutureSync (line 220) | private void handleFutureSync(Tuple2<String, CompletableFuture<Void>> ...
method applyServerConfigChange (line 233) | private CompletableFuture<Void> applyServerConfigChange(String app, St...
method applyServerFlowConfigChange (line 243) | private CompletableFuture<Void> applyServerFlowConfigChange(String app...
method applyServerNamespaceSetConfig (line 253) | private CompletableFuture<Void> applyServerNamespaceSetConfig(String a...
method modifyMode (line 262) | private CompletableFuture<Void> modifyMode(String ip, int port, int mo...
method parsePort (line 266) | private int parsePort(ClusterAppAssignMap assignMap) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterConfigService.java
class ClusterConfigService (line 48) | @Service
method modifyClusterClientConfig (line 56) | public CompletableFuture<Void> modifyClusterClientConfig(ClusterClient...
method notClientRequestValid (line 67) | private boolean notClientRequestValid(/*@NonNull */ ClusterClientModif...
method modifyClusterServerConfig (line 74) | public CompletableFuture<Void> modifyClusterServerConfig(ClusterServer...
method getClusterUniversalState (line 103) | public CompletableFuture<List<ClusterUniversalStatePairVO>> getCluster...
method getClusterUniversalStateForAppMachine (line 121) | public CompletableFuture<ClusterGroupEntity> getClusterUniversalStateF...
method getClusterUniversalState (line 148) | public CompletableFuture<ClusterUniversalStateVO> getClusterUniversalS...
method invalidTransportConfig (line 168) | private boolean invalidTransportConfig(ServerTransportConfig transport...
method invalidFlowConfig (line 173) | private boolean invalidFlowConfig(ServerFlowConfig flowConfig) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/util/AsyncUtils.java
class AsyncUtils (line 31) | public final class AsyncUtils {
method newFailedFuture (line 35) | public static <R> CompletableFuture<R> newFailedFuture(Throwable ex) {
method sequenceFuture (line 41) | public static <R> CompletableFuture<List<R>> sequenceFuture(List<Compl...
method sequenceSuccessFuture (line 50) | public static <R> CompletableFuture<List<R>> sequenceSuccessFuture(Lis...
method getValue (line 58) | public static <T> T getValue(CompletableFuture<T> future) {
method isSuccessFuture (line 67) | public static boolean isSuccessFuture(CompletableFuture future) {
method AsyncUtils (line 71) | private AsyncUtils() {}
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/util/ClusterEntityUtils.java
class ClusterEntityUtils (line 40) | public final class ClusterEntityUtils {
method wrapToAppClusterServerState (line 42) | public static List<AppClusterServerStateWrapVO> wrapToAppClusterServer...
method wrapToAppClusterClientState (line 98) | public static List<AppClusterClientStateWrapVO> wrapToAppClusterClient...
method wrapToClusterGroup (line 122) | public static List<ClusterGroupEntity> wrapToClusterGroup(List<Cluster...
method getIp (line 160) | private static String getIp(String str) {
method ClusterEntityUtils (line 167) | private ClusterEntityUtils() {}
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/util/MachineUtils.java
class MachineUtils (line 26) | public final class MachineUtils {
method parseCommandPort (line 28) | public static Optional<Integer> parseCommandPort(String machineIp) {
method parseCommandIpAndPort (line 43) | public static Optional<Tuple2<String, Integer>> parseCommandIpAndPort(...
method MachineUtils (line 58) | private MachineUtils() {}
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/java/com/alibaba/csp/sentinel/dashboard/util/VersionUtils.java
class VersionUtils (line 30) | public final class VersionUtils {
method parseVersion (line 39) | public static Optional<SentinelVersion> parseVersion(String s) {
method VersionUtils (line 94) | private VersionUtils() {}
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/authority.js
function getMachineRules (line 31) | function getMachineRules() {
function addNewRuleAndPush (line 108) | function addNewRuleAndPush(rule) {
function saveRuleAndPush (line 125) | function saveRuleAndPush(rule, edit) {
function deleteRuleAndPush (line 147) | function deleteRuleAndPush(entity) {
function queryAppMachines (line 196) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/cluster_app_assign_manage.js
function convertSetToString (line 19) | function convertSetToString(set) {
function convertStrToNamespaceSet (line 33) | function convertStrToNamespaceSet(str) {
function processAppSingleData (line 45) | function processAppSingleData(data) {
function removeFromArr (line 52) | function removeFromArr(arr, v) {
function resetChosen (line 61) | function resetChosen() {
function generateMachineId (line 66) | function generateMachineId(e) {
function applyClusterMap (line 70) | function applyClusterMap(appClusterMachineList) {
function parseIpFromMachineId (line 162) | function parseIpFromMachineId(machineId) {
function retrieveClusterAppInfo (line 217) | function retrieveClusterAppInfo() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/cluster_app_server_list.js
function convertSetToString (line 24) | function convertSetToString(set) {
function convertStrToNamespaceSet (line 44) | function convertStrToNamespaceSet(str) {
function processAppSingleData (line 56) | function processAppSingleData(data) {
function removeFromArr (line 63) | function removeFromArr(arr, v) {
function removeFromArrIf (line 72) | function removeFromArrIf(arr, f) {
function resetAssignDialogChosen (line 81) | function resetAssignDialogChosen() {
function generateMachineId (line 86) | function generateMachineId(e) {
function applyClusterMap (line 90) | function applyClusterMap(appClusterMachineList) {
function parseIpFromMachineId (line 209) | function parseIpFromMachineId(machineId) {
function retrieveClusterAssignInfoOfApp (line 220) | function retrieveClusterAssignInfoOfApp() {
function getRemainingMachineList (line 313) | function getRemainingMachineList() {
function doApplyNewSingleServerAssign (line 317) | function doApplyNewSingleServerAssign() {
function doApplySingleServerAssignEdit (line 371) | function doApplySingleServerAssignEdit() {
function checkAssignDialogValid (line 430) | function checkAssignDialogValid() {
function generateRequestLimitDataStr (line 459) | function generateRequestLimitDataStr(limitData) {
function processServerListData (line 472) | function processServerListData(serverVO) {
function retrieveClusterServerInfo (line 499) | function retrieveClusterServerInfo() {
function apiUnbindServerAssign (line 537) | function apiUnbindServerAssign(ids) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/cluster_app_server_manage.js
function convertSetToString (line 19) | function convertSetToString(set) {
function convertStrToNamespaceSet (line 33) | function convertStrToNamespaceSet(str) {
function processAppSingleData (line 45) | function processAppSingleData(data) {
function removeFromArr (line 52) | function removeFromArr(arr, v) {
function resetChosen (line 61) | function resetChosen() {
function generateMachineId (line 66) | function generateMachineId(e) {
function applyClusterMap (line 70) | function applyClusterMap(appClusterMachineList) {
function parseIpFromMachineId (line 162) | function parseIpFromMachineId(machineId) {
function retrieveClusterAppInfo (line 217) | function retrieveClusterAppInfo() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/cluster_app_server_monitor.js
function convertSetToString (line 15) | function convertSetToString(set) {
function processServerData (line 29) | function processServerData(serverVO) {
function retrieveClusterServerInfo (line 57) | function retrieveClusterServerInfo() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/cluster_app_token_client_list.js
function processClientData (line 12) | function processClientData(clientVO) {
function checkValidClientConfig (line 36) | function checkValidClientConfig(config) {
function retrieveClusterTokenClientInfo (line 84) | function retrieveClusterTokenClientInfo() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/cluster_single.js
function convertSetToString (line 27) | function convertSetToString(set) {
function convertStrToNamespaceSet (line 41) | function convertStrToNamespaceSet(str) {
function fetchMachineClusterState (line 53) | function fetchMachineClusterState() {
function checkValidClientConfig (line 81) | function checkValidClientConfig(stateVO) {
function sendClusterClientRequest (line 102) | function sendClusterClientRequest(stateVO) {
function checkValidServerConfig (line 133) | function checkValidServerConfig(stateVO) {
function sendClusterServerRequest (line 159) | function sendClusterServerRequest(stateVO) {
function queryAppMachines (line 210) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/degrade.js
function getMachineRules (line 28) | function getMachineRules() {
function parseDegradeMode (line 95) | function parseDegradeMode(grade) {
function deleteRule (line 134) | function deleteRule(rule) {
function addNewRule (line 145) | function addNewRule(rule) {
function saveRule (line 156) | function saveRule(rule, edit) {
function queryAppMachines (line 171) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/flow_v1.js
function getMachineRules (line 44) | function getMachineRules() {
function deleteRule (line 145) | function deleteRule(rule) {
function addNewRule (line 156) | function addNewRule(rule) {
function saveRule (line 174) | function saveRule(rule, edit) {
function queryAppMachines (line 189) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/flow_v2.js
function getMachineRules (line 44) | function getMachineRules() {
function deleteRule (line 146) | function deleteRule(rule) {
function addNewRule (line 157) | function addNewRule(rule) {
function saveRule (line 175) | function saveRule(rule, edit) {
function queryAppMachines (line 190) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/identity.js
function saveFlowRule (line 91) | function saveFlowRule() {
function saveFlowRuleAndContinue (line 108) | function saveFlowRuleAndContinue() {
function saveDegradeRule (line 157) | function saveDegradeRule() {
function saveDegradeRuleAndContinue (line 172) | function saveDegradeRuleAndContinue() {
function saveAuthorityRule (line 188) | function saveAuthorityRule() {
function saveAuthorityRuleAndContinue (line 210) | function saveAuthorityRuleAndContinue() {
function saveParamFlowRule (line 267) | function saveParamFlowRule() {
function saveParamFlowRuleAndContinue (line 289) | function saveParamFlowRuleAndContinue() {
function queryAppMachines (line 387) | function queryAppMachines() {
function reInitIdentityDatas (line 427) | function reInitIdentityDatas() {
function queryIdentities (line 435) | function queryIdentities() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/metric.js
function formatDate (line 11) | function formatDate(date) {
function reInitIdentityDatas (line 50) | function reInitIdentityDatas() {
function queryIdentityDatas (line 173) | function queryIdentityDatas() {
function fillZeros (line 216) | function fillZeros(metricData) {
function lastOfArray (line 243) | function lastOfArray(arr, n) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/param_flow.js
function updateSingleParamItem (line 39) | function updateSingleParamItem(arr, v, t, c) {
function removeSingleParamItem (line 49) | function removeSingleParamItem(arr, v, t) {
function isNumberClass (line 58) | function isNumberClass(classType) {
function isByteClass (line 63) | function isByteClass(classType) {
function notNumberAtLeastZero (line 67) | function notNumberAtLeastZero(num) {
function notGoodNumber (line 71) | function notGoodNumber(num) {
function notGoodNumberBetweenExclusive (line 75) | function notGoodNumberBetweenExclusive(num, l ,r) {
function getMachineRules (line 101) | function getMachineRules() {
function addNewRuleAndPush (line 199) | function addNewRuleAndPush(rule) {
function saveRuleAndPush (line 216) | function saveRuleAndPush(rule, edit) {
function deleteRuleAndPush (line 238) | function deleteRuleAndPush(entity) {
function queryAppMachines (line 288) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/controllers/system.js
function getMachineRules (line 30) | function getMachineRules() {
function deleteRule (line 157) | function deleteRule(rule) {
function addNewRule (line 168) | function addNewRule(rule) {
function saveRule (line 179) | function saveRule(rule, edit) {
function queryAppMachines (line 199) | function queryAppMachines() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/libs/treeTable.js
function depthFirst (line 3) | function depthFirst(tree, func, childrenAttr) {
function copy (line 22) | function copy(data){
function makeTree (line 26) | function makeTree (data, idAttr, refAttr, childrenAttr) {
function renderTree (line 65) | function renderTree(tree, childrenAttr, idAttr, attrs, renderer, tableAt...
function attr2attr (line 144) | function attr2attr(nodes, attrs){
function treeTable (line 153) | function treeTable(table){
function appendTreetable (line 229) | function appendTreetable(tree, options) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/services/flow_service_v1.js
function notNumberAtLeastZero (line 74) | function notNumberAtLeastZero(num) {
function notNumberGreaterThanZero (line 78) | function notNumberGreaterThanZero(num) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/services/flow_service_v2.js
function notNumberAtLeastZero (line 40) | function notNumberAtLeastZero(num) {
function notNumberGreaterThanZero (line 44) | function notNumberGreaterThanZero(num) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/app/scripts/services/param_flow_service.js
function isNumberClass (line 43) | function isNumberClass(classType) {
function isByteClass (line 48) | function isByteClass(classType) {
function notNumberAtLeastZero (line 52) | function notNumberAtLeastZero(num) {
function notGoodNumber (line 56) | function notGoodNumber(num) {
function notGoodNumberBetweenExclusive (line 60) | function notGoodNumberBetweenExclusive(num, l ,r) {
function notValidParamItem (line 64) | function notValidParamItem(curExItem) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/dist/js/app.js
function r (line 1) | function r(e){return void 0===e||""===e||isNaN(e)||e<=0}
function r (line 1) | function r(e){return void 0===e||""===e||isNaN(e)||e<=0}
function o (line 1) | function o(e){return!(!function(e){return"int"===e||"double"===e||"float...
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/dist/js/app.vendor.js
function l (line 1) | function l(n){var e=[].slice.apply(arguments,[1]),r=n.length;return func...
function n (line 1) | function n(){var n=arguments,r=n.length-1;return function(){for(var e=r,...
function u (line 1) | function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];r...
function r (line 1) | function r(n,r){return function(){for(var e=[],t=0;t<arguments.length;t+...
function i (line 1) | function i(n,r){return function(){for(var e=[],t=0;t<arguments.length;t+...
function h (line 1) | function h(t,n){return function(e){return e[t].apply(e,n)}}
function f (line 1) | function f(n){return function(e){for(var t=0;t<n.length;t++)if(n[t][0](e...
function M (line 1) | function M(e){if(A(e)&&e.length){var t=e.slice(0,-1),n=e.slice(-1);retur...
function q (line 1) | function q(e){return e}
function z (line 1) | function z(){}
function B (line 1) | function B(t,n,r,e,i){void 0===i&&(i=!1);var o=function(e){return t()[e]...
function K (line 1) | function K(e,t){return-1!==e.indexOf(t)}
function Z (line 1) | function Z(e,t){var n=e.indexOf(t);return 0<=n&&e.splice(n,1),e}
function J (line 1) | function J(e,t){return e.push(t),t}
function te (line 1) | function te(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[...
function re (line 1) | function re(e,t){var n=[];for(var r in e.path){if(e.path[r]!==t.path[r])...
function ie (line 1) | function ie(e,t){var n={};for(var r in e)-1!==t.indexOf(r)&&(n[r]=e[r]);...
function oe (line 1) | function oe(n,e){return Object.keys(n).filter(d(G(e))).reduce(function(e...
function ae (line 1) | function ae(e,t){return ce(e,v(t))}
function se (line 1) | function se(e,n){var t=A(e),r=t?[]:{},i=t?function(e){return r.push(e)}:...
function ue (line 1) | function ue(e,n){var r;return N(e,function(e,t){r||n(e,t)&&(r=e)}),r}
function ce (line 1) | function ce(e,n,r){return r=r||(A(e)?[]:{}),N(e,function(e,t){return r[t...
function me (line 1) | function me(e,t){return e.push(t),e}
function _e (line 1) | function _e(n,r){return void 0===r&&(r="assert failure"),function(e){var...
function Ce (line 1) | function Ce(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];...
function ke (line 1) | function ke(e,t){var n,r;if(A(t)&&(n=t[0],r=t[1]),!O(n))throw new Error(...
function De (line 1) | function De(e){return e.length&&e[e.length-1]||void 0}
function xe (line 1) | function xe(e,t){return t&&Object.keys(t).forEach(function(e){return del...
function Oe (line 1) | function Oe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if...
function Te (line 1) | function Te(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=...
function t (line 1) | function t(e){this.text=e,this.glob=e.split(".");var t=this.text.split("...
function e (line 1) | function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=null),this._items=e,th...
function r (line 1) | function r(e,t,n){this.$id=Ie++,this.type=e,this.message=t,this.detail=n}
function Le (line 1) | function Le(e,t){return t.length<=e?t:t.substr(0,e-3)+"..."}
function Fe (line 1) | function Fe(e,t){for(;t.length<e;)t+=" ";return t}
function je (line 1) | function je(e){return e.replace(/^([A-Z])/,function(e){return e.toLowerC...
function He (line 1) | function He(e){var t=Ne(e),n=t.match(/^(function [^ ]+\([^)]*\))/),r=n?n...
function Ne (line 1) | function Ne(e){var t=A(e)?e.slice(-1)[0]:e;return t&&t.toString()||"unde...
function qe (line 1) | function qe(e){var t=[];function n(e){if(T(e)){if(-1!==t.indexOf(e))retu...
function Xe (line 1) | function Xe(e){var t=new RegExp("("+e+")","g");return function(e){return...
function Je (line 1) | function Je(e,t){return O(De(e))&&O(t)?e.slice(0,-1).concat(De(e)+t):me(...
function et (line 1) | function et(e){if(!e)return"ui-view (defunct)";var t=e.creationContext?e...
function tt (line 1) | function tt(e){return x(e)?g.Category[e]:g.Category[g.Category[e]]}
function e (line 1) | function e(){this._enabled={},this.approximateDigests=0}
function e (line 1) | function e(e){this.pattern=/.*/,this.inherit=!0,Y(this,e)}
function dt (line 1) | function dt(r,i){var o=this;function a(e){return A(e)?e:k(e)?[e]:[]}func...
function gt (line 1) | function gt(e,t,n){var r=!1===n.reloadOnSearch&&t===g.DefType.SEARCH||vo...
function r (line 1) | function r(e,t,n,r,i){var o=gt(e,n,i);t=function(e,t,n,r,i){if(e.type&&t...
function e (line 1) | function e(){this.enqueue=!0,this.typeQueue=[],this.defaultTypes=ie(e.pr...
function e (line 1) | function e(e){void 0===e&&(e={}),Y(this,e)}
function r (line 1) | function r(e){if(e instanceof r){var t=e;this.state=t.state,this.paramSc...
function r (line 1) | function r(e,t,n,r){this._stateRegistry=e,this._identifier=t,this._ident...
function p (line 1) | function p(){}
function a (line 1) | function a(e,t,n,r,i){if(this.resolved=!1,this.promise=void 0,e instance...
function e (line 1) | function e(e){this._path=e}
function e (line 1) | function e(e){this.context=e,this.native=this.get(Tt)||V.$injector}
function Pt (line 1) | function Pt(e){return e.name}
function Mt (line 1) | function Mt(e){return e.self.$$state=function(){return e},e.self}
function Rt (line 1) | function Rt(e){return e.parent&&e.parent.data&&(e.data=e.self.data=W(e.p...
function Vt (line 1) | function Vt(e){return e.parent?e.parent.path.concat(e):[e]}
function Lt (line 1) | function Lt(e){var t=e.parent?Y({},e.parent.includes):{};return t[e.name...
function Ft (line 1) | function Ft(e){var t,n,r=function(e){return e.provide||e.token},i=f([[v(...
function e (line 1) | function e(t,e){this.matcher=t;var n=this,r=function(){return t.find("")...
function n (line 1) | function n(e){return n.create(e||{})}
function e (line 1) | function e(e){this._states=e}
function e (line 1) | function e(e,t,n,r){this.router=e,this.states=t,this.builder=n,this.list...
function e (line 1) | function e(e){this.router=e,this.states={},this.listeners=[],this.matche...
function o (line 1) | function o(e,t,n,r){var i=this;this.transition=e,this.stateContext=t,thi...
function Gt (line 1) | function Gt(e,t,n){var i=O(t)?[t]:t;return!!(D(i)?i:function(e){for(var ...
function e (line 1) | function e(e,t,n,r,i,o){void 0===o&&(o={}),this.tranSvc=e,this.eventType...
function Qt (line 1) | function Qt(e,i,o){var a=(e._registeredHooks=e._registeredHooks||{})[o.n...
function e (line 1) | function e(e){this.transition=e}
function t (line 1) | function t(e,t,n){var r=this;if(this._deferred=V.$q.defer(),this.promise...
function en (line 1) | function en(e,t){var n=["",""],r=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&...
function m (line 1) | function m(o,a,e,t){var s=this;this._cache={path:[this]},this._children=...
function r (line 1) | function r(e){var t=e.value(a[e.id]),n=e.validates(t),r=e.isDefaultValue...
function e (line 1) | function e(e){this.router=e}
function e (line 1) | function e(e){var r=this;this.router=e,this.paramFactory=new an(this.rou...
function e (line 1) | function e(e){this.router=e}
function e (line 1) | function e(e){var r=this;this.router=e,this.sync=function(e){return r.ro...
function u (line 1) | function u(e){var n=this;this.router=e,this._uiViews=[],this._viewConfig...
function i (line 1) | function i(e){for(var t=e.viewDecl.$context,n=0;++n&&t.parent;)t=t.paren...
function e (line 1) | function e(){this.params=new wt,this.lastStartedTransitionId=-1,this.tra...
function fn (line 1) | function fn(e){if(!(D(e)||O(e)||c($t)(e)||$t.isDef(e)))throw new Error("...
function e (line 1) | function e(e){this.router=e,this._sortFn=cn,this._rules=[],this._id=0,th...
function e (line 1) | function e(e){var t=this;this.router=e,this.paramTypes=new yt,this._isCa...
function e (line 1) | function e(e){var r=this;this.router=e,this.interceptDeferred=!1,this.ru...
function e (line 1) | function e(e,t){void 0===e&&(e=wn),void 0===t&&(t=bn),this.locationServi...
function _n (line 1) | function _n(t){t.addResolvable(kt.fromData($n,t.router),""),t.addResolva...
function r (line 1) | function r(e){if(e)return e instanceof $t?e:O(e)?n.target(e,t.params(),t...
function Dn (line 1) | function Dn(n){return function(e,t){return(0,t.$$state()[n])(e,t)}}
function Fn (line 1) | function Fn(t,n){var r=n.$$state().lazyLoad,e=r._promise;if(!e){e=r._pro...
function Hn (line 1) | function Hn(e){var t=e._ignoredReason();if(t){lt.traceTransitionIgnored(...
function Nn (line 1) | function Nn(e){if(!e.valid())throw new Error(e.error().toString())}
function e (line 1) | function e(e){this._transitionCount=0,this._eventTypes=[],this._register...
function n (line 1) | function n(e){this.router=e,this.invalidCallbacks=[],this._defaultErrorH...
function Xn (line 1) | function Xn(e){var t=function(e){return e||""},n=Ge(e).map(t),r=n[0],i=n...
function er (line 1) | function er(r,i,o,a){return function(e){var t=e.locationService=new o(e)...
function e (line 1) | function e(e,t){var n=this;this.fireAfterUpdate=t,this._listeners=[],thi...
function n (line 1) | function n(){this.constructor=e}
function e (line 1) | function e(e){var t=n.call(this,e,!1)||this;return L.addEventListener("h...
function n (line 1) | function n(){this.constructor=e}
function e (line 1) | function e(e){return t.call(this,e,!0)||this}
function n (line 1) | function n(){this.constructor=e}
function e (line 1) | function e(e){var t=n.call(this,e,!0)||this;return t._config=e.urlServic...
function e (line 1) | function e(e,t){void 0===t&&(t=!1),this._isHtml5=t,this._baseHref=void 0...
function hr (line 1) | function hr(e){return V.$injector=Kn,{name:"vanilla.services",$q:V.$q=zn...
function e (line 1) | function e(){}
method Category (line 1) | get Category(){return g.Category}
method DefType (line 1) | get DefType(){return g.DefType}
method TransitionHookPhase (line 1) | get TransitionHookPhase(){return g.TransitionHookPhase}
method TransitionHookScope (line 1) | get TransitionHookScope(){return g.TransitionHookScope}
method RejectType (line 1) | get RejectType(){return g.RejectType}
function wr (line 1) | function wr(){var n=null;return function(e,t){return n=n||V.$injector.ge...
function $r (line 1) | function $r(r){if(!r.parent)return{};var i=["component","bindings","comp...
function e (line 1) | function e(e,t,n){var r=this;this.path=e,this.viewDecl=t,this.factory=n,...
function e (line 1) | function e(){var r=this;this._useHttp=S.version.minor<3,this.$get=["$htt...
function n (line 1) | function n(e,t){this.stateRegistry=e,this.stateService=t,B(p(n.prototype...
function e (line 1) | function e(e){this._urlListeners=[],this.$locationProvider=e;var t=p(e);...
function n (line 1) | function n(e){this.router=e}
function Lr (line 1) | function Lr(e){(Vr=this.router=new $n).stateProvider=new xr(Vr.stateRegi...
function jr (line 1) | function jr(t,e,n){if(V.$injector=t,V.$q=e,!t.hasOwnProperty("strictDi")...
function Hr (line 1) | function Hr(e){e.$watch(function(){lt.approximateDigests++})}
function Br (line 1) | function Br(e){var t,n=e.match(/^\s*({[^}]*})\s*$/);if(n&&(e="("+n[1]+")...
function Wr (line 1) | function Wr(e){var t=e.parent().inheritedData("$uiView"),n=C("$cfg.path"...
function Gr (line 1) | function Gr(e,t,n){var r=n.uiState||e.current.name,i=Y(function(e,t){ret...
function Kr (line 1) | function Kr(e){var t="[object SVGAnimatedString]"===Object.prototype.toS...
function Qr (line 1) | function Qr(o,a,s,u,l){return function(e){var t=e.which||e.button,n=l();...
function Zr (line 1) | function Zr(i,e,o,t){var a;t&&(a=t.events),A(a)||(a=["click"]);for(var n...
function Xr (line 1) | function Xr(r){var e=function(e,t,n){return r.is(e,t,n)};return e.$state...
function Jr (line 1) | function Jr(r){var e=function(e,t,n){return r.includes(e,t,n)};return e....
function ei (line 1) | function ei(g,m,v,e,y,t){var w=C("viewDecl.controllerAs"),b=C("viewDecl....
function d (line 1) | function d(){var e=l();s&&s(),a&&(s=a.$$addStateInfo(e.uiState,e.uiState...
function p (line 1) | function p(){var e=l();s&&s(),a&&(s=a.$$addStateInfo(e.uiState,e.uiState...
function o (line 1) | function o(e){e.promise.then(h,z)}
function a (line 1) | function a(){d(r)}
function d (line 1) | function d(e){T(e)&&(c=[],N(e,function(e,t){var n=function(e,t){var n=Br...
function p (line 1) | function p(e,t,n){var r={state:f.get(e,Wr(u))||{name:e},params:t,activeC...
function h (line 1) | function h(){var t=function(e){return e.split(/\s/).filter(q)},e=functio...
method creationContext (line 1) | get creationContext(){var e=C("$cfg.viewDecl.$context")(n),t=C("$uiView....
function r (line 1) | function r(e){var t=a.$new(),n=b.defer(),r=b.defer(),i={$cfg:e,$uiView:m...
function ri (line 1) | function ri(r,e,l,t,n){!D(l.$onInit)||n.viewDecl.component&&ti||l.$onIni...
function c (line 1) | function c(e,t,n){if(t){var r,i,o,a=[];for(r=t.length-1;0<=r;r--)if(i=t[...
function p (line 1) | function p(e,n){function i(e){return b.isArray(e)?u(e.toString()):b.isOb...
function d (line 1) | function d(e,t,n,r){var i,o,a,s;if(t)for(i=0,o=t.length;i<o;i++)if(a=t[i...
function h (line 1) | function h(e){var t=null;return b.isString(e)?t=e:b.isObject(e)&&e.hasOw...
function a (line 1) | function a(e){if(!b.isString(e))return!1;try{return E(e)}catch(e){if(/No...
function l (line 1) | function l(e){var t=u.defer();return n.error(e.message),t.reject(e),t.pr...
function s (line 1) | function s(){n.cancel(l),a.complete(),c=d=0}
function u (line 1) | function u(e){var t,n=o.get("$http"),r=h.defaults;!e.cache&&!r.cache||!1...
function u (line 1) | function u(e){if(m){var t=100*e+"%";f.css("width",t),v=e,y&&(a.cancel(c)...
function n (line 1) | function n(){if(!(1<=r())){var e,t=r();e=0<=t&&t<.25?(3*Math.random()+3)...
function r (line 1) | function r(){return v}
function t (line 1) | function t(){v=0,m=!1}
function e (line 1) | function e(e){for(var t in e)if(void 0!==n.style[t])return e[t]}
function n (line 1) | function n(e){function t(){a===n&&(a=void 0)}var n=u(r,e);return a&&a.ca...
function i (line 1) | function i(){r.removeClass("collapsing"),r.addClass("collapse in"),r.css...
function o (line 1) | function o(){r.removeClass("collapsing"),r.addClass("collapse")}
function i (line 1) | function i(){return o(t.btnCheckboxTrue,!0)}
function o (line 1) | function o(e,t){var n=r.$eval(e);return angular.isDefined(n)?n:t}
function u (line 1) | function u(){r();var e=+a.interval;!isNaN(e)&&0<e&&(o=n(i,e))}
function r (line 1) | function r(){o&&(n.cancel(o),o=null)}
function i (line 1) | function i(){var e=+a.interval;l&&!isNaN(e)&&0<e?a.next():a.pause()}
function e (line 1) | function e(){var e,t;h||(c.currentSlide&&angular.isString(r)&&!a.noTrans...
function i (line 1) | function i(e,t){angular.extend(e,{direction:"",active:!0,leaving:!1,ente...
function a (line 1) | function a(e){return"static"===(function(e,t){return e.currentStyle?e.cu...
function r (line 1) | function r(e,t){return 1!==t||e%4!=0||e%100==0&&e%400!=0?n[t]:29}
function o (line 1) | function o(e){return parseInt((e-1)/a,10)*a+1}
function o (line 1) | function o(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowe...
function a (line 1) | function a(e){if(!e)return n.$setValidity("date",!0),null;if(angular.isD...
function p (line 1) | function p(){for(var e=-1,t=m.keys(),n=0;n<t.length;n++)m.get(t[n]).valu...
function r (line 1) | function r(e){var t=l.find("body").eq(0),n=m.get(e).value;m.remove(e),i(...
function i (line 1) | function i(e,t,n,r){function i(){i.done||(i.done=!0,e.remove(),r&&r())}t...
function c (line 1) | function c(e,t,n){return{number:e,text:t,active:n}}
function k (line 1) | function k(e){var t=e||D.trigger||n;return{show:t,hide:u[t]||t}}
function r (line 1) | function r(){m.isOpen?o():i()}
function i (line 1) | function i(){(!g||e.$eval(n[C+"Enable"]))&&(function(){var e=n[C+"Placem...
function o (line 1) | function o(){e.$apply(function(){s()})}
function a (line 1) | function a(){return p=null,d&&(x.cancel(d),d=null),m.content?(l&&u(),c=m...
function s (line 1) | function s(){m.isOpen=!1,x.cancel(p),p=null,m.animation?d||(d=x(u,500)):...
function u (line 1) | function u(){d=null,l&&(l.remove(),l=null),c&&(c.$destroy(),c=null)}
function r (line 1) | function r(){var e=parseInt(i.hours,10);return(i.showMeridian?0<e&&e<13:...
function s (line 1) | function s(){var e=parseInt(i.minutes,10);return 0<=e&&e<60?e:void 0}
function u (line 1) | function u(e){return angular.isDefined(e)&&e.toString().length<2?"0"+e:e}
function l (line 1) | function l(e){c(),f.$setViewValue(new Date(h)),d(e)}
function c (line 1) | function c(){f.$setValidity("time",!0),i.invalidHours=!1,i.invalidMinute...
function d (line 1) | function d(e){var t=h.getHours(),n=h.getMinutes();i.showMeridian&&(t=0==...
function p (line 1) | function p(e){var t=new Date(h.getTime()+6e4*e);h.setHours(t.getHours(),...
function p (line 1) | function p(){return e.apply(null,arguments)}
function a (line 1) | function a(e){return e instanceof Array||"[object Array]"===Object.proto...
function s (line 1) | function s(e){return null!=e&&"[object Object]"===Object.prototype.toStr...
function o (line 1) | function o(e){return void 0===e}
function u (line 1) | function u(e){return"number"==typeof e||"[object Number]"===Object.proto...
function l (line 1) | function l(e){return e instanceof Date||"[object Date]"===Object.prototy...
function r (line 1) | function r(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));retu...
function h (line 1) | function h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}
function c (line 1) | function c(e,t){for(var n in t)h(t,n)&&(e[n]=t[n]);return h(t,"toString"...
function d (line 1) | function d(e,t,n,r){return xt(e,t,n,r,!0).utc()}
function f (line 1) | function f(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unuse...
function g (line 1) | function g(e){if(null==e._isValid){var t=f(e),n=i.call(t.parsedDateParts...
function m (line 1) | function m(e){var t=d(NaN);return null!=e?c(f(t),e):f(t).userInvalidated...
function y (line 1) | function y(e,t){var n,r,i;if(o(t._isAMomentObject)||(e._isAMomentObject=...
function w (line 1) | function w(e){y(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),...
function b (line 1) | function b(e){return e instanceof w||null!=e&&null!=e._isAMomentObject}
function $ (line 1) | function $(e){return e<0?Math.ceil(e)||0:Math.floor(e)}
function _ (line 1) | function _(e){var t=+e,n=0;return 0!=t&&isFinite(t)&&(n=$(t)),n}
function S (line 1) | function S(e,t,n){var r,i=Math.min(e.length,t.length),o=Math.abs(e.lengt...
function C (line 1) | function C(e){!1===p.suppressDeprecationWarnings&&"undefined"!=typeof co...
function n (line 1) | function n(i,o){var a=!0;return c(function(){if(null!=p.deprecationHandl...
function x (line 1) | function x(e,t){null!=p.deprecationHandler&&p.deprecationHandler(e,t),D[...
function O (line 1) | function O(e){return e instanceof Function||"[object Function]"===Object...
function T (line 1) | function T(e,t){var n,r=c({},e);for(n in t)h(t,n)&&(s(e[n])&&s(t[n])?(r[...
function A (line 1) | function A(e){null!=e&&this.set(e)}
function P (line 1) | function P(e,t){var n=e.toLowerCase();E[n]=E[n+"s"]=E[t]=e}
function M (line 1) | function M(e){return"string"==typeof e?E[e]||E[e.toLowerCase()]:void 0}
function R (line 1) | function R(e){var t,n,r={};for(n in e)h(e,n)&&(t=M(n))&&(r[t]=e[n]);retu...
function V (line 1) | function V(e,t){I[e]=t}
function L (line 1) | function L(e,t,n){var r=""+Math.abs(e),i=t-r.length;return(0<=e?n?"+":""...
function Y (line 1) | function Y(e,t,n,r){var i=r;"string"==typeof r&&(i=function(){return thi...
function U (line 1) | function U(e,t){return e.isValid()?(t=q(t,e.localeData()),H[t]=H[t]||fun...
function q (line 1) | function q(e,t){var n=5;function r(e){return t.longDateFormat(e)||e}for(...
function ue (line 1) | function ue(e,n,r){se[e]=O(n)?n:function(e,t){return e&&r?r:n}}
function le (line 1) | function le(e,t){return h(se,e)?se[e](t._strict,t._locale):new RegExp(fu...
function ce (line 1) | function ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}
function pe (line 1) | function pe(e,n){var t,r=n;for("string"==typeof e&&(e=[e]),u(n)&&(r=func...
function he (line 1) | function he(e,i){pe(e,function(e,t,n,r){n._w=n._w||{},i(e,n._w,n,r)})}
function Se (line 1) | function Se(e){return Ce(e)?366:365}
function Ce (line 1) | function Ce(e){return e%4==0&&e%100!=0||e%400==0}
function xe (line 1) | function xe(t,n){return function(e){return null!=e?(Te(this,t,e),p.updat...
function Oe (line 1) | function Oe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():...
function Te (line 1) | function Te(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&Ce(e.year())...
function Ae (line 1) | function Ae(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=function(e,t){re...
function Re (line 1) | function Re(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if...
function Ie (line 1) | function Ie(e){return null!=e?(Re(this,e),p.updateOffset(this,!0),this):...
function Fe (line 1) | function Fe(){function e(e,t){return t.length-e.length}var t,n,r=[],i=[]...
function je (line 1) | function je(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(ar...
function He (line 1) | function He(e,t,n){var r=7+t-n;return r-(7+je(e,0,r).getUTCDay()-t)%7-1}
function Ne (line 1) | function Ne(e,t,n,r,i){var o,a,s=1+7*(t-1)+(7+n-r)%7+He(e,r,i);return a=...
function Ye (line 1) | function Ye(e,t,n){var r,i,o=He(e.year(),t,n),a=Math.floor((e.dayOfYear(...
function Ue (line 1) | function Ue(e,t,n){var r=He(e,t,n),i=He(e+1,t,n);return(Se(e)-r+i)/7}
function qe (line 1) | function qe(e,t){return e.slice(t,7).concat(e.slice(0,t))}
function Ze (line 1) | function Ze(){function e(e,t){return t.length-e.length}var t,n,r,i,o,a=[...
function Xe (line 1) | function Xe(){return this.hours()%12||12}
function Je (line 1) | function Je(e,t){Y(e,0,0,function(){return this.localeData().meridiem(th...
function et (line 1) | function et(e,t){return t._meridiemParse}
function at (line 1) | function at(e){return e?e.toLowerCase().replace("_","-"):e}
function st (line 1) | function st(e){var t=null;if(!it[e]&&"undefined"!=typeof module&&module&...
function ut (line 1) | function ut(e,t){var n;return e&&((n=o(t)?ct(e):lt(e,t))?tt=n:"undefined...
function lt (line 1) | function lt(e,t){if(null===t)return delete it[e],null;var n,r=rt;if(t.ab...
function ct (line 1) | function ct(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abb...
function dt (line 1) | function dt(e){var t,n=e._a;return n&&-2===f(e).overflow&&(t=n[ge]<0||11...
function pt (line 1) | function pt(e,t,n){return null!=e?e:null!=t?t:n}
function ht (line 1) | function ht(e){var t,n,r,i,o,a=[];if(!e._d){for(r=function(e){var t=new ...
function bt (line 1) | function bt(e){var t,n,r,i,o,a,s=e._i,u=ft.exec(s)||gt.exec(s);if(u){for...
function _t (line 1) | function _t(e,t,n,r,i,o){var a=[function(e){var t=parseInt(e,10);{if(t<=...
function Ct (line 1) | function Ct(e){var t=$t.exec(function(e){return e.replace(/\([^)]*\)|[\n...
function kt (line 1) | function kt(e){if(e._f!==p.ISO_8601)if(e._f!==p.RFC_2822){e._a=[],f(e).e...
function Dt (line 1) | function Dt(e){var t=e._i,n=e._f;return e._locale=e._locale||ct(e._l),nu...
function xt (line 1) | function xt(e,t,n,r,i){var o={};return!0!==n&&!1!==n||(r=n,n=void 0),(s(...
function Ot (line 1) | function Ot(e,t,n,r){return xt(e,t,n,r,!1)}
function Et (line 1) | function Et(e,t){var n,r;if(1===t.length&&a(t[0])&&(t=t[0]),!t.length)re...
function Mt (line 1) | function Mt(e){var t=R(e),n=t.year||0,r=t.quarter||0,i=t.month||0,o=t.we...
function Rt (line 1) | function Rt(e){return e instanceof Mt}
function It (line 1) | function It(e){return e<0?-1*Math.round(-1*e):Math.round(e)}
function Vt (line 1) | function Vt(e,n){Y(e,0,0,function(){var e=this.utcOffset(),t="+";return ...
function Ft (line 1) | function Ft(e,t){var n=(t||"").match(e);if(null===n)return null;var r=((...
function jt (line 1) | function jt(e,t){var n,r;return t._isUTC?(n=t.clone(),r=(b(e)||l(e)?e.va...
function Ht (line 1) | function Ht(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}
function Nt (line 1) | function Nt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}
function qt (line 1) | function qt(e,t){var n,r,i,o=e,a=null;return Rt(e)?o={ms:e._milliseconds...
function zt (line 1) | function zt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)...
function Bt (line 1) | function Bt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year...
function Wt (line 1) | function Wt(r,i){return function(e,t){var n;return null===t||isNaN(+t)||...
function Gt (line 1) | function Gt(e,t,n,r){var i=t._milliseconds,o=It(t._days),a=It(t._months)...
function Zt (line 1) | function Zt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e....
function Xt (line 1) | function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ct(e...
function en (line 1) | function en(){return this._locale}
function nn (line 1) | function nn(e,t){return(e%t+t)%t}
function rn (line 1) | function rn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-tn:new Date(e,...
function on (line 1) | function on(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-tn:Date.UTC(e,...
function an (line 1) | function an(e,t){Y(0,[e,e.length],0,t)}
function sn (line 1) | function sn(e,t,n,r,i){var o;return null==e?Ye(this,r,i).year:((o=Ue(e,r...
function pn (line 1) | function pn(e,t){t[be]=_(1e3*("0."+e))}
function gn (line 1) | function gn(e){return e}
function vn (line 1) | function vn(e,t,n,r){var i=ct(),o=d().set(r,t);return i[n](o,e)}
function yn (line 1) | function yn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return vn(e,t...
function wn (line 1) | function wn(e,t,n,r){t=("boolean"==typeof e?u(t)&&(n=t,t=void 0):(t=e,e=...
function $n (line 1) | function $n(e,t,n,r){var i=qt(t,n);return e._milliseconds+=r*i._millisec...
function _n (line 1) | function _n(e){return e<0?Math.floor(e):Math.ceil(e)}
function Sn (line 1) | function Sn(e){return 4800*e/146097}
function Cn (line 1) | function Cn(e){return 146097*e/4800}
function kn (line 1) | function kn(e){return function(){return this.as(e)}}
function In (line 1) | function In(e){return function(){return this.isValid()?this._data[e]:NaN}}
function Bn (line 1) | function Bn(e){return(0<e)-(e<0)||+e}
function Wn (line 1) | function Wn(){if(!this.isValid())return this.localeData().invalidDate();...
function e (line 1) | function e(){return function(e,t,n){var r,i;switch(e){case"Date":r=o(fun...
function t (line 1) | function t(c){return{require:"ngModel",restrict:"A",scope:{dateFormats:"...
function e (line 1) | function e(i,o){var e={bindToController:!1,controller:t,controllerAs:"da...
function t (line 1) | function t(i){return{validate:function(e){var t=["configureOn","dropdown...
function e (line 1) | function e(e){}
function r (line 1) | function r(n,r,i){return function(e,t){!0!==i.busy&&void 0!==t&&t!==e&&(...
function a (line 1) | function a(e){_=!0,v.map(function(e){e.remove()}),v=[]}
function u (line 1) | function u(e,t,n){if(!n.busy){h=$(e).find("th"),l=n.mode,d=!angular.isDe...
function c (line 1) | function c(e){return parseInt($(e).css("min-width"))||0}
function s (line 1) | function s(e,t,n){return e.attr("id")?r+"."+e.attr("id")+"."+t+(n?"."+n:...
function e (line 1) | function e(e,t,n){this.table=e,this.columns=t,this.container=n,this.hand...
function e (line 1) | function e(e,t,n){r.call(this,e,t,n),this.ctrlColumns=this.columns,this....
function i (line 1) | function i(e){return $(e).next()}
function o (line 1) | function o(e,t){return e-t}
function a (line 1) | function a(e){return e<25}
function e (line 1) | function e(e,t,n){r.call(this,e,t,n),this.fixedColumn=$(e).find("th").fi...
function e (line 1) | function e(e,t,n){r.call(this,e,t,n)}
function a (line 1) | function a(e){e?i.disable():i.enable()}
function s (line 1) | function s(e){return e?(e=angular.isArray(e)||angular.isObject(e)?e:[e],...
function u (line 1) | function u(){!function(){var e=(n.ngRequired()||t.required||o.required)&...
function r (line 1) | function r(e,t){for(var n,r=0;r<t.length;r++)(n=t[r]).enumerable=n.enume...
function t (line 1) | function t(r){var i=this,e=1<arguments.length&&void 0!==arguments[1]?arg...
function i (line 1) | function i(t,e){return(e=e||{}).headers=e.headers||{},O.extend(e.headers...
function t (line 1) | function t(e){function t(t){["-webkit-transition","-o-transition","trans...
function s (line 1) | function s(e){if(d.isRegistered(i)&&c(e)){var t=r.pagination.current;r.p...
function u (line 1) | function u(){if(d.isRegistered(i)){var e=parseInt(d.getCurrentPage(i))||...
function l (line 1) | function l(){if(d.isRegistered(i)){var e=d.getCurrentPage(i),t=d.getItem...
function c (line 1) | function c(e){return p.test(e)&&0<e&&e<=r.pagination.last}
function h (line 1) | function h(e,t,n,r){var i,o=[],a=Math.ceil(t/n),s=Math.ceil(r/2);i=e<=s?...
function f (line 1) | function f(e,t,n,r){var i=Math.ceil(n/2);return e===n?r:1===e?e:n<r?r-i<...
function u (line 1) | function u(e,r,i){return i=i||"children",$.each(e,function(e,t){!functio...
function t (line 1) | function t(e,n,o,a){var t=e;n=n||"id",o=o||"parent",a=a||"children";var ...
function l (line 1) | function l(e,a,s,u,l,t){a=a||"children",s=s||"id",t=t||{};var n=0,r=$("<...
function n (line 1) | function n(e,t){return $.each(e,function(e,n){$.each(t,function(e,t){n[t...
function c (line 1) | function c(i){i.addClass("jsTT"),i.expandLevel=function(n){$("tr[data-tt...
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/main/webapp/resources/gulpfile.js
constant JS_LIBS (line 10) | const JS_LIBS = [
constant CSS_APP (line 29) | const CSS_APP = [
constant JS_APP (line 43) | const JS_APP = [
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/config/DashboardConfigTest.java
class DashboardConfigTest (line 24) | public class DashboardConfigTest {
method testGetConfigStr (line 28) | @Test
method testGetConfigInt (line 50) | @Test
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/SentinelVersionTest.java
class SentinelVersionTest (line 7) | public class SentinelVersionTest {
method testEqual (line 8) | @Test
method testGreater (line 18) | @Test
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfoTest.java
class AppInfoTest (line 27) | public class AppInfoTest {
method testConcurrentGetMachines (line 29) | @Test
method genMachineInfo (line 60) | private MachineInfo genMachineInfo(String hostName, String ip) {
method addRemoveMachineTest (line 70) | @Test
method testHealthyAndDead (line 120) | @Test
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfoTest.java
class MachineInfoTest (line 27) | public class MachineInfoTest {
method testHealthyAndDead (line 29) | @Test
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/repository/metric/InMemoryMetricsRepositoryTest.java
class InMemoryMetricsRepositoryTest (line 38) | public class InMemoryMetricsRepositoryTest {
method setUp (line 49) | @Before
method tearDown (line 55) | @After
method testSave (line 60) | private void testSave() {
method testExpireMetric (line 74) | @Test
method testListResourcesOfApp (line 104) | @Test
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/ApolloConfig.java
class ApolloConfig (line 33) | @Configuration
method flowRuleEntityEncoder (line 36) | @Bean
method flowRuleEntityDecoder (line 41) | @Bean
method apolloOpenApiClient (line 46) | @Bean
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/ApolloConfigUtil.java
class ApolloConfigUtil (line 22) | public final class ApolloConfigUtil {
method ApolloConfigUtil (line 26) | private ApolloConfigUtil() {
method getFlowDataId (line 29) | public static String getFlowDataId(String appName) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/FlowRuleApolloProvider.java
class FlowRuleApolloProvider (line 37) | @Component("flowRuleApolloProvider")
method getRules (line 45) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/apollo/FlowRuleApolloPublisher.java
class FlowRuleApolloPublisher (line 36) | @Component("flowRuleApolloPublisher")
method publish (line 44) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/FlowRuleNacosProvider.java
class FlowRuleNacosProvider (line 34) | @Component("flowRuleNacosProvider")
method getRules (line 42) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/FlowRuleNacosPublisher.java
class FlowRuleNacosPublisher (line 33) | @Component("flowRuleNacosPublisher")
method publish (line 41) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/NacosConfig.java
class NacosConfig (line 33) | @Configuration
method flowRuleEntityEncoder (line 36) | @Bean
method flowRuleEntityDecoder (line 41) | @Bean
method nacosConfigService (line 46) | @Bean
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/NacosConfigUtil.java
class NacosConfigUtil (line 22) | public final class NacosConfigUtil {
method NacosConfigUtil (line 41) | private NacosConfigUtil() {}
FILE: 4-Finchley/alibaba-sentinel-dashboard-apollo/src/test/java/com/alibaba/csp/sentinel/dashboard/util/VersionUtilsTest.java
class VersionUtilsTest (line 11) | public class VersionUtilsTest {
method test (line 12) | @Test
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/DashboardApplication.java
class DashboardApplication (line 28) | @SpringBootApplication
method main (line 31) | public static void main(String[] args) {
method triggerSentinelInit (line 36) | private static void triggerSentinelInit() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/AuthService.java
type AuthService (line 24) | public interface AuthService<R> {
method getAuthUser (line 32) | AuthUser getAuthUser(R request);
type PrivilegeType (line 37) | enum PrivilegeType {
type AuthUser (line 67) | interface AuthUser {
method authTarget (line 83) | boolean authTarget(String target, PrivilegeType privilegeType);
method isSuperUser (line 90) | boolean isSuperUser();
method getNickName (line 97) | String getNickName();
method getLoginName (line 104) | String getLoginName();
method getId (line 111) | String getId();
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/FakeAuthServiceImpl.java
class FakeAuthServiceImpl (line 28) | @Component
method getAuthUser (line 31) | @Override
class AuthUserImpl (line 36) | static final class AuthUserImpl implements AuthUser {
method authTarget (line 38) | @Override
method isSuperUser (line 44) | @Override
method getNickName (line 50) | @Override
method getLoginName (line 55) | @Override
method getId (line 60) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/SimpleWebAuthServiceImpl.java
class SimpleWebAuthServiceImpl (line 28) | @Primary
method getAuthUser (line 34) | @Override
class SimpleWebAuthUserImpl (line 45) | public static final class SimpleWebAuthUserImpl implements AuthUser {
method SimpleWebAuthUserImpl (line 49) | public SimpleWebAuthUserImpl(String username) {
method authTarget (line 53) | @Override
method isSuperUser (line 58) | @Override
method getNickName (line 63) | @Override
method getLoginName (line 68) | @Override
method getId (line 73) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/client/CommandFailedException.java
class CommandFailedException (line 21) | public class CommandFailedException extends RuntimeException {
method CommandFailedException (line 23) | public CommandFailedException() {}
method CommandFailedException (line 25) | public CommandFailedException(String message) {
method fillInStackTrace (line 29) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/client/CommandNotFoundException.java
class CommandNotFoundException (line 22) | public class CommandNotFoundException extends Exception {
method CommandNotFoundException (line 24) | public CommandNotFoundException() { }
method CommandNotFoundException (line 26) | public CommandNotFoundException(String message) {
method fillInStackTrace (line 30) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java
class SentinelApiClient (line 87) | @Component
method SentinelApiClient (line 124) | public SentinelApiClient() {
method isSuccess (line 136) | private boolean isSuccess(int statusCode) {
method isCommandNotFound (line 140) | private boolean isCommandNotFound(int statusCode, String body) {
method queryString (line 144) | private StringBuilder queryString(Map<String, String> params) {
method postRequest (line 162) | private HttpUriRequest postRequest(String url, Map<String, String> par...
method urlEncode (line 179) | private String urlEncode(String str) {
method getBody (line 188) | private String getBody(HttpResponse response) throws Exception {
method executeCommand (line 209) | private CompletableFuture<String> executeCommand(String ip, int port, ...
method executeCommand (line 222) | private CompletableFuture<String> executeCommand(String ip, int port, ...
method executeCommand (line 236) | private CompletableFuture<String> executeCommand(String app, String ip...
method executeCommand (line 270) | private CompletableFuture<String> executeCommand(HttpUriRequest reques...
method close (line 308) | public void close() throws Exception {
method fetchItemsAsync (line 312) | @Nullable
method fetchItems (line 325) | @Nullable
method fetchRules (line 345) | private <T extends Rule> List<T> fetchRules(String ip, int port, Strin...
method setRules (line 349) | private boolean setRules(String app, String ip, int port, String type,...
method fetchResourceOfMachine (line 374) | public List<NodeVo> fetchResourceOfMachine(String ip, int port, String...
method fetchClusterNodeOfMachine (line 386) | public List<NodeVo> fetchClusterNodeOfMachine(String ip, int port, boo...
method fetchFlowRuleOfMachine (line 394) | public List<FlowRuleEntity> fetchFlowRuleOfMachine(String app, String ...
method fetchDegradeRuleOfMachine (line 404) | public List<DegradeRuleEntity> fetchDegradeRuleOfMachine(String app, S...
method fetchSystemRuleOfMachine (line 414) | public List<SystemRuleEntity> fetchSystemRuleOfMachine(String app, Str...
method fetchParamFlowRulesOfMachine (line 433) | public CompletableFuture<List<ParamFlowRuleEntity>> fetchParamFlowRule...
method fetchAuthorityRulesOfMachine (line 458) | public List<AuthorityRuleEntity> fetchAuthorityRulesOfMachine(String a...
method setFlowRuleOfMachine (line 481) | public boolean setFlowRuleOfMachine(String app, String ip, int port, L...
method setDegradeRuleOfMachine (line 495) | public boolean setDegradeRuleOfMachine(String app, String ip, int port...
method setSystemRuleOfMachine (line 509) | public boolean setSystemRuleOfMachine(String app, String ip, int port,...
method setAuthorityRuleOfMachine (line 513) | public boolean setAuthorityRuleOfMachine(String app, String ip, int po...
method setParamFlowRuleOfMachine (line 517) | public CompletableFuture<Void> setParamFlowRuleOfMachine(String app, S...
method fetchClusterMode (line 547) | public CompletableFuture<ClusterStateSimpleEntity> fetchClusterMode(St...
method modifyClusterMode (line 560) | public CompletableFuture<Void> modifyClusterMode(String ip, int port, ...
method fetchClusterClientInfoAndConfig (line 582) | public CompletableFuture<ClusterClientInfoVO> fetchClusterClientInfoAn...
method modifyClusterClientConfig (line 595) | public CompletableFuture<Void> modifyClusterClientConfig(String app, S...
method modifyClusterServerFlowConfig (line 617) | public CompletableFuture<Void> modifyClusterServerFlowConfig(String ap...
method modifyClusterServerTransportConfig (line 639) | public CompletableFuture<Void> modifyClusterServerTransportConfig(Stri...
method modifyClusterServerNamespaceSet (line 662) | public CompletableFuture<Void> modifyClusterServerNamespaceSet(String ...
method fetchClusterServerBasicInfo (line 684) | public CompletableFuture<ClusterServerStateVO> fetchClusterServerBasic...
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/config/DashboardConfig.java
class DashboardConfig (line 36) | public class DashboardConfig {
method getConfig (line 69) | @NonNull
method getConfigStr (line 84) | protected static String getConfigStr(String name) {
method getConfigInt (line 99) | protected static int getConfigInt(String name, int defaultVal, int min...
method getAuthUsername (line 113) | public static String getAuthUsername() {
method getAuthPassword (line 117) | public static String getAuthPassword() {
method getHideAppNoMachineMillis (line 121) | public static int getHideAppNoMachineMillis() {
method getRemoveAppNoMachineMillis (line 125) | public static int getRemoveAppNoMachineMillis() {
method getAutoRemoveMachineMillis (line 129) | public static int getAutoRemoveMachineMillis() {
method getUnhealthyMachineMillis (line 133) | public static int getUnhealthyMachineMillis() {
method clearCache (line 137) | public static void clearCache() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/config/WebConfig.java
class WebConfig (line 35) | @Configuration
method addResourceHandlers (line 43) | @Override
method addViewControllers (line 48) | @Override
method sentinelFilterRegistration (line 57) | @Bean
method authenticationFilterRegistration (line 70) | @Bean
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AppController.java
class AppController (line 40) | @RestController
method queryApps (line 47) | @GetMapping("/names.json")
method queryAppInfos (line 52) | @GetMapping("/briefinfos.json")
method getMachinesByApp (line 59) | @GetMapping(value = "/{app}/machines.json")
method removeMachineById (line 80) | @RequestMapping(value = "/{app}/machine/remove.json")
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AuthController.java
class AuthController (line 37) | @RestController
method login (line 49) | @PostMapping("/login")
method logout (line 75) | @RequestMapping(value = "/logout", method = RequestMethod.POST)
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AuthorityRuleController.java
class AuthorityRuleController (line 52) | @RestController
method apiQueryAllRulesForMachine (line 66) | @GetMapping("/rules")
method checkEntityInternal (line 92) | private <R> Result<R> checkEntityInternal(AuthorityRuleEntity entity) {
method apiAddAuthorityRule (line 121) | @PostMapping("/rule")
method apiUpdateParamFlowRule (line 146) | @PutMapping("/rule/{id}")
method apiDeleteRule (line 178) | @DeleteMapping("/rule/{id}")
method publishRules (line 200) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/DegradeController.java
class DegradeController (line 46) | @Controller
method queryMachineRules (line 60) | @ResponseBody
method add (line 85) | @ResponseBody
method updateIfNotNull (line 144) | @ResponseBody
method delete (line 196) | @ResponseBody
method publishRules (line 221) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/DemoController.java
class DemoController (line 34) | @Controller
method greeting (line 40) | @RequestMapping("/greeting")
method link (line 45) | @RequestMapping("/link")
method loop (line 62) | @RequestMapping("/loop")
method slow (line 73) | @RequestMapping("/slow")
class RunTask (line 84) | static class RunTask implements Runnable {
method RunTask (line 90) | public RunTask(String name, int time, boolean slow) {
method run (line 97) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/FlowControllerV1.java
class FlowControllerV1 (line 52) | @RestController
method apiQueryMachineRules (line 66) | @GetMapping("/rules")
method checkEntityInternal (line 93) | private <R> Result<R> checkEntityInternal(FlowRuleEntity entity) {
method apiAddFlowRule (line 140) | @PostMapping("/rule")
method updateIfNotNull (line 167) | @PutMapping("/save.json")
method delete (line 248) | @DeleteMapping("/delete.json")
method publishRules (line 270) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/MachineRegistryController.java
class MachineRegistryController (line 32) | @Controller
method receiveHeartBeat (line 41) | @ResponseBody
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/MetricController.java
class MetricController (line 45) | @Controller
method queryTopResourceMetric (line 56) | @ResponseBody
method queryByAppAndResource (line 138) | @ResponseBody
method sortMetricVoAndDistinct (line 162) | private Iterable<MetricVo> sortMetricVoAndDistinct(List<MetricVo> vos) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ParamFlowRuleController.java
class ParamFlowRuleController (line 59) | @RestController
method checkIfSupported (line 75) | private boolean checkIfSupported(String app, String ip, int port) {
method apiQueryAllRulesForMachine (line 88) | @GetMapping("/rules")
method isNotSupported (line 125) | private boolean isNotSupported(Throwable ex) {
method apiAddParamFlowRule (line 129) | @PostMapping("/rule")
method checkEntityInternal (line 163) | private <R> Result<R> checkEntityInternal(ParamFlowRuleEntity entity) {
method apiUpdateParamFlowRule (line 194) | @PutMapping("/rule/{id}")
method apiDeleteRule (line 235) | @DeleteMapping("/rule/{id}")
method publishRules (line 263) | private CompletableFuture<Void> publishRules(String app, String ip, In...
method unsupportedVersion (line 268) | private <R> Result<R> unsupportedVersion() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ResourceController.java
class ResourceController (line 39) | @RestController
method fetchResourceChainListOfMachine (line 58) | @GetMapping("/machineResource.json")
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/SystemController.java
class SystemController (line 45) | @Controller
method queryMachineRules (line 57) | @ResponseBody
method countNotNullAndNotNegative (line 81) | private int countNotNullAndNotNegative(Number... values) {
method add (line 91) | @ResponseBody
method updateIfNotNull (line 151) | @ResponseBody
method delete (line 205) | @ResponseBody
method publishRules (line 229) | private boolean publishRules(String app, String ip, Integer port) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterAssignController.java
class ClusterAssignController (line 41) | @RestController
method apiAssignAllClusterServersOfApp (line 50) | @PostMapping("/all_server/{app}")
method apiAssignSingleClusterServersOfApp (line 70) | @PostMapping("/single_server/{app}")
method apiUnbindClusterServersOfApp (line 88) | @PostMapping("/unbind_server/{app}")
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterConfigController.java
class ClusterConfigController (line 56) | @RestController
method apiModifyClusterConfig (line 70) | @PostMapping("/config/modify_single")
method errorResponse (line 111) | private <T> Result<T> errorResponse(ExecutionException ex) {
method apiGetClusterState (line 119) | @GetMapping("/state_single")
method apiGetClusterServerStateOfApp (line 148) | @GetMapping("/server_state/{app}")
method apiGetClusterClientStateOfApp (line 167) | @GetMapping("/client_state/{app}")
method apiGetClusterStateOfApp (line 186) | @GetMapping("/state/{app}")
method isNotSupported (line 204) | private boolean isNotSupported(Throwable ex) {
method checkIfSupported (line 208) | private boolean checkIfSupported(String app, String ip, int port) {
method checkValidRequest (line 221) | private Result<Boolean> checkValidRequest(ClusterModifyRequest request) {
method unsupportedVersion (line 240) | private <R> Result<R> unsupportedVersion() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/v2/FlowControllerV2.java
class FlowControllerV2 (line 54) | @RestController
method apiQueryMachineRules (line 73) | @GetMapping("/rules")
method checkEntityInternal (line 99) | private <R> Result<R> checkEntityInternal(FlowRuleEntity entity) {
method apiAddFlowRule (line 143) | @PostMapping("/rule")
method apiUpdateFlowRule (line 168) | @PutMapping("/rule/{id}")
method apiDeleteRule (line 210) | @DeleteMapping("/rule/{id}")
method publishRules (line 230) | private void publishRules(/*@NonNull*/ String app) throws Exception {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/ApplicationEntity.java
class ApplicationEntity (line 25) | public class ApplicationEntity {
method getId (line 34) | public long getId() {
method setId (line 38) | public void setId(long id) {
method getGmtCreate (line 42) | public Date getGmtCreate() {
method setGmtCreate (line 46) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 50) | public Date getGmtModified() {
method setGmtModified (line 54) | public void setGmtModified(Date gmtModified) {
method getApp (line 58) | public String getApp() {
method setApp (line 62) | public void setApp(String app) {
method getActiveConsole (line 66) | public String getActiveConsole() {
method getLastFetch (line 70) | public Date getLastFetch() {
method setLastFetch (line 74) | public void setLastFetch(Date lastFetch) {
method setActiveConsole (line 78) | public void setActiveConsole(String activeConsole) {
method toAppInfo (line 82) | public AppInfo toAppInfo() {
method toString (line 86) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/MachineEntity.java
class MachineEntity (line 25) | public class MachineEntity {
method getId (line 35) | public long getId() {
method setId (line 39) | public void setId(long id) {
method getGmtCreate (line 43) | public Date getGmtCreate() {
method setGmtCreate (line 47) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 51) | public Date getGmtModified() {
method setGmtModified (line 55) | public void setGmtModified(Date gmtModified) {
method getApp (line 59) | public String getApp() {
method setApp (line 63) | public void setApp(String app) {
method getIp (line 67) | public String getIp() {
method setIp (line 71) | public void setIp(String ip) {
method getHostname (line 75) | public String getHostname() {
method setHostname (line 79) | public void setHostname(String hostname) {
method getTimestamp (line 83) | public Date getTimestamp() {
method setTimestamp (line 87) | public void setTimestamp(Date timestamp) {
method getPort (line 91) | public Integer getPort() {
method setPort (line 95) | public void setPort(Integer port) {
method toMachineInfo (line 99) | public MachineInfo toMachineInfo() {
method toString (line 112) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/MetricEntity.java
class MetricEntity (line 23) | public class MetricEntity {
method copyOf (line 50) | public static MetricEntity copyOf(MetricEntity oldEntity) {
method addPassQps (line 68) | public synchronized void addPassQps(Long passQps) {
method addBlockQps (line 72) | public synchronized void addBlockQps(Long blockQps) {
method addExceptionQps (line 76) | public synchronized void addExceptionQps(Long exceptionQps) {
method addCount (line 80) | public synchronized void addCount(int count) {
method addRtAndSuccessQps (line 84) | public synchronized void addRtAndSuccessQps(double avgRt, Long success...
method setRtAndSuccessQps (line 95) | public synchronized void setRtAndSuccessQps(double avgRt, Long success...
method getId (line 100) | public Long getId() {
method setId (line 104) | public void setId(Long id) {
method getGmtCreate (line 108) | public Date getGmtCreate() {
method setGmtCreate (line 112) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 116) | public Date getGmtModified() {
method setGmtModified (line 120) | public void setGmtModified(Date gmtModified) {
method getApp (line 124) | public String getApp() {
method setApp (line 128) | public void setApp(String app) {
method getTimestamp (line 132) | public Date getTimestamp() {
method setTimestamp (line 136) | public void setTimestamp(Date timestamp) {
method getResource (line 140) | public String getResource() {
method setResource (line 144) | public void setResource(String resource) {
method getPassQps (line 149) | public Long getPassQps() {
method setPassQps (line 153) | public void setPassQps(Long passQps) {
method getBlockQps (line 157) | public Long getBlockQps() {
method setBlockQps (line 161) | public void setBlockQps(Long blockQps) {
method getExceptionQps (line 165) | public Long getExceptionQps() {
method setExceptionQps (line 169) | public void setExceptionQps(Long exceptionQps) {
method getRt (line 173) | public double getRt() {
method setRt (line 177) | public void setRt(double rt) {
method getCount (line 181) | public int getCount() {
method setCount (line 185) | public void setCount(int count) {
method getResourceCode (line 189) | public int getResourceCode() {
method getSuccessQps (line 193) | public Long getSuccessQps() {
method setSuccessQps (line 197) | public void setSuccessQps(Long successQps) {
method toString (line 201) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/MetricPositionEntity.java
class MetricPositionEntity (line 23) | public class MetricPositionEntity {
method getId (line 44) | public long getId() {
method setId (line 48) | public void setId(long id) {
method getGmtCreate (line 52) | public Date getGmtCreate() {
method setGmtCreate (line 56) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 60) | public Date getGmtModified() {
method setGmtModified (line 64) | public void setGmtModified(Date gmtModified) {
method getApp (line 68) | public String getApp() {
method setApp (line 72) | public void setApp(String app) {
method getIp (line 76) | public String getIp() {
method setIp (line 80) | public void setIp(String ip) {
method getPort (line 84) | public int getPort() {
method setPort (line 88) | public void setPort(int port) {
method getHostname (line 92) | public String getHostname() {
method setHostname (line 96) | public void setHostname(String hostname) {
method getLastFetch (line 100) | public Date getLastFetch() {
method setLastFetch (line 104) | public void setLastFetch(Date lastFetch) {
method toString (line 108) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/SentinelVersion.java
class SentinelVersion (line 22) | public class SentinelVersion {
method SentinelVersion (line 28) | public SentinelVersion() {
method SentinelVersion (line 32) | public SentinelVersion(int major, int minor, int fix) {
method SentinelVersion (line 36) | public SentinelVersion(int major, int minor, int fix, String postfix) {
method getFullVersion (line 46) | public int getFullVersion() {
method getMajorVersion (line 50) | public int getMajorVersion() {
method setMajorVersion (line 54) | public SentinelVersion setMajorVersion(int majorVersion) {
method getMinorVersion (line 59) | public int getMinorVersion() {
method setMinorVersion (line 63) | public SentinelVersion setMinorVersion(int minorVersion) {
method getFixVersion (line 68) | public int getFixVersion() {
method setFixVersion (line 72) | public SentinelVersion setFixVersion(int fixVersion) {
method getPostfix (line 77) | public String getPostfix() {
method setPostfix (line 81) | public SentinelVersion setPostfix(String postfix) {
method greaterThan (line 86) | public boolean greaterThan(SentinelVersion version) {
method greaterOrEqual (line 93) | public boolean greaterOrEqual(SentinelVersion version) {
method equals (line 100) | @Override
method hashCode (line 111) | @Override
method toString (line 120) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/AbstractRuleEntity.java
class AbstractRuleEntity (line 26) | public abstract class AbstractRuleEntity<T extends AbstractRule> impleme...
method getId (line 39) | @Override
method setId (line 44) | @Override
method getApp (line 49) | @Override
method setApp (line 54) | public AbstractRuleEntity<T> setApp(String app) {
method getIp (line 59) | @Override
method setIp (line 64) | public AbstractRuleEntity<T> setIp(String ip) {
method getPort (line 69) | @Override
method setPort (line 74) | public AbstractRuleEntity<T> setPort(Integer port) {
method getRule (line 79) | public T getRule() {
method setRule (line 83) | public AbstractRuleEntity<T> setRule(T rule) {
method getGmtCreate (line 88) | @Override
method setGmtCreate (line 93) | public AbstractRuleEntity<T> setGmtCreate(Date gmtCreate) {
method getGmtModified (line 98) | public Date getGmtModified() {
method setGmtModified (line 102) | public AbstractRuleEntity<T> setGmtModified(Date gmtModified) {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/AuthorityRuleEntity.java
class AuthorityRuleEntity (line 28) | public class AuthorityRuleEntity extends AbstractRuleEntity<AuthorityRul...
method AuthorityRuleEntity (line 30) | public AuthorityRuleEntity() {}
method AuthorityRuleEntity (line 32) | public AuthorityRuleEntity(AuthorityRule authorityRule) {
method fromAuthorityRule (line 37) | public static AuthorityRuleEntity fromAuthorityRule(String app, String...
method getLimitApp (line 45) | @JsonIgnore
method getResource (line 50) | @JsonIgnore
method getStrategy (line 55) | @JsonIgnore
method toRule (line 60) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/DegradeRuleEntity.java
class DegradeRuleEntity (line 25) | public class DegradeRuleEntity implements RuleEntity {
method fromDegradeRule (line 41) | public static DegradeRuleEntity fromDegradeRule(String app, String ip,...
method getIp (line 54) | @Override
method setIp (line 59) | public void setIp(String ip) {
method getPort (line 63) | @Override
method setPort (line 68) | public void setPort(Integer port) {
method getId (line 72) | @Override
method setId (line 77) | @Override
method getApp (line 82) | @Override
method setApp (line 87) | public void setApp(String app) {
method getResource (line 91) | public String getResource() {
method setResource (line 95) | public void setResource(String resource) {
method getLimitApp (line 99) | public String getLimitApp() {
method setLimitApp (line 103) | public void setLimitApp(String limitApp) {
method getCount (line 107) | public Double getCount() {
method setCount (line 111) | public void setCount(Double count) {
method getTimeWindow (line 115) | public Integer getTimeWindow() {
method setTimeWindow (line 119) | public void setTimeWindow(Integer timeWindow) {
method getGrade (line 123) | public Integer getGrade() {
method setGrade (line 127) | public void setGrade(Integer grade) {
method getGmtCreate (line 131) | @Override
method setGmtCreate (line 136) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 140) | public Date getGmtModified() {
method setGmtModified (line 144) | public void setGmtModified(Date gmtModified) {
method toRule (line 148) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/FlowRuleEntity.java
class FlowRuleEntity (line 26) | public class FlowRuleEntity implements RuleEntity {
method fromFlowRule (line 63) | public static FlowRuleEntity fromFlowRule(String app, String ip, Integ...
method getIp (line 82) | @Override
method setIp (line 87) | public void setIp(String ip) {
method getPort (line 91) | @Override
method setPort (line 96) | public void setPort(Integer port) {
method getApp (line 100) | @Override
method setApp (line 105) | public void setApp(String app) {
method getId (line 109) | @Override
method setId (line 114) | @Override
method getLimitApp (line 119) | public String getLimitApp() {
method setLimitApp (line 123) | public void setLimitApp(String limitApp) {
method getResource (line 127) | public String getResource() {
method setResource (line 131) | public void setResource(String resource) {
method getGrade (line 135) | public Integer getGrade() {
method setGrade (line 139) | public void setGrade(Integer grade) {
method getCount (line 143) | public Double getCount() {
method setCount (line 147) | public void setCount(Double count) {
method getStrategy (line 151) | public Integer getStrategy() {
method setStrategy (line 155) | public void setStrategy(Integer strategy) {
method getRefResource (line 159) | public String getRefResource() {
method setRefResource (line 163) | public void setRefResource(String refResource) {
method getControlBehavior (line 167) | public Integer getControlBehavior() {
method setControlBehavior (line 171) | public void setControlBehavior(Integer controlBehavior) {
method getWarmUpPeriodSec (line 175) | public Integer getWarmUpPeriodSec() {
method setWarmUpPeriodSec (line 179) | public void setWarmUpPeriodSec(Integer warmUpPeriodSec) {
method getMaxQueueingTimeMs (line 183) | public Integer getMaxQueueingTimeMs() {
method setMaxQueueingTimeMs (line 187) | public void setMaxQueueingTimeMs(Integer maxQueueingTimeMs) {
method isClusterMode (line 191) | public boolean isClusterMode() {
method setClusterMode (line 195) | public FlowRuleEntity setClusterMode(boolean clusterMode) {
method getClusterConfig (line 200) | public ClusterFlowConfig getClusterConfig() {
method setClusterConfig (line 204) | public FlowRuleEntity setClusterConfig(ClusterFlowConfig clusterConfig) {
method getGmtCreate (line 209) | @Override
method setGmtCreate (line 214) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 218) | public Date getGmtModified() {
method setGmtModified (line 222) | public void setGmtModified(Date gmtModified) {
method toRule (line 226) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/ParamFlowRuleEntity.java
class ParamFlowRuleEntity (line 32) | public class ParamFlowRuleEntity extends AbstractRuleEntity<ParamFlowRul...
method ParamFlowRuleEntity (line 34) | public ParamFlowRuleEntity() {}
method ParamFlowRuleEntity (line 36) | public ParamFlowRuleEntity(ParamFlowRule rule) {
method fromAuthorityRule (line 41) | public static ParamFlowRuleEntity fromAuthorityRule(String app, String...
method getLimitApp (line 49) | @JsonIgnore
method getResource (line 54) | @JsonIgnore
method getGrade (line 59) | @JsonIgnore
method getParamIdx (line 64) | @JsonIgnore
method getCount (line 69) | @JsonIgnore
method getParamFlowItemList (line 74) | @JsonIgnore
method isClusterMode (line 79) | @JsonIgnore
method getClusterConfig (line 84) | @JsonIgnore
method toRule (line 89) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/RuleEntity.java
type RuleEntity (line 25) | public interface RuleEntity {
method getId (line 27) | Long getId();
method setId (line 29) | void setId(Long id);
method getApp (line 31) | String getApp();
method getIp (line 33) | String getIp();
method getPort (line 35) | Integer getPort();
method getGmtCreate (line 37) | Date getGmtCreate();
method toRule (line 39) | Rule toRule();
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/SystemRuleEntity.java
class SystemRuleEntity (line 25) | public class SystemRuleEntity implements RuleEntity {
method fromSystemRule (line 40) | public static SystemRuleEntity fromSystemRule(String app, String ip, I...
method getIp (line 52) | @Override
method setIp (line 57) | public void setIp(String ip) {
method getPort (line 61) | @Override
method setPort (line 66) | public void setPort(Integer port) {
method getId (line 70) | @Override
method setId (line 75) | @Override
method getApp (line 80) | @Override
method setApp (line 85) | public void setApp(String app) {
method getAvgLoad (line 89) | public Double getAvgLoad() {
method setAvgLoad (line 93) | public void setAvgLoad(Double avgLoad) {
method getAvgRt (line 97) | public Long getAvgRt() {
method setAvgRt (line 101) | public void setAvgRt(Long avgRt) {
method getMaxThread (line 105) | public Long getMaxThread() {
method setMaxThread (line 109) | public void setMaxThread(Long maxThread) {
method getQps (line 113) | public Double getQps() {
method setQps (line 117) | public void setQps(Double qps) {
method getGmtCreate (line 121) | @Override
method setGmtCreate (line 126) | public void setGmtCreate(Date gmtCreate) {
method getGmtModified (line 130) | public Date getGmtModified() {
method setGmtModified (line 134) | public void setGmtModified(Date gmtModified) {
method toRule (line 138) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java
class AppInfo (line 27) | public class AppInfo {
method AppInfo (line 33) | public AppInfo() {}
method AppInfo (line 35) | public AppInfo(String app) {
method getApp (line 39) | public String getApp() {
method setApp (line 43) | public void setApp(String app) {
method getMachines (line 52) | public Set<MachineInfo> getMachines() {
method toString (line 56) | @Override
method addMachine (line 61) | public boolean addMachine(MachineInfo machineInfo) {
method removeMachine (line 66) | public synchronized boolean removeMachine(String ip, int port) {
method getMachine (line 78) | public Optional<MachineInfo> getMachine(String ip, int port) {
method heartbeatJudge (line 84) | private boolean heartbeatJudge(final int threshold) {
method isShown (line 108) | public boolean isShown() {
method isDead (line 117) | public boolean isDead() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppManagement.java
class AppManagement (line 27) | @Component
method init (line 35) | @PostConstruct
method getBriefApps (line 40) | @Override
method addMachine (line 45) | @Override
method removeMachine (line 50) | @Override
method getAppNames (line 55) | @Override
method getDetailApp (line 60) | @Override
method removeApp (line 65) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineDiscovery.java
type MachineDiscovery (line 21) | public interface MachineDiscovery {
method getAppNames (line 25) | List<String> getAppNames();
method getBriefApps (line 27) | Set<AppInfo> getBriefApps();
method getDetailApp (line 29) | AppInfo getDetailApp(String app);
method removeApp (line 37) | void removeApp(String app);
method addMachine (line 39) | long addMachine(MachineInfo machineInfo);
method removeMachine (line 50) | boolean removeMachine(String app, String ip, int port);
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfo.java
class MachineInfo (line 23) | public class MachineInfo implements Comparable<MachineInfo> {
method of (line 37) | public static MachineInfo of(String app, String ip, Integer port) {
method toHostPort (line 45) | public String toHostPort() {
method getPort (line 49) | public Integer getPort() {
method setPort (line 53) | public void setPort(Integer port) {
method getApp (line 57) | public String getApp() {
method setApp (line 61) | public void setApp(String app) {
method getHostname (line 65) | public String getHostname() {
method setHostname (line 69) | public void setHostname(String hostname) {
method getIp (line 73) | public String getIp() {
method setIp (line 77) | public void setIp(String ip) {
method getHeartbeatVersion (line 81) | public long getHeartbeatVersion() {
method setHeartbeatVersion (line 85) | public void setHeartbeatVersion(long heartbeatVersion) {
method getVersion (line 89) | public String getVersion() {
method setVersion (line 93) | public MachineInfo setVersion(String version) {
method isHealthy (line 98) | public boolean isHealthy() {
method isDead (line 108) | public boolean isDead() {
method getLastHeartbeat (line 116) | public long getLastHeartbeat() {
method setLastHeartbeat (line 120) | public void setLastHeartbeat(long lastHeartbeat) {
method compareTo (line 124) | @Override
method toString (line 138) | @Override
method equals (line 152) | @Override
method hashCode (line 162) | @Override
method toLogString (line 172) | public String toLogString() {
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/SimpleMachineDiscovery.java
class SimpleMachineDiscovery (line 32) | @Component
method addMachine (line 37) | @Override
method removeMachine (line 45) | @Override
method getAppNames (line 55) | @Override
method getDetailApp (line 60) | @Override
method getBriefApps (line 66) | @Override
method removeApp (line 71) | @Override
FILE: 4-Finchley/alibaba-sentinel-dashboard-nacos/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/ResourceTreeNode.java
class ResourceTreeNode (line 28) | public class ResourceTreeNode {
method fromNodeVoList (line 49) | public static Resou
Condensed preview — 710 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,892K chars).
[
{
"path": ".gitignore",
"chars": 245,
"preview": "*.class\n\n# Package Files #\n*.jar\n*.war\n*.ear\n\n# idea Files\n.idea\n*.iml\ntarget\n\n# log Files\n*.log\n\n2-Dalston版教程示例/trace-2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/compute-service/pom.xml",
"chars": 1656,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java",
"chars": 454,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/java/com/didispace/web/ComputeController.java",
"chars": 1044,
"preview": "package com.didispace.web;\n\nimport org.apache.log4j.Logger;\nimport org.springframework.beans.factory.annotation.Autowire"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/compute-service/src/main/resources/application.properties",
"chars": 127,
"preview": "spring.application.name=compute-service\n\nserver.port=2222\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eu"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/compute-service/src/test/java/com/didispace/ApplicationTests.java",
"chars": 1420,
"preview": "package com.didispace;\n\nimport com.didispace.web.ComputeController;\nimport org.junit.Before;\nimport org.junit.Test;\nimpo"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/eureka-server/pom.xml",
"chars": 1661,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/eureka-server/src/main/java/com/didispace/Application.java",
"chars": 425,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-1/eureka-server/src/main/resources/application.properties",
"chars": 206,
"preview": "server.port=1111\n#eureka.instance.hostname=localhost\n\neureka.client.register-with-eureka=false\neureka.client.fetch-regis"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-feign/pom.xml",
"chars": 1915,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/FeignApplication.java",
"chars": 487,
"preview": "package com.didispace;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/service/ComputeClient.java",
"chars": 504,
"preview": "package com.didispace.service;\n\nimport org.springframework.cloud.netflix.feign.FeignClient;\nimport org.springframework.w"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/java/com/didispace/web/ConsumerController.java",
"chars": 565,
"preview": "package com.didispace.web;\n\nimport com.didispace.service.ComputeClient;\nimport org.springframework.beans.factory.annotat"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-feign/src/main/resources/application.properties",
"chars": 125,
"preview": "spring.application.name=feign-consumer\nserver.port=3333\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eure"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/pom.xml",
"chars": 1918,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/java/com/didispace/RibbonApplication.java",
"chars": 659,
"preview": "package com.didispace;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/java/com/didispace/web/ConsumerController.java",
"chars": 635,
"preview": "package com.didispace.web;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.we"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-2/eureka-ribbon/src/main/resources/application.properties",
"chars": 126,
"preview": "spring.application.name=ribbon-consumer\nserver.port=3333\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eur"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/compute-service/pom.xml",
"chars": 1656,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java",
"chars": 454,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/java/com/didispace/web/ComputeController.java",
"chars": 1044,
"preview": "package com.didispace.web;\n\nimport org.apache.log4j.Logger;\nimport org.springframework.beans.factory.annotation.Autowire"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/compute-service/src/main/resources/application.properties",
"chars": 127,
"preview": "spring.application.name=compute-service\n\nserver.port=2222\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eu"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/compute-service/src/test/java/com/didispace/ApplicationTests.java",
"chars": 1420,
"preview": "package com.didispace;\n\nimport com.didispace.web.ComputeController;\nimport org.junit.Before;\nimport org.junit.Test;\nimpo"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-feign/pom.xml",
"chars": 2079,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/FeignApplication.java",
"chars": 487,
"preview": "package com.didispace;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/service/ComputeClient.java",
"chars": 551,
"preview": "package com.didispace.service;\n\nimport org.springframework.cloud.netflix.feign.FeignClient;\nimport org.springframework.w"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/service/ComputeClientHystrix.java",
"chars": 361,
"preview": "package com.didispace.service;\n\nimport org.springframework.stereotype.Component;\nimport org.springframework.web.bind.ann"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-feign/src/main/java/com/didispace/web/ConsumerController.java",
"chars": 565,
"preview": "package com.didispace.web;\n\nimport com.didispace.service.ComputeClient;\nimport org.springframework.beans.factory.annotat"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/pom.xml",
"chars": 2054,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/RibbonApplication.java",
"chars": 758,
"preview": "package com.didispace;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/service/ComputeService.java",
"chars": 632,
"preview": "package com.didispace.service;\n\nimport com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;\nimport org.spring"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-ribbon/src/main/java/com/didispace/web/ConsumerController.java",
"chars": 723,
"preview": "package com.didispace.web;\n\nimport com.didispace.service.ComputeService;\nimport com.netflix.hystrix.contrib.javanica.ann"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-server/pom.xml",
"chars": 1661,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-server/src/main/java/com/didispace/Application.java",
"chars": 425,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-3/eureka-server/src/main/resources/application.properties",
"chars": 206,
"preview": "server.port=1111\n#eureka.instance.hostname=localhost\n\neureka.client.register-with-eureka=false\neureka.client.fetch-regis"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-client/pom.xml",
"chars": 1785,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/java/com/didispace/Application.java",
"chars": 330,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/java/com/didispace/web/TestController.java",
"chars": 610,
"preview": "package com.didispace.web;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.cloud."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-client/src/main/resources/bootstrap.properties",
"chars": 136,
"preview": "spring.application.name=didispace\nspring.cloud.config.profile=dev\nspring.cloud.config.uri=http://localhost:7001/\n\nserver"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace-dev.properties",
"chars": 16,
"preview": "from=git-dev-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace-prod.properties",
"chars": 17,
"preview": "from=git-prod-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace-test.properties",
"chars": 17,
"preview": "from=git-test-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-repo/didispace.properties",
"chars": 21,
"preview": "from=git-default-1.0\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/pom.xml",
"chars": 1653,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/java/com/didispace/Application.java",
"chars": 417,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/application.properties",
"chars": 355,
"preview": "spring.application.name=config-server\nserver.port=7001\n\n# git\nspring.cloud.config.server.git.uri=http://git.oschina.net/"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace-dev.properties",
"chars": 14,
"preview": "from=local-dev"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace-prod.properties",
"chars": 15,
"preview": "from=local-prod"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace-test.properties",
"chars": 15,
"preview": "from=local-test"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-4/config-server/src/main/resources/didispace.properties",
"chars": 10,
"preview": "from=local"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/api-gateway/pom.xml",
"chars": 1629,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/java/com/didispace/Application.java",
"chars": 578,
"preview": "package com.didispace;\n\nimport com.didispace.filter.AccessFilter;\nimport org.springframework.boot.builder.SpringApplicat"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/java/com/didispace/filter/AccessFilter.java",
"chars": 1180,
"preview": "package com.didispace.filter;\n\nimport com.netflix.zuul.ZuulFilter;\nimport com.netflix.zuul.context.RequestContext;\nimpor"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/api-gateway/src/main/resources/application.properties",
"chars": 393,
"preview": "spring.application.name=api-gateway\nserver.port=5555\n\n# routes to serviceId\nzuul.routes.api-a.path=/api-a/**\nzuul.routes"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/eureka-server/pom.xml",
"chars": 1661,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/eureka-server/src/main/java/com/didispace/Application.java",
"chars": 425,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/eureka-server/src/main/resources/application.properties",
"chars": 206,
"preview": "server.port=1111\n#eureka.instance.hostname=localhost\n\neureka.client.register-with-eureka=false\neureka.client.fetch-regis"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-A/pom.xml",
"chars": 1644,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/java/com/didispace/ComputeServiceApplication.java",
"chars": 454,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/java/com/didispace/web/ComputeController.java",
"chars": 1074,
"preview": "package com.didispace.web;\n\nimport org.apache.log4j.Logger;\nimport org.springframework.beans.factory.annotation.Autowire"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-A/src/main/resources/application.properties",
"chars": 121,
"preview": "spring.application.name=service-A\n\nserver.port=2222\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-A/src/test/java/com/didispace/ApplicationTests.java",
"chars": 1243,
"preview": "package com.didispace;\n\nimport com.didispace.web.ComputeController;\nimport org.junit.Before;\nimport org.junit.Test;\nimpo"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-B/pom.xml",
"chars": 1644,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/java/com/didispace/ComputeServiceApplication.java",
"chars": 454,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/java/com/didispace/web/ComputeController.java",
"chars": 1074,
"preview": "package com.didispace.web;\n\nimport org.apache.log4j.Logger;\nimport org.springframework.beans.factory.annotation.Autowire"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-B/src/main/resources/application.properties",
"chars": 121,
"preview": "spring.application.name=service-B\n\nserver.port=3333\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-5/service-B/src/test/java/com/didispace/ApplicationTests.java",
"chars": 901,
"preview": "package com.didispace;\n\nimport com.didispace.web.ComputeController;\nimport org.junit.Before;\nimport org.junit.Test;\nimpo"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/compute-service/pom.xml",
"chars": 1656,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/java/com/didispace/ComputeServiceApplication.java",
"chars": 454,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/java/com/didispace/web/ComputeController.java",
"chars": 1044,
"preview": "package com.didispace.web;\n\nimport org.apache.log4j.Logger;\nimport org.springframework.beans.factory.annotation.Autowire"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/compute-service/src/main/resources/application.properties",
"chars": 147,
"preview": "spring.application.name=compute-service\n\nserver.port=2222\n\neureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/compute-service/src/test/java/com/didispace/ApplicationTests.java",
"chars": 1420,
"preview": "package com.didispace;\n\nimport com.didispace.web.ComputeController;\nimport org.junit.Before;\nimport org.junit.Test;\nimpo"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/eureka-server/pom.xml",
"chars": 1500,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/java/com/didispace/Application.java",
"chars": 425,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/resources/application-peer1.properties",
"chars": 149,
"preview": "spring.application.name=eureka-server\nserver.port=1111\neureka.instance.hostname=peer1\n\neureka.client.serviceUrl.defaultZ"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-6/eureka-server/src/main/resources/application-peer2.properties",
"chars": 149,
"preview": "spring.application.name=eureka-server\nserver.port=1112\neureka.instance.hostname=peer2\n\neureka.client.serviceUrl.defaultZ"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/pom.xml",
"chars": 2294,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/java/com/didispace/Application.java",
"chars": 426,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/java/com/didispace/web/TestController.java",
"chars": 616,
"preview": "package com.didispace.web;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.cloud."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka/src/main/resources/bootstrap.properties",
"chars": 410,
"preview": "spring.application.name=didispace\nserver.port=7002\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/\n\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/pom.xml",
"chars": 2307,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/java/com/didispace/Application.java",
"chars": 426,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/java/com/didispace/web/TestController.java",
"chars": 616,
"preview": "package com.didispace.web;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.cloud."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-client-eureka-kafka/src/main/resources/bootstrap.properties",
"chars": 441,
"preview": "spring.application.name=didispace\nserver.port=7002\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/\n\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace-dev.properties",
"chars": 16,
"preview": "from=git-dev-3.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace-prod.properties",
"chars": 17,
"preview": "from=git-prod-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace-test.properties",
"chars": 17,
"preview": "from=git-test-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-repo/didispace.properties",
"chars": 21,
"preview": "from=git-default-1.0\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/pom.xml",
"chars": 1778,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/java/com/didispace/Application.java",
"chars": 513,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/application.properties",
"chars": 386,
"preview": "spring.application.name=config-server\nserver.port=7001\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eurek"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace-dev.properties",
"chars": 14,
"preview": "from=local-dev"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace-prod.properties",
"chars": 15,
"preview": "from=local-prod"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace-test.properties",
"chars": 15,
"preview": "from=local-test"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka/src/main/resources/didispace.properties",
"chars": 10,
"preview": "from=local"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/pom.xml",
"chars": 1791,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/java/com/didispace/Application.java",
"chars": 513,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/application.properties",
"chars": 506,
"preview": "spring.application.name=config-server\nserver.port=7001\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eurek"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace-dev.properties",
"chars": 14,
"preview": "from=local-dev"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace-prod.properties",
"chars": 15,
"preview": "from=local-prod"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace-test.properties",
"chars": 15,
"preview": "from=local-test"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-7/config-server-eureka-kafka/src/main/resources/didispace.properties",
"chars": 10,
"preview": "from=local"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/pom.xml",
"chars": 2022,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/java/com/didispace/Application.java",
"chars": 426,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/java/com/didispace/web/TestController.java",
"chars": 616,
"preview": "package com.didispace.web;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.cloud."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-client-eureka/src/main/resources/bootstrap.properties",
"chars": 283,
"preview": "spring.application.name=didispace\nserver.port=7002\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/\n\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace-dev.properties",
"chars": 16,
"preview": "from=git-dev-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace-prod.properties",
"chars": 17,
"preview": "from=git-prod-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace-test.properties",
"chars": 17,
"preview": "from=git-test-1.0"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-repo/didispace.properties",
"chars": 21,
"preview": "from=git-default-1.0\n"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/pom.xml",
"chars": 1641,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/java/com/didispace/Application.java",
"chars": 513,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/application.properties",
"chars": 394,
"preview": "spring.application.name=config-server\nserver.port=7001\n\neureka.client.serviceUrl.defaultZone=http://localhost:1111/eurek"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace-dev.properties",
"chars": 14,
"preview": "from=local-dev"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace-prod.properties",
"chars": 15,
"preview": "from=local-prod"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace-test.properties",
"chars": 15,
"preview": "from=local-test"
},
{
"path": "1-Brixton版教程示例/Chapter1-1-8/config-server-eureka/src/main/resources/didispace.properties",
"chars": 10,
"preview": "from=local"
},
{
"path": "1-Brixton版教程示例/README.md",
"chars": 2388,
"preview": "# Spring Cloud教程\n\n本项目内容为Spring Cloud教程的程序样例。如您觉得该项目对您有用,欢迎点击右上方的**Star**按钮,给予支持!!\n\n- 我的博客:http://blog.didispace.com\n- **"
},
{
"path": "2-Dalston版教程示例/README.md",
"chars": 3407,
"preview": "# Spring Cloud教程\n\n本项目内容为Spring Cloud教程的程序样例。如您觉得该项目对您有用,欢迎点击右上方的**Star**按钮,给予支持!!\n\n- 我的博客:http://blog.didispace.com\n- **"
},
{
"path": "2-Dalston版教程示例/api-gateway/pom.xml",
"chars": 1450,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/api-gateway/src/main/java/com/didispace/Application.java",
"chars": 406,
"preview": "package com.didispace;\n\nimport org.springframework.boot.builder.SpringApplicationBuilder;\nimport org.springframework.clo"
},
{
"path": "2-Dalston版教程示例/api-gateway/src/main/resources/application.yaml",
"chars": 327,
"preview": "spring:\n application:\n name: api-gateway\n\nserver:\n port: 1101\n\nzuul:\n routes:\n# single-instance\n api-a:\n "
},
{
"path": "2-Dalston版教程示例/api-gateway-with-eureka/pom.xml",
"chars": 1609,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/api-gateway-with-eureka/src/main/java/com/didispace/AccessFilter.java",
"chars": 1160,
"preview": "package com.didispace;\n\nimport com.netflix.zuul.ZuulFilter;\nimport com.netflix.zuul.context.RequestContext;\nimport org.s"
},
{
"path": "2-Dalston版教程示例/api-gateway-with-eureka/src/main/java/com/didispace/Application.java",
"chars": 406,
"preview": "package com.didispace;\n\nimport org.springframework.boot.builder.SpringApplicationBuilder;\nimport org.springframework.clo"
},
{
"path": "2-Dalston版教程示例/api-gateway-with-eureka/src/main/resources/application.yaml",
"chars": 232,
"preview": "spring:\n application:\n name: api-gateway\n\nserver:\n port: 1101\n\nzuul:\n routes:\n api-a:\n path: /api-a/**\n "
},
{
"path": "2-Dalston版教程示例/config-client/pom.xml",
"chars": 1720,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/config-client/src/main/java/com/didispace/Application.java",
"chars": 355,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/config-client/src/main/resources/bootstrap.yml",
"chars": 168,
"preview": "spring:\n application:\n name: config-client\n cloud:\n config:\n uri: http://localhost:1201/\n profile: def"
},
{
"path": "2-Dalston版教程示例/config-server-git/pom.xml",
"chars": 1626,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/config-server-git/src/main/java/com/didispace/Application.java",
"chars": 417,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/config-server-git/src/main/resources/application.yml",
"chars": 255,
"preview": "spring:\n application:\n name: config-server\n cloud:\n config:\n server:\n git:\n uri: http://git"
},
{
"path": "2-Dalston版教程示例/consul-client/pom.xml",
"chars": 1733,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/consul-client/src/main/java/com/didispace/Application.java",
"chars": 426,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/consul-client/src/main/java/com/didispace/DcController.java",
"chars": 697,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.cloud."
},
{
"path": "2-Dalston版教程示例/consul-client/src/main/resources/application.properties",
"chars": 121,
"preview": "spring.application.name=consul-client\nserver.port=2001\n\nspring.cloud.consul.host=localhost\nspring.cloud.consul.port=8500"
},
{
"path": "2-Dalston版教程示例/consul-consumer/pom.xml",
"chars": 2065,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/consul-consumer/src/main/java/com/didispace/Application.java",
"chars": 608,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/consul-consumer/src/main/java/com/didispace/DcController.java",
"chars": 967,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.cloud."
},
{
"path": "2-Dalston版教程示例/consul-consumer/src/main/resources/application.properties",
"chars": 168,
"preview": "spring.application.name=consul-consumer\nserver.port=2101\n\nspring.cloud.consul.host=localhost\nspring.cloud.consul.port=85"
},
{
"path": "2-Dalston版教程示例/eureka-client/pom.xml",
"chars": 1751,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-client/src/main/java/com/didispace/Application.java",
"chars": 426,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-client/src/main/java/com/didispace/DcController.java",
"chars": 697,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.cloud."
},
{
"path": "2-Dalston版教程示例/eureka-client/src/main/resources/application.properties",
"chars": 473,
"preview": "spring.application.name=eureka-client\nserver.port=2001\n\neureka.client.serviceUrl.defaultZone=http://localhost:1001/eurek"
},
{
"path": "2-Dalston版教程示例/eureka-consumer/pom.xml",
"chars": 2055,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-consumer/src/main/java/com/didispace/Application.java",
"chars": 608,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-consumer/src/main/java/com/didispace/DcController.java",
"chars": 967,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.cloud."
},
{
"path": "2-Dalston版教程示例/eureka-consumer/src/main/resources/application.properties",
"chars": 170,
"preview": "spring.application.name=eureka-consumer\nserver.port=2101\n\neureka.client.serviceUrl.defaultZone=http://localhost:1001/eur"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign/pom.xml",
"chars": 2229,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/Application.java",
"chars": 513,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/DcClient.java",
"chars": 332,
"preview": "package com.didispace;\n\nimport org.springframework.cloud.netflix.feign.FeignClient;\nimport org.springframework.web.bind."
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign/src/main/java/com/didispace/DcController.java",
"chars": 473,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bi"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign/src/main/resources/application.properties",
"chars": 170,
"preview": "spring.application.name=eureka-consumer\nserver.port=2101\n\neureka.client.serviceUrl.defaultZone=http://localhost:1001/eur"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign-hystrix/pom.xml",
"chars": 2411,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/Application.java",
"chars": 513,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcClient.java",
"chars": 374,
"preview": "package com.didispace;\n\nimport org.springframework.cloud.netflix.feign.FeignClient;\nimport org.springframework.web.bind."
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcClientFallback.java",
"chars": 298,
"preview": "package com.didispace;\n\nimport org.springframework.stereotype.Component;\n\n/**\n * @author 翟永超\n * @create 2017/6/24.\n * @b"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/java/com/didispace/DcController.java",
"chars": 473,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bi"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-feign-hystrix/src/main/resources/application.properties",
"chars": 198,
"preview": "spring.application.name=eureka-consumer\nserver.port=2101\n\neureka.client.serviceUrl.defaultZone=http://localhost:1001/eur"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon/pom.xml",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon/src/main/java/com/didispace/Application.java",
"chars": 690,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon/src/main/java/com/didispace/DcController.java",
"chars": 580,
"preview": "package com.didispace;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bi"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon/src/main/resources/application.properties",
"chars": 170,
"preview": "spring.application.name=eureka-consumer\nserver.port=2101\n\neureka.client.serviceUrl.defaultZone=http://localhost:1001/eur"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/pom.xml",
"chars": 2414,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/java/com/didispace/Application.java",
"chars": 853,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/java/com/didispace/DcController.java",
"chars": 1131,
"preview": "package com.didispace;\n\nimport com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;\nimport com.netflix.ribbon"
},
{
"path": "2-Dalston版教程示例/eureka-consumer-ribbon-hystrix/src/main/resources/application.properties",
"chars": 185,
"preview": "spring.application.name=eureka-consumer-ribbon-hystrix\nserver.port=2101\n\neureka.client.serviceUrl.defaultZone=http://loc"
},
{
"path": "2-Dalston版教程示例/eureka-feign-api/pom.xml",
"chars": 1285,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-feign-api/src/main/java/com/didispace/api/HelloService.java",
"chars": 351,
"preview": "package com.didispace.api;\n\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bi"
},
{
"path": "2-Dalston版教程示例/eureka-feign-client/pom.xml",
"chars": 1738,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-feign-client/src/main/java/com/didispace/api/impl/Application.java",
"chars": 689,
"preview": "package com.didispace.api.impl;\n\nimport com.didispace.api.HelloService;\nimport org.springframework.boot.autoconfigure.Sp"
},
{
"path": "2-Dalston版教程示例/eureka-feign-client/src/main/resources/application.properties",
"chars": 135,
"preview": "spring.application.name=eureka-feign-client\nserver.port=2101\n\neureka.client.serviceUrl.defaultZone=http://eureka.didispa"
},
{
"path": "2-Dalston版教程示例/eureka-feign-consumer/pom.xml",
"chars": 1876,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-feign-consumer/src/main/java/com/didispace/api/consumer/Application.java",
"chars": 1120,
"preview": "package com.didispace.api.consumer;\n\nimport com.didispace.api.HelloService;\nimport org.springframework.beans.factory.ann"
},
{
"path": "2-Dalston版教程示例/eureka-feign-consumer/src/main/resources/application.properties",
"chars": 137,
"preview": "spring.application.name=eureka-feign-consumer\nserver.port=2102\n\neureka.client.serviceUrl.defaultZone=http://eureka.didis"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-client/pom.xml",
"chars": 2509,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-client/src/main/java/com/didispace/api/consumer/Application.java",
"chars": 539,
"preview": "package com.didispace.api.consumer;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.spr"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-client/src/main/java/com/didispace/api/consumer/UploadService.java",
"chars": 988,
"preview": "package com.didispace.api.consumer;\n\nimport feign.codec.Encoder;\nimport feign.form.spring.SpringFormEncoder;\nimport org."
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-client/src/main/resources/application.properties",
"chars": 143,
"preview": "spring.application.name=eureka-feign-upload-client\nserver.port=10002\n\neureka.client.serviceUrl.defaultZone=http://eureka"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-client/src/test/java/com/didispace/api/consumer/UploadTester.java",
"chars": 1607,
"preview": "package com.didispace.api.consumer;\n\nimport lombok.SneakyThrows;\nimport lombok.extern.slf4j.Slf4j;\nimport org.apache.com"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-client/upload.txt",
"chars": 7,
"preview": "aaa\nbbb"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-server/pom.xml",
"chars": 1746,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-server/src/main/java/com/didispace/api/consumer/Application.java",
"chars": 1112,
"preview": "package com.didispace.api.consumer;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.spr"
},
{
"path": "2-Dalston版教程示例/eureka-feign-upload-server/src/main/resources/application.properties",
"chars": 143,
"preview": "spring.application.name=eureka-feign-upload-server\nserver.port=10001\n\neureka.client.serviceUrl.defaultZone=http://eureka"
},
{
"path": "2-Dalston版教程示例/eureka-server/pom.xml",
"chars": 1627,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/eureka-server/src/main/java/com/didispace/Application.java",
"chars": 425,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/eureka-server/src/main/resources/application-peer1.properties",
"chars": 153,
"preview": "spring.application.name=eureka-server\nserver.port=1001\n\neureka.instance.hostname=peer1\neureka.client.serviceUrl.defaultZ"
},
{
"path": "2-Dalston版教程示例/eureka-server/src/main/resources/application-peer2.properties",
"chars": 153,
"preview": "spring.application.name=eureka-server\nserver.port=1002\n\neureka.instance.hostname=peer2\neureka.client.serviceUrl.defaultZ"
},
{
"path": "2-Dalston版教程示例/eureka-server/src/main/resources/application.properties",
"chars": 266,
"preview": "spring.application.name=eureka-server\nserver.port=1001\n\neureka.instance.hostname=localhost\neureka.client.register-with-e"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-consumer/pom.xml",
"chars": 2173,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-consumer/src/main/java/com/didispace/Application.java",
"chars": 769,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-consumer/src/main/java/com/didispace/UserService.java",
"chars": 1580,
"preview": "package com.didispace;\n\nimport com.netflix.hystrix.contrib.javanica.annotation.HystrixCollapser;\nimport com.netflix.hyst"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-consumer/src/main/resources/application.properties",
"chars": 138,
"preview": "spring.application.name=hystrix-collapser-consumer\nserver.port=2002\n\neureka.client.serviceUrl.defaultZone=http://localho"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-consumer/src/test/java/CollapserTest.java",
"chars": 1259,
"preview": "import com.didispace.Application;\nimport com.didispace.UserService;\nimport lombok.extern.slf4j.Slf4j;\nimport org.junit.A"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-provider/pom.xml",
"chars": 1883,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-provider/src/main/java/com/didispace/Application.java",
"chars": 426,
"preview": "package com.didispace;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework."
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-provider/src/main/java/com/didispace/UserController.java",
"chars": 1228,
"preview": "package com.didispace;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.web.bind.annotation.*;\n\nimport java"
},
{
"path": "2-Dalston版教程示例/hystrix-collapser-provider/src/main/resources/application.properties",
"chars": 138,
"preview": "spring.application.name=hystrix-collapser-provider\nserver.port=2001\n\neureka.client.serviceUrl.defaultZone=http://localho"
},
{
"path": "2-Dalston版教程示例/hystrix-dashboard/pom.xml",
"chars": 1517,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "2-Dalston版教程示例/hystrix-dashboard/src/main/java/com/didispace/HystrixDashboardApplication.java",
"chars": 429,
"preview": "package com.didispace;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.cloud.client.Sprin"
}
]
// ... and 510 more files (download for full content)
About this extraction
This page contains the full source code of the dyc87112/SpringCloud-Learning GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 710 files (2.6 MB), approximately 731.3k tokens, and a symbol index with 3280 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.