Hyxtrixweb
系统容错工具
降级
熔断spring
微服务宕机时 ribbon没法转发请求vim
降级: 调用远程服务失败(异常 超时 服务不存在),能够经过执行当前服务中的一段代码来向客户端发回响应centos
降级响应 : 错误提示 返回缓存数据缓存
快速失败:即便后台服务失败 也要让客户端尽快获得错误提示 而不能让客户端等待服务器
添加降级
1.添加Hystrix依赖
2.启动类添加@EnableCircuitBreaker 注解网络
启动断路器 断路器的两个核心功能
降级: 超时 出错 不可到达时 对服务降级 返回错误信息或者是缓存数据
熔断: 当服务压力过大时 错误比例过多时 熔断全部请求 全部请求直接降级app
3.添加降级代码tcp
在远程调用方法上添加 @HystrixCommand(fallbackMethod="降级方法名") 完成降级方法 返回降级响应
hystrix超时微服务
超时设置
在yml文件中添加
hystrix:
command:
default: execution: isolation: thread: timeoutInMilliseconds: 500
默认1秒超时 执行降级
若是配置了ribbon重试 重试还会继续执行 最终重试结果无效
Hystrix超时>=Ribbon总的超时时长
hystrix熔断
整个链路达到必定的阈值,默认状况下,10秒内产生超过20次请求,则符合第一个条件。
知足第一个条件的状况下,若是请求的错误百分比大于阈值,则会打开断路器,默认为50%。
Hystrix的逻辑,先判断是否知足第一个条件,再判断第二个条件,若是两个条件都知足,则会开启断路器
断路器打开 5 秒后,会处于半开状态,会尝试转发请求,若是仍然失败,保持打开状态,若是成功,则关闭断路器
当请求量增大 出现过多错误 hystrix能够和后台服务断开链接(过热保护)
能够避免雪崩效应 故障传播
限流措施
流量过大时形成服务故障 能够断开服务 下降它的流量
在特定条件下会自动触发熔断
1.10秒内20次请求(必须首先知足)
2.50%出错 执行了降级代码
3个数值均可以改变
半开状态下能够自动恢复
断路器打开几秒后 进入半开状态 尝试发送请求
若是请求成功自动关闭断路器恢复正常
若是请求失败 再保持打开状态几秒
Hystrix监控仪表盘 监控Hystrix降级和熔断的错误信息
hystrix对请求的降级和熔断 能够产生监控信息 hystrix dashboard能够实时的进行监控
1.添加actuactor依赖 并暴露hystrix监控端点
2.配置yml文件 并暴露hystrix.stream监控端点
management:
endpoints:
web: exposure: include: hystrix.stream
访问路径 http://localhost:3001/actuator 查看监控端点
建立项目
添加hystrix dashboard依赖
配置yml文件
spring:
application:
name: hystrix-dashboard
server:
port: 4001
eureka:
client:
service-url: defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
hystrix:
dashboard:
proxy-stream-allow-list: localhost
主程序添加
@EnableHystrixDashboard注解
访问测试
http://localhost:4001/hystrix
填写hystrix的监控端点 开启监控
http://localhost:3001/actuator/hystrix.steram
虚拟机的配置
VMware提供了虚拟网络环境 有多块虚拟网卡
它的虚拟网络常常出现问题 能够还原默认设置 删除全部的虚拟网卡从新建立
NAT网络网段
VMware会随机自动分配网段 选择VMware8网卡 将网段改成64
设置NAT网络的ip地址
NetworkManager服务于network.service服务有冲突 会引发网络没法设置ip 网卡丢失的状况
禁用NetworkManager服务
systemctl stop NetworkManager
systemctl disable NetworkManager
自动获取ip
设置ip 要修改一个网卡的配置文件
/etc/sysconfig/network-scripts/
vim /ifcfg-ens33
自动获取ip
./ip-dhcp
ip addr
ifconfig
设置固定ip
./ip-static
ip:192.168.64.8
idconfig
ping www.baidu.com (ctrl+c结束)
Rabbitmq虚拟机
1.克隆centos-7-1908:rabbitmq
2.设置固定ip
./ip-static
ip:192.168.64.140
ifconfig
3.用Mobaxterm链接140服务器
将rabbit-install解压并将目录上传到/root
切换到rabbit-install目录
cd rabbitmq-install
安装
rpm -ivh *.rpm
启动rabbitmq服务器
systemctl enable rabbit-server 设置服务 开机自动启动
systemctl start rabbit-server 启动服务
rabbitmq管理界面
启动管理界面
开启管理界面插件
rabbitmq-plugins enable rabbitmq_management
防火墙打开 15672 管理端口
firewall-cmd --zone=public --add-port=15672/tcp -- permanent
firewall-cmd --reload
重启RabbitMQ服务
systemctl restart rabbitmq-server
访问服务器的15672端口
http://192.168.64.140:15672
添加用户
添加用户
rabbitmqctl add_user admin admin
新用户设置用户为超级管理员
rabbitmqctl set_user_tags admin administrator
开放客户端链接端口
打开客户端链接端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload
主要端口介绍