四条运行机制:
1.注册:客户端连接服务器注册,会反复注册,直到注册成功,报错之后会等待之后再次注册
2.拉取:客户端每30秒来拉取一次注册表,来拉取(使用本地缓存)的注册表,新的服务启动注册,其他模块需要等30秒才能被发现
3.心跳:客户端每隔30秒发送一次异常
一个服务,连续3次接收不到服务的心跳,会删除他的注册信息
4.自我保护模式
由于网络中断,大量服务器出现心跳异常(服务器和Eruake之间的网络断了)
15分钟内,85%的服务器出现心跳异常,会进入自我保护模式,所有的注册信息不删除,等待网络恢复
开发调试期间,可以禁用保护模式,避免影响测试
客户端连接sp05注册中心,加配置
Eurake客户端
1.添加eureka-client
2.yml配置:
eurake连接地址: http://eureka1:2001/eureka
/eureka子路径
修改hosts文件:win+r dervier
高可用
有服务器宕机,系统仍然可以使用,有备份服务器,多台服务器也可做负载均衡
不同的服务器上端口号相同不冲突.
为防止宕机,客户端连接多台服务器 defaultZone:XXX,XXX
Feign
配置: 调用哪个服务 订单调用 商品和用户 需要服务id 调用哪个路径 定义不同的方法来调用不同的路径 提交什么参数
Feign集成Ribbon
Ribbon提供负载均衡和重试功能
feign集成Ribbon,默认已经启用了负载均衡和重试
重试参数:
MAxAutoRetries-单台服务器重试次数
服务器更换次数
zull api网关
统一的调用入口:只需配置
1.新建spring模块:sp06-zull
2.pom.xml添加eurake zull sp01-commonts
3.yml zuul:routes:item-service: /item-service/**
4.启动类添加注解:@EnableZuulProxy
统一的权限校验
没有token不允许访问,token应放在http的表头
1.新建过滤器AccessFilter,继承ZuulFilter,并添加@Component
继承Ribbon
默认启用负载均衡,默认不启用重试,在网关启用重试,可能造成后台服务器压力翻倍,大面积出现故障
集成Hystrix
系统容错和限流工具
容错:通过降级来容错,降级,zuul默认已经启用了Hystrix
限流:因为流量压力过大,造成后台服务出现故障,通过熔断来限流
10s达到20次请求(首先满足),50%出错执行降级代码 -->断路器打开
断路器打开后,会进入半开状态,尝试向服务器发送一次客户端调用
断路器是全自动的
1.用actuator暴露Hystrix的监控数据,是springboot提供的一个项目监控指标工具
spring容器中的所有对象
spring mvc的所有路径
java虚拟机堆内存镜像
Turbine
从多台服务器抓取日志进行聚合
Spring clould config----配置中心
yml,每个模块都有配置文件,一个一个模块的修改配置,重新部署,非常繁琐,
配置中心:所有模块的配置文件集中存放,配置中心的服务器上,维护修改较方便,只需重启模块即可.
1)保存到数据库 2)存到磁盘文件上 3)可以用git 仓库存储(默认)
将配置config提交到git
1.double shift 搜索commit 填写mesage信息,与仓库url ,提交到本地仓库
2.double shift 收索push 全选提交到仓库
搭建配置中心