Spring Cloud

Features
原文链接:https://www.zybuluo.com/Seymour/note/1229242
I. Cloud Native Applications

  1. 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
  2. Spring Cloud Commons: Common Abstractions
    3.1. @EnableDiscoveryClient
    3.1.1. Health Indicator
    3.2. ServiceRegistry
    3.2.1. ServiceRegistry Auto-Registration
    3.2.2. Service Registry Actuator Endpoint
    3.3. Spring RestTemplate as a Load Balancer Client
    3.4. Spring WebClient as a Load Balancer Client
    3.4.1. Retrying Failed Requests
    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.9.1. Feature types
    3.9.2. Declaring features

II. Spring Cloud Config

  1. Quick Start
    4.1. Client Side Usage
  2. 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
    5.1.2. Version Control Backend Filesystem Use
    5.1.3. File System Backend
    5.1.4. Vault Backend
    Multiple Properties Sources
    5.1.5. Accessing Backends Through a Proxy
    5.1.6. Sharing Configuration With All Applications
    File Based Repositories
    Vault Server
    5.1.7. JDBC Backend
    5.1.8. Composite Environment Repositories
    Custom Composite Environment Repositories
    5.1.9. 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
  3. Serving Alternative Formats
  4. Serving Plain Text
  5. Embedding the Config Server
  6. Push Notifications and Spring Cloud Bus
  7. Spring Cloud Config Client
    10.1. Config First Bootstrap
    10.2. Discovery First Bootstrap
    10.3. Config Client Fail Fast
    10.4. Config Client Retry
    10.5. Locating Remote Configuration Resources
    10.6. Specifying Multiple Urls for the Config Server
    10.7. Configuring Read Timeouts
    10.8. Security
    10.8.1. Health Indicator
    10.8.2. Providing A Custom RestTemplate
    10.8.3. Vault
    10.9. Nested Keys In Vault

III. Spring Cloud Netflix

  1. 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.7.1. Using Eureka on Cloud Foundry
    11.7.2. Using Eureka on AWS
    11.7.3. Changing the Eureka Instance ID
    11.8. Using the EurekaClient
    11.8.1. EurekaClient without Jersey
    11.9. Alternatives to the Native Netflix EurekaClient
    11.10. Why Is It so Slow to Register a Service?
    11.11. Zones
  2. Service Discovery: Eureka Server
    12.1. How to Include Eureka Server
    12.2. How to Run a Eureka Server
    12.3. High Availability, Zones and Regions
    12.4. Standalone Mode
    12.5. Peer Awareness
    12.6. When to Prefer IP Address
    12.7. Securing The Eureka Server
  3. Circuit Breaker: Hystrix Clients
    13.1. How to Include Hystrix
    13.2. Propagating the Security Context or Using Spring Scopes
    13.3. Health Indicator
    13.4. Hystrix Metrics Stream
  4. Circuit Breaker: Hystrix Dashboard
  5. Hystrix Timeouts And Ribbon Clients
    15.1. How to Include the Hystrix Dashboard
    15.2. Turbine
    15.2.1. Clusters Endpoint
    15.3. Turbine Stream
  6. 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
  7. External Configuration: Archaius
  8. 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.6.1. Routes Endpoint
    18.6.2. Filters Endpoint
    18.7. Strangulation Patterns and Local Forwards
    18.8. Uploading Files through Zuul
    18.9. Query String Encoding
    18.10. Plain Embedded Zuul
    18.11. Disable Zuul Filters
    18.12. Providing Hystrix Fallbacks For Routes
    18.13. Zuul Timeouts
    18.14. Rewriting the Location header
    18.15. Metrics
    18.16. Zuul Developer Guide
    18.16.1. The Zuul Servlet
    18.16.2. Zuul RequestContext
    18.16.3. @EnableZuulProxy vs. @EnableZuulServer
    18.16.4. @EnableZuulServer Filters
    18.16.5. @EnableZuulProxy Filters
    18.16.6. Custom Zuul Filter Examples
    How to Write a Pre Filter
    How to Write a Route Filter
    How to Write a Post Filter
    18.16.7. How Zuul Errors Work
    18.16.8. Zuul Eager Application Context Loading
  9. Polyglot support with Sidecar
  10. Retrying Failed Requests
    20.1. BackOff Policies
    20.2. Configuration
    20.2.1. Zuul
  11. HTTP Clients

IV. Spring Cloud OpenFeign

  1. Declarative REST Client: Feign
    22.1. How to Include Feign
    22.2. Overriding Feign Defaults
    22.3. Creating Feign Clients Manually
    22.4. Feign Hystrix Support
    22.5. Feign Hystrix Fallbacks
    22.6. Feign and @Primary
    22.7. Feign Inheritance Support
    22.8. Feign request/response compression
    22.9. Feign logging
    V. Spring Cloud Stream
  2. Quick Start
    23.1. Creating a Sample Application by Using Spring Initializr
    23.2. Importing the Project into Your IDE
    23.3. Adding a Message Handler, Building, and Running
  3. What’s New in 2.0?
    24.1. New Features and Components
    24.2. Notable Enhancements
    24.2.1. Both Actuator and Web Dependencies Are Now Optional
    24.2.2. Content-type Negotiation Improvements
    24.3. Notable Deprecations
    24.3.1. Java Serialization (Java Native and Kryo)
    24.3.2. Deprecated Classes and Methods
  4. Introducing Spring Cloud Stream
  5. Main Concepts
    26.1. Application Model
    26.1.1. Fat JAR
    26.2. The Binder Abstraction
    26.3. Persistent Publish-Subscribe Support
    26.4. Consumer Groups
    26.5. Consumer Types
    26.5.1. Durability
    26.6. Partitioning Support
  6. Programming Model
    27.1. Destination Binders
    27.2. Destination Bindings
    27.3. Producing and Consuming Messages
    27.3.1. Spring Integration Support
    27.3.2. Using @StreamListener Annotation
    27.3.3. Using @StreamListener for Content-based routing
    27.3.4. Using Polled Consumers
    27.4. Error Handling
    27.4.1. Application Error Handling
    27.4.2. System Error Handling
    Drop Failed Messages
    DLQ - Dead Letter Queue
    Re-queue Failed Messages
    27.4.3. Retry Template
    27.5. Reactive Programming Support
    27.5.1. Reactor-based Handlers
    27.5.2. Reactive Sources
  7. Binders
    28.1. Producers and Consumers
    28.2. Binder SPI
    28.3. Binder Detection
    28.3.1. Classpath Detection
    28.4. Multiple Binders on the Classpath
    28.5. Connecting to Multiple Systems
    28.6. Binding visualization and control
    28.7. Binder Configuration Properties
  8. Configuration Options
    29.1. Binding Service Properties
    29.2. Binding Properties
    29.2.1. Common Binding Properties
    29.2.2. Consumer Properties
    29.2.3. Producer Properties
    29.3. Using Dynamically Bound Destinations
  9. Content Type Negotiation
    30.1. Mechanics
    30.1.1. Content Type versus Argument Type
    30.1.2. Message Converters
    30.2. Provided MessageConverters
    30.3. User-defined Message Converters
  10. Schema Evolution Support
    31.1. Schema Registry Client
    31.1.1. Schema Registry Client Properties
    31.2. Avro Schema Registry Client Message Converters
    31.2.1. Avro Schema Registry Message Converter Properties
    31.3. Apache Avro Message Converters
    31.4. Converters with Schema Support
    31.5. Schema Registry Server
    31.5.1. Schema Registry Server API
    Registering a New Schema
    Retrieving an Existing Schema by Subject, Format, and Version
    Retrieving an Existing Schema by Subject and Format
    Retrieving an Existing Schema by ID
    Deleting a Schema by Subject, Format, and Version
    Deleting a Schema by ID
    Deleting a Schema by Subject
    31.5.2. Using Confluent’s Schema Registry
    31.6. Schema Registration and Resolution
    31.6.1. Schema Registration Process (Serialization)
    31.6.2. Schema Resolution Process (Deserialization)
  11. Inter-Application Communication
    32.1. Connecting Multiple Application Instances
    32.2. Instance Index and Instance Count
    32.3. Partitioning
    32.3.1. Configuring Output Bindings for Partitioning
    32.3.2. Configuring Input Bindings for Partitioning
  12. Testing
    33.1. Disabling the Test Binder Autoconfiguration
  13. Health Indicator
  14. Metrics Emitter
  15. Samples
    36.1. Deploying Stream Applications on CloudFoundry

VI. Binder Implementations

  1. Apache Kafka Binder
    37.1. Usage
    37.2. Apache Kafka Binder Overview
    37.3. Configuration Options
    37.3.1. Kafka Binder Properties
    37.3.2. Kafka Consumer Properties
    37.3.3. Kafka Producer Properties
    37.3.4. Usage examples
    Example: Setting autoCommitOffset to false and Relying on Manual Acking
    Example: Security Configuration
    Example: Pausing and Resuming the Consumer
    37.4. Error Channels
    37.5. Kafka Metrics
    37.6. Dead-Letter Topic Processing
    37.7. Partitioning with the Kafka Binder
  2. Apache Kafka Streams Binder
    38.1. Usage
    38.2. Kafka Streams Binder Overview
    38.2.1. Streams DSL
    38.3. Configuration Options
    38.3.1. Kafka Streams Properties
    38.3.2. TimeWindow properties:
    38.4. Multiple Input Bindings
    38.4.1. Multiple Input Bindings as a Sink
    38.4.2. Multiple Input Bindings as a Processor
    38.5. Multiple Output Bindings (aka Branching)
    38.6. Message Conversion
    38.6.1. Outbound serialization
    38.6.2. Inbound Deserialization
    38.7. Error Handling
    38.7.1. Handling Deserialization Exceptions
    38.7.2. Handling Non-Deserialization Exceptions
    38.8. Interactive Queries
  3. RabbitMQ Binder
    39.1. Usage
    39.2. RabbitMQ Binder Overview
    39.3. Configuration Options
    39.3.1. RabbitMQ Binder Properties
    39.3.2. RabbitMQ Consumer Properties
    39.3.3. Rabbit Producer Properties
    39.4. Retry With the RabbitMQ Binder
    39.4.1. Putting it All Together
    39.5. Error Channels
    39.6. Dead-Letter Queue Processing
    39.6.1. Non-Partitioned Destinations
    39.6.2. Partitioned Destinations
    republishToDlq=false
    republishToDlq=true
    39.7. Partitioning with the RabbitMQ Binder

VII. Spring Cloud Bus

  1. Quick Start
  2. Bus Endpoints
    41.1. Bus Refresh Endpoint
    41.2. Bus Env Endpoint
  3. Addressing an Instance
  4. Addressing All Instances of a Service
  5. Service ID Must Be Unique
  6. Customizing the Message Broker
  7. Tracing Bus Events
  8. Broadcasting Your Own Events
    47.1. Registering events in custom packages

VIII. Spring Cloud Sleuth

  1. Introduction
    48.1. Terminology
    48.2. Purpose
    48.2.1. Distributed Tracing with Zipkin
    48.2.2. Visualizing errors
    48.2.3. Distributed Tracing with Brave
    48.2.4. Live examples
    48.2.5. Log correlation
    JSON Logback with Logstash
    48.2.6. Propagating Span Context
    Baggage versus Span Tags
    48.3. Adding Sleuth to the Project
    48.3.1. Only Sleuth (log correlation)
    48.3.2. Sleuth with Zipkin via HTTP
    48.3.3. Sleuth with Zipkin over RabbitMQ or Kafka
  2. Additional Resources
  3. Features
    50.1. Introduction to Brave
    50.1.1. Tracing
    50.1.2. Local Tracing
    50.1.3. Customizing Spans
    50.1.4. Implicitly Looking up the Current Span
    50.1.5. RPC tracing
    One-Way tracing
  4. Sampling
    51.1. Declarative sampling
    51.2. Custom sampling
    51.3. Sampling in Spring Cloud Sleuth
  5. Propagation
    52.1. Propagating extra fields
    52.1.1. Prefixed fields
    52.1.2. Extracting a Propagated Context
    52.1.3. Sharing span IDs between Client and Server
    52.1.4. Implementing Propagation
  6. Current Tracing Component
  7. Current Span
    54.1. Setting a span in scope manually
  8. Instrumentation
  9. Span lifecycle
    56.1. Creating and finishing spans
    56.2. Continuing Spans
    56.3. Creating a Span with an explicit Parent
  10. Naming spans
    57.1. @SpanName Annotation
    57.2. toString() method
  11. Managing Spans with Annotations
    58.1. Rationale
    58.2. Creating New Spans
    58.3. Continuing Spans
    58.4. Advanced Tag Setting
    58.4.1. Custom extractor
    58.4.2. Resolving Expressions for a Value
    58.4.3. Using the toString() method
  12. Customizations
    59.1. HTTP
    59.2. TracingFilter
    59.3. Custom service name
    59.4. Customization of Reported Spans
    59.5. Host Locator
  13. Sending Spans to Zipkin
  14. Zipkin Stream Span Consumer
  15. Integrations
    62.1. OpenTracing
    62.2. Runnable and Callable
    62.3. Hystrix
    62.3.1. Custom Concurrency Strategy
    62.3.2. Manual Command setting
    62.4. RxJava
    62.5. HTTP integration
    62.5.1. HTTP Filter
    62.5.2. HandlerInterceptor
    62.5.3. Async Servlet support
    62.5.4. WebFlux support
    62.5.5. Dubbo RPC support
    62.6. HTTP Client Integration
    62.6.1. Synchronous Rest Template
    62.6.2. Asynchronous Rest Template
    Multiple Asynchronous Rest Templates
    62.6.3. WebClient
    62.6.4. Traverson
    62.6.5. Apache HttpClientBuilder and HttpAsyncClientBuilder
    62.6.6. Netty HttpClient
    62.6.7. UserInfoRestTemplateCustomizer
    62.7. Feign
    62.8. Asynchronous Communication
    62.8.1. @Async Annotated methods
    62.8.2. @Scheduled Annotated Methods
    62.8.3. Executor, ExecutorService, and ScheduledExecutorService
    Customization of Executors
    62.9. Messaging
    62.9.1. Spring Integration and Spring Cloud Stream
    62.9.2. Spring RabbitMq
    62.9.3. Spring Kafka
    62.10. Zuul
  16. Running examples

IX. Spring Cloud Consul

  1. Install Consul
  2. Consul Agent
  3. Service Discovery with Consul
    66.1. How to activate
    66.2. Registering with Consul
    66.3. HTTP Health Check
    66.3.1. Metadata and Consul tags
    66.3.2. Making the Consul Instance ID Unique
    66.4. Looking up services
    66.4.1. Using Ribbon
    66.4.2. Using the DiscoveryClient
    66.5. Consul Catalog Watch
  4. Distributed Configuration with Consul
    67.1. How to activate
    67.2. Customizing
    67.3. Config Watch
    67.4. YAML or Properties with Config
    67.5. git2consul with Config
    67.6. Fail Fast
  5. Consul Retry
  6. Spring Cloud Bus with Consul
    69.1. How to activate
  7. Circuit Breaker with Hystrix
  8. Hystrix metrics aggregation with Turbine and Consul
    X. Spring Cloud Zookeeper
  9. Install Zookeeper
  10. Service Discovery with Zookeeper
    73.1. Activating
    73.2. Registering with Zookeeper
    73.3. Using the DiscoveryClient
  11. Using Spring Cloud Zookeeper with Spring Cloud Netflix Components
    74.1. Ribbon with Zookeeper
  12. Spring Cloud Zookeeper and Service Registry
    75.1. Instance Status
  13. Zookeeper Dependencies
    76.1. Using the Zookeeper Dependencies
    76.2. Activating Zookeeper Dependencies
    76.3. Setting up Zookeeper Dependencies
    76.3.1. Aliases
    76.3.2. Path
    76.3.3. Load Balancer Type
    76.3.4. Content-Type Template and Version
    76.3.5. Default Headers
    76.3.6. Required Dependencies
    76.3.7. Stubs
    76.4. Configuring Spring Cloud Zookeeper Dependencies
  14. Spring Cloud Zookeeper Dependency Watcher
    77.1. Activating
    77.2. Registering a Listener
    77.3. Using the Presence Checker
  15. Distributed Configuration with Zookeeper
    78.1. Activating
    78.2. Customizing
    78.3. Access Control Lists (ACLs)

XI. Spring Cloud Security

  1. Quickstart
    79.1. OAuth2 Single Sign On
    79.2. OAuth2 Protected Resource
  2. More Detail
    80.1. Single Sign On
    80.2. Token Relay
    80.2.1. Client Token Relay
    80.2.2. Client Token Relay in Zuul Proxy
    80.2.3. Resource Server Token Relay
  3. Configuring Authentication Downstream of a Zuul Proxy

XII. Spring Cloud for Cloud Foundry

  1. Discovery
  2. Single Sign On

XIII. Spring Cloud Contract

  1. Spring Cloud Contract
  2. Spring Cloud Contract Verifier Introduction
    85.1. Why a Contract Verifier?
    85.1.1. Testing issues
    85.2. Purposes
    85.3. How It Works
    85.3.1. A Three-second Tour
    On the Producer Side
    On the Consumer Side
    85.3.2. A Three-minute Tour
    On the Producer Side
    On the Consumer Side
    85.3.3. Defining the Contract
    85.3.4. Client Side
    85.3.5. Server Side
    85.4. Step-by-step Guide to Consumer Driven Contracts (CDC)
    85.4.1. Technical note
    85.4.2. Consumer side (Loan Issuance)
    85.4.3. Producer side (Fraud Detection server)
    85.4.4. Consumer Side (Loan Issuance) Final Step
    85.5. Dependencies
    85.6. Additional Links
    85.6.1. Spring Cloud Contract video
    85.6.2. Readings
    85.7. Samples
  3. Spring Cloud Contract FAQ
    86.1. Why use Spring Cloud Contract Verifier and not X ?
    86.2. I don’t want to write a contract in Groovy!
    86.3. What is this value(consumer(), producer()) ?
    86.4. How to do Stubs versioning?
    86.4.1. API Versioning
    86.4.2. JAR versioning
    86.4.3. Dev or prod stubs
    86.5. Common repo with contracts
    86.5.1. Repo structure
    86.5.2. Workflow
    86.5.3. Consumer
    86.5.4. Producer
    86.5.5. How can I define messaging contracts per topic not per producer?
    For Maven Project
    For Gradle Project
    86.6. Do I need a Binary Storage? Can’t I use Git?
    86.6.1. Protocol convention
    86.6.2. Producer
    86.6.3. Consumer
    86.7. Can I use the Pact Broker?
    86.7.1. Pact Consumer
    86.7.2. Producer
    86.7.3. Pact Consumer (Producer Contract approach)
    86.8. How can I debug the request/response being sent by the generated tests client?
    86.8.1. How can I debug the mapping/request/response being sent by WireMock?
    86.8.2. How can I see what got registered in the HTTP server stub?
    86.8.3. Can I reference text from file?
  4. Spring Cloud Contract Verifier Setup
    87.1. Gradle Project
    87.1.1. Prerequisites
    87.1.2. Add Gradle Plugin with Dependencies
    87.1.3. Gradle and Rest Assured 2.0
    87.1.4. Snapshot Versions for Gradle
    87.1.5. Add stubs
    87.1.6. Run the Plugin
    87.1.7. Default Setup
    87.1.8. Configure Plugin
    87.1.9. Configuration Options
    87.1.10. Single Base Class for All Tests
    87.1.11. Different Base Classes for Contracts
    87.1.12. Invoking Generated Tests
    87.1.13. Pushing stubs to SCM
    87.1.14. Spring Cloud Contract Verifier on the Consumer Side
    87.2. Maven Project
    87.2.1. Add maven plugin
    87.2.2. Maven and Rest Assured 2.0
    87.2.3. Snapshot versions for Maven
    87.2.4. Add stubs
    87.2.5. Run plugin
    87.2.6. Configure plugin
    87.2.7. Configuration Options
    87.2.8. Single Base Class for All Tests
    87.2.9. Different base classes for contracts
    87.2.10. Invoking generated tests
    87.2.11. Pushing stubs to SCM
    87.2.12. Maven Plugin and STS
    87.3. Stubs and Transitive Dependencies
    87.4. CI Server setup
    87.5. Scenarios
    87.6. Docker Project
    87.6.1. Short intro to Maven, JARs and Binary storage
    87.6.2. How it works
    Environment Variables
    87.6.3. Example of usage
    87.6.4. Server side (nodejs)
  5. Spring Cloud Contract Verifier Messaging
    88.1. Integrations
    88.2. Manual Integration Testing
    88.3. Publisher-Side Test Generation
    88.3.1. Scenario 1: No Input Message
    88.3.2. Scenario 2: Output Triggered by Input
    88.3.3. Scenario 3: No Output Message
    88.4. Consumer Stub Generation
  6. Spring Cloud Contract Stub Runner
    89.1. Snapshot versions
    89.2. Publishing Stubs as JARs
    89.3. Stub Runner Core
    89.3.1. Retrieving stubs
    Stub downloading
    Classpath scanning
    89.3.2. Running stubs
    Limitations
    Running using main app
    HTTP Stubs
    Viewing registered mappings
    Messaging Stubs
    89.4. Stub Runner JUnit Rule
    89.4.1. Maven settings
    89.4.2. Providing fixed ports
    89.4.3. Fluent API
    89.4.4. Stub Runner with Spring
    89.5. Stub Runner Spring Cloud
    89.5.1. Stubbing Service Discovery
    Test profiles and service discovery
    89.5.2. Additional Configuration
    89.6. Stub Runner Boot Application
    89.6.1. How to use it?
    Stub Runner Server
    Stub Runner Server Fat Jar
    Spring Cloud CLI
    89.6.2. Endpoints
    HTTP
    Messaging
    89.6.3. Example
    89.6.4. Stub Runner Boot with Service Discovery
    89.7. Stubs Per Consumer
    89.8. Common
    89.8.1. Common Properties for JUnit and Spring
    89.8.2. Stub Runner Stubs IDs
    89.9. Stub Runner Docker
    89.9.1. How to use it
    89.9.2. Example of client side usage in a non JVM project
  7. Stub Runner for Messaging
    90.1. Stub triggering
    90.1.1. Trigger by Label
    90.1.2. Trigger by Group and Artifact Ids
    90.1.3. Trigger by Artifact Ids
    90.1.4. Trigger All Messages
    90.2. Stub Runner Integration
    90.2.1. Adding the Runner to the Project
    90.2.2. Disabling the functionality
    Scenario 1 (no input message)
    Scenario 2 (output triggered by input)
    Scenario 3 (input with no output)
    90.3. Stub Runner Stream
    90.3.1. Adding the Runner to the Project
    90.3.2. Disabling the functionality
    Scenario 1 (no input message)
    Scenario 2 (output triggered by input)
    Scenario 3 (input with no output)
    90.4. Stub Runner Spring AMQP
    90.4.1. Adding the Runner to the Project
    Triggering the message
    Spring AMQP Test Configuration
  8. Contract DSL
    91.1. Limitations
    91.2. Common Top-Level elements
    91.2.1. Description
    91.2.2. Name
    91.2.3. Ignoring Contracts
    91.2.4. Passing Values from Files
    91.2.5. HTTP Top-Level Elements
    91.3. Request
    91.4. Response
    91.5. Dynamic properties
    91.5.1. Dynamic properties inside the body
    91.5.2. Regular expressions
    91.5.3. Passing Optional Parameters
    91.5.4. Executing Custom Methods on the Server Side
    91.5.5. Referencing the Request from the Response
    91.5.6. Registering Your Own WireMock Extension
    91.5.7. Dynamic Properties in the Matchers Sections
    91.6. JAX-RS Support
    91.7. Async Support
    91.8. Working with Context Paths
    91.9. Messaging Top-Level Elements
    91.9.1. Output Triggered by a Method
    91.9.2. Output Triggered by a Message
    91.9.3. Consumer/Producer
    91.9.4. Common
    91.10. Multiple Contracts in One File
    91.11. Generating Spring REST Docs snippets from the contracts
  9. Customization
    92.1. Extending the DSL
    92.1.1. Common JAR
    92.1.2. Adding the Dependency to the Project
    92.1.3. Test the Dependency in the Project’s Dependencies
    92.1.4. Test a Dependency in the Plugin’s Dependencies
    92.1.5. Referencing classes in DSLs
  10. Using the Pluggable Architecture
    93.1. Custom Contract Converter
    93.1.1. Pact Converter
    93.1.2. Pact Contract
    93.1.3. Pact for Producers
    93.1.4. Pact for Consumers
    93.2. Using the Custom Test Generator
    93.3. Using the Custom Stub Generator
    93.4. Using the Custom Stub Runner
    93.5. Using the Custom Stub Downloader
    93.6. Using the SCM Stub Downloader
    93.7. Using the Pact Stub Downloader
  11. Spring Cloud Contract WireMock
    94.1. Registering Stubs Automatically
    94.2. Using Files to Specify the Stub Bodies
    94.3. Alternative: Using JUnit Rules
    94.4. Relaxed SSL Validation for Rest Template
    94.5. WireMock and Spring MVC Mocks
    94.6. Customization of WireMock configuration
    94.7. Generating Stubs using REST Docs
    94.8. Generating Contracts by Using REST Docs
  12. Migrations
    95.1. 1.0.x → 1.1.x
    95.1.1. New structure of generated stubs
    95.2. 1.1.x → 1.2.x
    95.2.1. Custom HttpServerStub
    95.2.2. New packages for generated tests
    95.2.3. New Methods in TemplateProcessor
    95.2.4. RestAssured 3.0
    95.3. 1.2.x → 2.0.x
    95.3.1. No Camel support
  13. Links

XIV. Spring Cloud Vault

  1. Quick Start
  2. Client Side Usage
    98.1. Authentication
  3. Authentication methods
    99.1. Token authentication
    99.2. AppId authentication
    99.2.1. Custom UserId
    99.3. AppRole authentication
    99.4. AWS-EC2 authentication
    99.5. AWS-IAM authentication
    99.6. TLS certificate authentication
    99.7. Cubbyhole authentication
    99.8. Kubernetes authentication
  4. Secret Backends
    100.1. Generic Backend
    100.2. Versioned Key-Value Backend
    100.3. Consul
    100.4. RabbitMQ
    100.5. AWS
  5. Database backends
    101.1. Database
    101.2. Apache Cassandra
    101.3. MongoDB
    101.4. MySQL
    101.5. PostgreSQL
  6. Configure PropertySourceLocator behavior
  7. Service Registry Configuration
  8. Vault Client Fail Fast
  9. Vault Client SSL configuration
  10. Lease lifecycle management (renewal and revocation)

XV. Spring Cloud Gateway

  1. How to Include Spring Cloud Gateway
  2. Glossary
  3. How It Works
  4. Route Predicate Factories
    110.1. After Route Predicate Factory
    110.2. Before Route Predicate Factory
    110.3. Between Route Predicate Factory
    110.4. Cookie Route Predicate Factory
    110.5. Header Route Predicate Factory
    110.6. Host Route Predicate Factory
    110.7. Method Route Predicate Factory
    110.8. Path Route Predicate Factory
    110.9. Query Route Predicate Factory
    110.10. RemoteAddr Route Predicate Factory
    110.10.1. Modifying the way remote addresses are resolved
  5. GatewayFilter Factories
    111.1. AddRequestHeader GatewayFilter Factory
    111.2. AddRequestParameter GatewayFilter Factory
    111.3. AddResponseHeader GatewayFilter Factory
    111.4. Hystrix GatewayFilter Factory
    111.5. PrefixPath GatewayFilter Factory
    111.6. PreserveHostHeader GatewayFilter Factory
    111.7. RequestRateLimiter GatewayFilter Factory
    111.7.1. Redis RateLimiter
    111.8. RedirectTo GatewayFilter Factory
    111.9. RemoveNonProxyHeaders GatewayFilter Factory
    111.10. RemoveRequestHeader GatewayFilter Factory
    111.11. RemoveResponseHeader GatewayFilter Factory
    111.12. RewritePath GatewayFilter Factory
    111.13. SaveSession GatewayFilter Factory
    111.14. SecureHeaders GatewayFilter Factory
    111.15. SetPath GatewayFilter Factory
    111.16. SetResponseHeader GatewayFilter Factory
    111.17. SetStatus GatewayFilter Factory
    111.18. StripPrefix GatewayFilter Factory
    111.19. Retry GatewayFilter Factory
  6. Global Filters
    112.1. Combined Global Filter and GatewayFilter Ordering
    112.2. Forward Routing Filter
    112.3. LoadBalancerClient Filter
    112.4. Netty Routing Filter
    112.5. Netty Write Response Filter
    112.6. RouteToRequestUrl Filter
    112.7. Websocket Routing Filter
    112.8. Making An Exchange As Routed
  7. Configuration
    113.1. Fluent Java Routes API
    113.2. DiscoveryClient Route Definition Locator
  8. Actuator API
  9. Developer Guide
    115.1. Writing Custom Route Predicate Factories
    115.2. Writing Custom GatewayFilter Factories
    115.3. Writing Custom Global Filters
    115.4. Writing Custom Route Locators and Writers
  10. Building a Simple Gateway Using Spring MVC or Webflux

XVI. Spring Cloud Function

  1. Introduction
  2. Getting Started
  3. Building and Running a Function
  4. Function Catalog and Flexible Function Signatures
  5. Standalone Web Applications
  6. Standalone Streaming Applications
  7. Deploying a Packaged Function
  8. Dynamic Compilation
  9. Serverless Platform Adapters
    125.1. AWS Lambda
    125.1.1. Introduction
    125.1.2. Notes on JAR Layout
    125.1.3. Upload
    125.1.4. Platfom Specific Features
    HTTP and API Gateway
    125.2. Azure Functions
    125.2.1. Notes on JAR Layout
    125.2.2. JSON Configuration
    125.2.3. Build
    125.2.4. Running the sample
    125.3. Apache Openwhisk
    125.3.1. Quick Start

XVII. Appendix: Compendium of Configuration Properties

转载于:https://www.cnblogs.com/Solomon-xm/p/9379144.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值