Spring Cloud
Table of Contents
- 1. Features
- I. Cloud Native Applications
-
- 2. Spring Cloud Context: Application Context Services
-
- 2.1. The Bootstrap Application Context
- 2.2. Application Context Hierarchies
- 2.3. Changing the Location of Bootstrap Properties
- 2.4. Overriding the Values of Remote Properties
- 2.5. Customizing the Bootstrap Configuration
- 2.6. Customizing the Bootstrap Property Sources
- 2.7. Logging Configuration
- 2.8. Environment Changes
- 2.9. Refresh Scope
- 2.10. Encryption and Decryption
- 2.11. Endpoints
- 3. Spring Cloud Commons: Common Abstractions
-
- 3.1. @EnableDiscoveryClient
- 3.2. ServiceRegistry
- 3.3. Spring RestTemplate as a Load Balancer Client
- 3.4. Spring WebClient as a Load Balancer Client
- 3.5. Multiple RestTemplate objects
- 3.6. Spring WebFlux WebClient as a Load Balancer Client
- 3.7. Ignore Network Interfaces
- 3.8. HTTP Client Factories
- 3.9. Enabled Features
- 3.10. Spring Cloud Compatibility Verification
- II. Spring Cloud Config
-
- 4. Quick Start
- 5. Spring Cloud Config Server
-
- 5.1. Environment Repository
-
- 5.1.1. Git Backend
-
- Skipping SSL Certificate Validation
- Setting HTTP Connection Timeout
- Placeholders in Git URI
- Pattern Matching and Multiple Repositories
- Authentication
- Authentication with AWS CodeCommit
- Git SSH configuration using properties
- Placeholders in Git Search Paths
- Force pull in Git Repositories
- Deleting untracked branches in Git Repositories
- Git Refresh Rate
- 5.1.2. Version Control Backend Filesystem Use
- 5.1.3. File System Backend
- 5.1.4. Vault Backend
- 5.1.5. Accessing Backends Through a Proxy
- 5.1.6. Sharing Configuration With All Applications
- 5.1.7. JDBC Backend
- 5.1.8. CredHub Backend
- 5.1.9. Composite Environment Repositories
- 5.1.10. Property Overrides
- 5.2. Health Indicator
- 5.3. Security
- 5.4. Encryption and Decryption
- 5.5. Key Management
- 5.6. Creating a Key Store for Testing
- 5.7. Using Multiple Keys and Key Rotation
- 5.8. Serving Encrypted Properties
- 6. Serving Alternative Formats
- 7. Serving Plain Text
- 8. Embedding the Config Server
- 9. Push Notifications and Spring Cloud Bus
- 10. Spring Cloud Config Client
- III. Spring Cloud Netflix
-
- 11. Service Discovery: Eureka Clients
-
- 11.1. How to Include Eureka Client
- 11.2. Registering with Eureka
- 11.3. Authenticating with the Eureka Server
- 11.4. Status Page and Health Indicator
- 11.5. Registering a Secure Application
- 11.6. Eureka’s Health Checks
- 11.7. Eureka Metadata for Instances and Clients
- 11.8. Using the EurekaClient
- 11.9. Alternatives to the Native Netflix EurekaClient
- 11.10. Why Is It so Slow to Register a Service?
- 11.11. Zones
- 12. Service Discovery: Eureka Server
- 13. Circuit Breaker: Hystrix Clients
- 14. Circuit Breaker: Hystrix Dashboard
- 15. Hystrix Timeouts And Ribbon Clients
- 16. Client Side Load Balancer: Ribbon
-
- 16.1. How to Include Ribbon
- 16.2. Customizing the Ribbon Client
- 16.3. Customizing the Default for All Ribbon Clients
- 16.4. Customizing the Ribbon Client by Setting Properties
- 16.5. Using Ribbon with Eureka
- 16.6. Example: How to Use Ribbon Without Eureka
- 16.7. Example: Disable Eureka Use in Ribbon
- 16.8. Using the Ribbon API Directly
- 16.9. Caching of Ribbon Configuration
- 16.10. How to Configure Hystrix Thread Pools
-
16.11. How to Provide a Key to Ribbon’s
IRule
- 17. External Configuration: Archaius
- 18. Router and Filter: Zuul
-
- 18.1. How to Include Zuul
- 18.2. Embedded Zuul Reverse Proxy
- 18.3. Zuul Http Client
- 18.4. Cookies and Sensitive Headers
- 18.5. Ignored Headers
- 18.6. Management Endpoints
- 18.7. Strangulation Patterns and Local Forwards
- 18.8. Uploading Files through Zuul
- 18.9. Query String Encoding
- 18.10. Request URI Encoding
- 18.11. Plain Embedded Zuul
- 18.12. Disable Zuul Filters
- 18.13. Providing Hystrix Fallbacks For Routes
- 18.14. Zuul Timeouts
-
18.15. Rewriting the
Location
header - 18.16. Enabling Cross Origin Requests
- 18.17. Metrics
- 18.18. Zuul Developer Guide
- 19. Polyglot support with Sidecar
- 20. Retrying Failed Requests
- 21. HTTP Clients
- 22. Modules In Maintenance Mode
- IV. Spring Cloud OpenFeign
-
- 23. Declarative REST Client: Feign
-
- 23.1. How to Include Feign
- 23.2. Overriding Feign Defaults
- 23.3. Creating Feign Clients Manually
- 23.4. Feign Hystrix Support
- 23.5. Feign Hystrix Fallbacks
-
23.6. Feign and
@Primary
- 23.7. Feign Inheritance Support
- 23.8. Feign request/response compression
- 23.9. Feign logging
- 23.10. Feign @QueryMap support
- V. Spring Cloud Stream
-
- 24. A Brief History of Spring’s Data Integration Journey
- 25. Quick Start
- 26. What’s New in 2.0?
- 27. Introducing Spring Cloud Stream
- 28. Main Concepts
- 29. Programming Model
- 30. Binders
- 31. Configuration Options
- 32. Content Type Negotiation
- 33. Schema Evolution Support
-
- 33.1. Schema Registry Client
- 33.2. Avro Schema Registry Client Message Converters
- 33.3. Apache Avro Message Converters
- 33.4. Converters with Schema Support
- 33.5. Schema Registry Server
- 33.6. Schema Registration and Resolution
- 34. Inter-Application Communication
- 35. Testing
- 36. Health Indicator
- 37. Metrics Emitter
- 38. Samples
- VI. Binder Implementations
-
- 39. Apache Kafka Binder
- 40. Apache Kafka Streams Binder
-
- 40.1. Usage
- 40.2. Kafka Streams Binder Overview
- 40.3. Configuration Options
- 40.4. Multiple Input Bindings
- 40.5. Multiple Output Bindings (aka Branching)
- 40.6. Message Conversion
- 40.7. Error Handling
- 40.8. State Store
- 40.9. Interactive Queries
- 40.10. Accessing the underlying KafkaStreams object
- 40.11. State Cleanup
- 41. RabbitMQ Binder
- VII. Spring Cloud Bus
- VIII. Spring Cloud Sleuth
-
- 50. Introduction
- 51. Additional Resources
- 52. Features
- 53. Sampling
- 54. Propagation
- 55. Current Tracing Component
- 56. Current Span
- 57. Instrumentation
- 58. Span lifecycle
- 59. Naming spans
- 60. Managing Spans with Annotations
- 61. Customizations
- 62. Sending Spans to Zipkin
- 63. Zipkin Stream Span Consumer
- 64. Integrations
- 65. Running examples
- IX. Spring Cloud Consul
-
- 66. Install Consul
- 67. Consul Agent
- 68. Service Discovery with Consul
- 69. Distributed Configuration with Consul
- 70. Consul Retry
- 71. Spring Cloud Bus with Consul
- 72. Circuit Breaker with Hystrix
- 73. Hystrix metrics aggregation with Turbine and Consul
- X. Spring Cloud Zookeeper
-
- 74. Install Zookeeper
- 75. Service Discovery with Zookeeper
- 76. Using Spring Cloud Zookeeper with Spring Cloud Netflix Components
- 77. Spring Cloud Zookeeper and Service Registry
- 78. Zookeeper Dependencies
- 79. Spring Cloud Zookeeper Dependency Watcher
- 80. Distributed Configuration with Zookeeper
- XI. Spring Cloud Security
- XII. Spring Cloud for Cloud Foundry
- XIII. Spring Cloud Contract
-
- 86. Spring Cloud Contract
- 87. Spring Cloud Contract Verifier Introduction
- 88. Spring Cloud Contract FAQ
-
- 88.1. Why use Spring Cloud Contract Verifier and not X ?
- 88.2. I don’t want to write a contract in Groovy!
- 88.3. What is this value(consumer(), producer()) ?
- 88.4. How to do Stubs versioning?
- 88.5. Common repo with contracts
- 88.6. Do I need a Binary Storage? Can’t I use Git?
- 88.7. Can I use the Pact Broker?
- 88.8. How can I debug the request/response being sent by the generated tests client?
- 89. Spring Cloud Contract Verifier Setup
-
- 89.1. Gradle Project
-
- 89.1.1. Prerequisites
- 89.1.2. Add Gradle Plugin with Dependencies
- 89.1.3. Gradle and Rest Assured 2.0
- 89.1.4. Snapshot Versions for Gradle
- 89.1.5. Add stubs
- 89.1.6. Run the Plugin
- 89.1.7. Default Setup
- 89.1.8. Configure Plugin
- 89.1.9. Configuration Options
- 89.1.10. Single Base Class for All Tests
- 89.1.11. Different Base Classes for Contracts
- 89.1.12. Invoking Generated Tests
- 89.1.13. Pushing stubs to SCM
- 89.1.14. Spring Cloud Contract Verifier on the Consumer Side
- 89.2. Maven Project
-
- 89.2.1. Add maven plugin
- 89.2.2. Maven and Rest Assured 2.0
- 89.2.3. Snapshot versions for Maven
- 89.2.4. Add stubs
- 89.2.5. Run plugin
- 89.2.6. Configure plugin
- 89.2.7. Configuration Options
- 89.2.8. Single Base Class for All Tests
- 89.2.9. Different base classes for contracts
- 89.2.10. Invoking generated tests
- 89.2.11. Pushing stubs to SCM
- 89.2.12. Maven Plugin and STS
- 89.2.13. Maven Plugin with Spock Tests
- 89.3. Stubs and Transitive Dependencies
- 89.4. Scenarios
- 89.5. Docker Project
- 90. Spring Cloud Contract Verifier Messaging
- 91. Spring Cloud Contract Stub Runner
- 92. Stub Runner for Messaging
- 93. Contract DSL
-
- 93.1. Limitations
- 93.2. Common Top-Level elements
- 93.3. Request
- 93.4. Response
- 93.5. Dynamic properties
-
- 93.5.1. Dynamic properties inside the body
- 93.5.2. Regular expressions
- 93.5.3. Passing Optional Parameters
- 93.5.4. Executing Custom Methods on the Server Side
- 93.5.5. Referencing the Request from the Response
- 93.5.6. Registering Your Own WireMock Extension
- 93.5.7. Dynamic Properties in the Matchers Sections
- 93.6. JAX-RS Support
- 93.7. Async Support
- 93.8. Working with Context Paths
- 93.9. Working with WebFlux
- 93.10. XML Support for REST
- 93.11. Messaging Top-Level Elements
- 93.12. Multiple Contracts in One File
- 93.13. Generating Spring REST Docs snippets from the contracts
- 94. Customization
- 95. Using the Pluggable Architecture
- 96. Spring Cloud Contract WireMock
-
- 96.1. Registering Stubs Automatically
- 96.2. Using Files to Specify the Stub Bodies
- 96.3. Alternative: Using JUnit Rules
- 96.4. Relaxed SSL Validation for Rest Template
- 96.5. WireMock and Spring MVC Mocks
- 96.6. Customization of WireMock configuration
- 96.7. Generating Stubs using REST Docs
- 96.8. Generating Contracts by Using REST Docs
- 97. Migrations
- 98. Links
- XIV. Spring Cloud Vault
-
- 99. Quick Start
- 100. Client Side Usage
- 101. Authentication methods
- 102. GCP-GCE authentication
- 103. GCP-IAM authentication
- 104. Secret Backends
- 105. Database backends
-
106. Configure
PropertySourceLocator
behavior - 107. Service Registry Configuration
- 108. Vault Client Fail Fast
- 109. Vault Client SSL configuration
- 110. Lease lifecycle management (renewal and revocation)
- XV. Spring Cloud Gateway
-
- 111. How to Include Spring Cloud Gateway
- 112. Glossary
- 113. How It Works
- 114. Route Predicate Factories
-
- 114.1. After Route Predicate Factory
- 114.2. Before Route Predicate Factory
- 114.3. Between Route Predicate Factory
- 114.4. Cookie Route Predicate Factory
- 114.5. Header Route Predicate Factory
- 114.6. Host Route Predicate Factory
- 114.7. Method Route Predicate Factory
- 114.8. Path Route Predicate Factory
- 114.9. Query Route Predicate Factory
- 114.10. RemoteAddr Route Predicate Factory
- 115. GatewayFilter Factories
-
- 115.1. AddRequestHeader GatewayFilter Factory
- 115.2. AddRequestParameter GatewayFilter Factory
- 115.3. AddResponseHeader GatewayFilter Factory
- 115.4. Hystrix GatewayFilter Factory
- 115.5. FallbackHeaders GatewayFilter Factory
- 115.6. PrefixPath GatewayFilter Factory
- 115.7. PreserveHostHeader GatewayFilter Factory
- 115.8. RequestRateLimiter GatewayFilter Factory
- 115.9. RedirectTo GatewayFilter Factory
- 115.10. RemoveNonProxyHeaders GatewayFilter Factory
- 115.11. RemoveRequestHeader GatewayFilter Factory
- 115.12. RemoveResponseHeader GatewayFilter Factory
- 115.13. RewritePath GatewayFilter Factory
- 115.14. RewriteResponseHeader GatewayFilter Factory
- 115.15. SaveSession GatewayFilter Factory
- 115.16. SecureHeaders GatewayFilter Factory
- 115.17. SetPath GatewayFilter Factory
- 115.18. SetResponseHeader GatewayFilter Factory
- 115.19. SetStatus GatewayFilter Factory
- 115.20. StripPrefix GatewayFilter Factory
- 115.21. Retry GatewayFilter Factory
- 115.22. RequestSize GatewayFilter Factory
- 115.23. Modify Request Body GatewayFilter Factory
- 115.24. Modify Response Body GatewayFilter Factory
- 116. Global Filters
-
- 116.1. Combined Global Filter and GatewayFilter Ordering
- 116.2. Forward Routing Filter
- 116.3. LoadBalancerClient Filter
- 116.4. Netty Routing Filter
- 116.5. Netty Write Response Filter
- 116.6. RouteToRequestUrl Filter
- 116.7. Websocket Routing Filter
- 116.8. Gateway Metrics Filter
- 116.9. Making An Exchange As Routed
- 117. TLS / SSL
- 118. Configuration
- 119. Reactor Netty Access Logs
- 120. CORS Configuration
- 121. Actuator API
- 122. Developer Guide
- 123. Building a Simple Gateway Using Spring MVC or Webflux
- XVI. Spring Cloud Function
-
- 124. Introduction
- 125. Getting Started
- 126. Building and Running a Function
- 127. Function Catalog and Flexible Function Signatures
- 128. Standalone Web Applications
- 129. Standalone Streaming Applications
- 130. Deploying a Packaged Function
- 131. Functional Bean Definitions
- 132. Dynamic Compilation
- 133. Serverless Platform Adapters
- XVII. Spring Cloud Kubernetes
-
- 134. Why do you need Spring Cloud Kubernetes?
- 135. DiscoveryClient for Kubernetes
- 136. Kubernetes native service discovery
- 137. Kubernetes PropertySource implementations
- 138. Ribbon discovery in Kubernetes
- 139. Kubernetes Ecosystem Awareness
- 140. Pod Health Indicator
- 141. Leader Election
- 142. Security Configurations inside Kubernetes
- 143. Examples
- 144. Other Resources
- 145. Building
- 146. Contributing
- XVIII. Spring Cloud GCP
-
- 147. Introduction
- 148. Dependency Management
- 149. Getting started
- 150. Spring Cloud GCP Core
- 151. Google Cloud Pub/Sub
- 152. Spring Resources
- 153. Spring JDBC
- 154. Spring Integration
- 155. Spring Cloud Stream
- 156. Spring Cloud Sleuth
- 157. Stackdriver Logging
- 158. Spring Cloud Config
- 159. Spring Data Cloud Spanner
-
- 159.1. Configuration
- 159.2. Object Mapping
- 159.3. Spanner Operations & Template
- 159.4. Repositories
- 159.5. Query Methods
- 159.6. Database and Schema Admin
- 159.7. Sample
- 160. Spring Data Cloud Datastore