赞
踩
(1)注册:客户端会一次一次反复连接服务器,直到注册成功为止
(2)拉取:客户端每30秒重复拉取注册表,刷新注册表
(3)心跳:客户端每30秒发送一次心跳数据,服务器在连续3次收不到一个服务的心跳后,会删除这个服务
(4)自我保护模式:由于网络不稳定,或网络中断,15分钟内,85%服务器出现心跳异常,会进入保护模式,保护所有注册信息不删除
网络恢复之后,会自动退出保护模式恢复正常,开发调试期间,可以禁用保护模式,避免影响测试。
zuul API 网关,为微服务应用提供统一的对外访问接口。
zuul 还提供过滤器,对所有微服务提供统一的请求校验。
Zuul 的四个功能:统一的入口、统一的权限校验、集成ribbon、集成hystrix
统一的入口实践步骤:
(1)新建 module: sp06-zuul
(2)添加依赖: eureka client、zuul、sp01
(3)配置文件yml :
下面是默认配置
zuul根据注册表的注册信息,自动完成配置
最好手动配置,防止注册表不全
zuul:
routes:
item-service: /item-service/**
user-service: /user-service/**
order-service: /order-service/**
(4)启动类添加注解:@EnableZuulProxy
(1)继承父ZuulFilter过滤器
(2)自定义过滤器的方法
(3)添加@Component注解
zuul会从spring容器中发现这个过滤器的实例,自动完成配置。
携带token时访问:
未携带token时访问:
zuul集成Ribbon默认实现负载均衡,但是没有启动Ribbon的重试。尽量不要在网关添加重试,否则可能会造成大面积服务器压力倍增。
(1)添加 spring-retry
依赖
(2)yml配置 zuul.retryable=true
(3)有默认重试参数,可以修改配置
(1)降级操作:
调用后台服务出错:
后台服务出现异常,500错误。
后台服务不存在。
调用超时,默认1秒超时。
(2)添加降级代码
zuul集成了hystrix,有hystrix的间接依赖,不需要添加任何配置,默认已经启用hystrix。
实现 FallbackProvider 接口
添加 @Component 注解,会从spring容器自动发现这个实例,完成自动配置。
(3)Hystrix熔断、限流:
后台服务流量过大,出现故障,通过熔断限制后台服务流量。
熔断的条件:
10秒内有20次请求
50%失败,则执行降级代码
断路器打开一段时间后,会进入半开状态,半开状态下,
Hystrix dashboard
Hystrix仪表盘,可以监控Hystrix降级和熔断的情况
搭建仪表盘:
1.创建:module:sp01-hystrix-dashboard
2.添加依赖:hystrix-dashboard
Actuator
springboot提供的一个项目监控工具,提供项目的多种监控日志。
添加Actuator:
1.actuator依赖
2.yml配置暴露哪些监控数据
m.e.w.e.i="*" 暴露全部监控数据
m.e.w.e.i=health,beans,mappings,hystrix,stream 暴露多项监控数据
m.e.w.e.i=health 暴露一项数据
访问路径:http://localhost:3001/actuator
Hystrix日志的聚合工具
可以聚合多台服务器的Hystrix日志,Hystrix dashboard可以从Turbine拉取聚合之后的日志,同时监控多台服务器。
搭建Turbine 服务
1.新建模块:Sp08-turbine
2.添加依赖:eureka client,turbine
3.yml
聚合的服务:zuul、aa、bb、cc
给聚合的数据命名:new String("default")
4.启动类:@EnableTurbine
5.访问http:localhost:5001/turbine.stream
编辑–虚拟网络编辑器–选择vmnet8网卡–左下角 192.168.64.0
集中管理和维护配置文件
1.在springcloud1工程目录下新建config文件夹
2.把sp02,03,04的application.yml复制到config文件夹下
改名为:
3.创建本地仓库
4.提交本地仓库
创建工程sp09-config
添加依赖:eureka client,config-server
配置yml:
spring: application: name: config-server cloud: config: server: git: uri: https://gitee.com/chong-xin/GitCGBV2104Project search-paths: springcloud1/config server: port: 6001 eureka: client: service-url: defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
启动类添加注解:@EnableConfigServer
消息服务器
消息队列 message queue
消息中间件Borker
# 进入 docker-install 文件夹
cd docker-install
# 为 docker-install 添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
docker pull rabbimq:management
在线下载镜像docker load -i rabbit-image.gz
docker images
查看镜像systemctl stop firewalld
;systemctl disable firewalld
systemctl restart docker
# 导入的旧版本,启动运行命令 docker run -d --name rabbit \ -p 5672:5672 \ -p 15672:15672 \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=admin \ rabbitmq:management # 在线拉取的新版本 3.9 以上 mkdir /etc/rabbitmq vim /etc/rabbitmq/rabbitmq.conf # 添加两行配置: default_user = admin default_pass = admin docker run -d --name rabbit \ -p 5672:5672 \ -p 15672:15672 \ -v /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \ -e RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf \ rabbitmq:management
8、访问管理控制台 http://192.168.64.140:15672
用户名密码是 admin
Bus连接rabbitmq,发送刷新指令
Bus连接rabbitmq,接收刷新指令
修改2,3,4,9,添加Bus消息总线
1.添加依赖:Bus、Rabbitmq、Binder-rabbitmq
2.yml配置rabbitmq的连接信息,修改2,3,4的config文件,提交推送。
修改9,暴露刷新端点
1.actuator 依赖 (09中已经有间接依赖)
2.yml暴露刷新端口
m.e.w.e.i=bus-refresh
Sleuth 在各个模块产生链路跟踪日志
http://localhost:3001/order-service/sedede
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。