Springcloud distributed development of the five great Gods and beasts
- Service Discovery--netflix Eureka
- Customer-side load Balancing--netflix Ribbon
- Circuit Breaker--netflix Hystrix
- Service Gateway--netflix Zuul
- Distributed Configuration--spring Cloud Config
Eureka
A restful service that locates middle-tier services running in the AWS region. Consists of two components: the Eureka server and the Eureka client. The Eureka server serves as the service registration server. The Eureka client is a Java client that simplifies the interaction with the server, acts as a polling load balancer, and provides failover support for the service. Netflix uses additional clients in its production environment, which provides weighted load balancing based on traffic, resource utilization, and Error state.
Ribbon
Ribbon, which mainly provides customer-side software load balancing algorithms.
The Ribbon client component provides a complete set of configuration options, such as connection timeouts, retries, retry algorithms, and so on. The ribbon incorporates pluggable, customizable load balancing components. Here are some of the load balancing strategies that are used:
- Simple Poll Load Balancing
- Weighted response Time Load balancing
- Zone-aware polling load balancing
- Random Load Balancing
The Ribbon also includes the following features:
- Easy integration with service discovery components like Netflix's Eureka
- Using Archaius to complete runtime configuration
- Use JMX to expose operational metrics and publish using servo
- Multi-pluggable serialization options
- Asynchronous and batch operations (coming soon)
- Automatic SLA framework (coming soon)
- System Management/indicator consoles (coming soon)
Hystrix
A circuit breaker can prevent an application from trying to perform an operation multiple times, which is likely to fail, allowing it to continue without waiting for a recovery or waste
Cpu
Cycle, and it determines that the fault is persistent. The circuit breaker mode also enables the application to detect if a failure has been resolved. If the problem seems to have been corrected??, the application can try to invoke the operation.
The circuit breaker adds stability and flexibility to a system that provides stability while the system recovers from the failure and minimizes the performance impact of this failure. It can help to quickly deny requests to an operation that is likely to fail rather than wait for the operation to time out (or not return) to maintain the system's response time. If the circuit breaker raises an event each time the state changes, the information can be used to monitor the health status of the parts of the system protected by the circuit breaker, or to alert the administrator when the circuit breaker trips to the open state.
Flow chart
Zuul
Similar to Nginx, the function of reverse proxy, but Netflix itself added some features to cooperate with other components.
Spring Cloud Config
This is still static, with spring Cloud Bus to implement dynamic configuration updates.
Reference
Netflix open source one of their other architectures--eureka
Eureka Run example of application client clients
Eureka Service client registration and running sample
Deployment of Eureka servers under Linux
Spring Cloud Source parsing: An annotation loaded Eureka client
Spring-cloud & Netflix Source parsing: Eureka client-to-server call process
Spring-cloud & Netflix Source parsing: Eureka Client registration process
Spring-cloud & Netflix Source parsing: Eureka Service Registration Discovery Interface
Netflix releases cloud mid-tier services open source project Ribbon
Integration of the Ribbon and Eureka
Circuitbreaker
Circuit Breaker Pattern (must-read)
Circuit Breaker Mode
Netflix Zuul vs Nginx performance
Original address: 1190000005029218
Springcloud distributed development of the five great Gods and beasts