I. Overview
Before several small blog recorded the process I learned SpringCloud components, and the Dubbo frame work used to do a little comparison, basic components: Eureka, Ribbon, Hystrix, Feign, Zuul, Config, of course, is still at work never used, but as a programmer, select the IT field, you'll never be down times, so-called real JS's famous quote: "the real master of apprentices always carries with a heart", is the opportunity for those who are prepared , so what are aware that some of the more colorful life.
SpringCloud Chinese network: https://www.springcloud.cc/
Second, summary
(1)Eureka
Official website address: https://github.com/Netflix/eureka
①Eureka using CS design architecture, is divided into client and server in two parts; the server side, also known as a service registry for the registration and found to provide services; client component consists of service consumers and service producers. In the application is running, Eureka client registers its own service provided to the registry and periodically sends a heartbeat to update its service lease. But also you can query the information currently registered service from the server and cache them locally and periodically refresh the service status.
②Eureka support high availability configuration, when the film took part in the cluster fails, Eureka will turn automatic protection mode, which allows fault during fragmentation continues to provide discovery and registration services, when the fault slices back to normal, cluster other fragments will synchronize their state back again.
③ involves Notes: @ EnableEurekaServer, @ EnableEurekaClient
(2)Ribbon
Official website address: https://github.com/Netflix/ribbon
① client load balancing
② involves Notes: @ LoadBalanced, @ RibbonClient (configuration)
(3)Feign
Official website address: https://github.com/OpenFeign/feign
①Feign WebService client is a declarative, the underlying default implementation Ribbon load balancing, very easy to use: Interface + Notes
② involves Notes: @FeignClient ( "micro service name") Note: This annotation interface for
(4)Hystrix
Official website address: https://github.com/Netflix/hystrix
①Hystrix is a delay for processing and fault-tolerant distributed systems open source library, I did a fuse and downgrade services practice
② involves Notes: @HystrixCommad (fallback = "method name"), combined with @FeignClient (fallbackFactory = xxx.class)
(5)Zuul
Official website address: https://github.com/Netflix/zuul
① provide proxy, routing, filtering three functions
② Zuul service will eventually registered to Eureka
③ involves Notes: @EnableZuulProxy
(6)Config
Official website address: https://www.springcloud.cc/spring-cloud-config.html
①SpringCloud Config divided into server and client
②SpringCloud Config provides a centralized service for the micro-architecture of the micro-service external configuration support, configuration external configuration server provides a centralized environment for all of the different micro-services applications.
③ involves Notes: @EnableConfigServer
Third, outlook
Thus, the basic components of SpringCloud: Eureka, Ribbon, Feign, Hystrix, Zuul, Config already know, then i is some advanced, such as:
①SpringCloud Stream: Development Kit stream
②SpringCloud Turbine: polymerizing a tool server sends event stream data metrics to monitor the situation in the cluster hystrix
③SpringCloud Task: provide cloud planning task management, task scheduling
④SpringCloud Sleuth: log collection toolkit implements a distributed tracking solutions, and encapsulated Dapper Zipkin and log-based tracking and HTrace operation.
⑤SpringCloud Security: Based on spring security security toolkit, add security controls for applications
As well as other aspects of learning, such as:
① service deployment: Kubernetes, OpenStack
② full link to track: Zipkin, brave
③ Service Monitoring: zabbix
④SpringCloud CLI: Based on Spring Boot CLI, you can quickly build cloud components in a command line
⑤ global control: Election leader, Global Lock, globally unique id
⑥ security authentication: Oauth2, openId connect
⑦ build and deployment automation: gitlab + jenkins + docker