SpringCloud 是一个框架的集合
其中,
Eureka: 相当于dubbo与zookeeper的结合, 暴露服务, 光有他,还不能完成完整的,暴露服务和调用服务
Feign: 实现Eureka提供的服务之间的调用, 调用服务
使用SpringCloud前提, 必须使用Springboot
Hystrix: 熔断器, 为防止 服务器上的服务相互调用时,出现雪崩效应, 就是一个挂了, 全都报错, 他就可以
zuul: 服务网关, 设置一个ip,端口, 请求都走着一个端口, 在分发给不同的微服务
Springcloud config: 分布式配置 用来存放各个微服务中的配置文件,
Springcloud Bus: 消息总线 配置文件原本就是为了方便修改需要改动的配置,而且还不需要从新打包, 不需要重启服务
Springboot 与 Spring Cloud 版本对应
Springboot | Spring Cloud |
---|---|
1.2.x | Angel |
1.3.x | Brixton |
1.4.x | Camden |
1.5.x | Dalston,Edgware |
2.0.x | Finchley |
Eureka: 由Netflix开发的服务发现框架, 也就是暴露服务的框架. Spring Cloud 本着不重复造轮子的宗旨,
把他集成到了Spring 全家桶里面
Eureka分为 server, Client
server: 提供服务注册,
client: 是java客户端, 用来与server交互, 注册到 server的client服务, 会定时向服务发送心跳, 默认30秒一次
若在3次(90秒内)节点都没有接收到client的心跳, server会将该服务移出服务注册表.
保护模式: 当一段时间内, 接收的心跳包低于85% ,就会进入保护模式, server会认为, 是网络存在问题, 并在spring cloud的管理页面出现两行 提示
"EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE."