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
主要端口介紹