注:如有不对请及时指出。
SpringCloud简介
SpringCloud是Spring为了实现微服务的分布式架构。
现状:SpringCloud国外比较流行,国内市场也非常可观。
SpringCloud核心组件
1.Netflix Eureka(服务注册中心)
2.Netflix Ribbon(负载均衡)
3.Netflix Hystrix(断路由)
4.Netflix Zuul(服务网关)
5.Spring Config(配置中心)
Eureka(注册中心)
Eureka有三个主要核心角色:
- 服务注册中心 Eureka Server
微服务中所有的服务注册的地方,记录服务名和地址。 - 服务提供者 Eureka Client
将自己作为一个服务注册到注册中心当中,维持心跳发送。 - 服务消费者 Eureka Client
拉取Eureka Server中的服务列表,通过负载均衡策略进行调度服务。
原因:方便我们管理服务之间的调用和管理。
Ribbon(负载均衡)
Ribbon是一款负载均衡器,在客户端配置RibbonServerList,拉取到Eureka Server的服务列表后缓存到本地,通过轮询,随机连接等方法连接服务。
原因:多个服务可以使用,通过Ribbon将每个服务的调度次数尽量平均,平摊每个服务的压力。
Hystrix(熔断器)
hystrix是一款容错框架,同样具有自我保护的能力。一般和feign搭配使用。
原因:需要使用的服务突然down机,导致服务阻塞,请求量大还可能造成雪崩效应。而通过Hystrix的快速失败机制,回退降级等一些设计可以有效防止。
Zuul(网关)
zuul的作用相当于Servlet的拦截器,可用做统一鉴权,负载均衡,监控。
原因:zuul可以不让真实的地址端口暴露,聚合后端服务,提高性能。
Spring Cloud Config(配置中心)
SpringCloudConfig是springCloud提供的配置中心,专门用于管理分布式架构的配置文件。