第五階段day02

Hyxtrixweb

系統容錯工具
降級
熔斷spring

image.png

image.png

微服務宕機時 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降級和熔斷的錯誤信息

image.png

hystrix對請求的降級和熔斷 能夠產生監控信息 hystrix dashboard能夠實時的進行監控

1.添加actuactor依賴 並暴露hystrix監控端點

image.png

2.配置yml文件 並暴露hystrix.stream監控端點

management:
endpoints:

web:
  exposure:
    include: hystrix.stream

訪問路徑 http://localhost:3001/actuator 查看監控端點

image.png

建立項目
添加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

image.png

image.png

虛擬機的配置

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

image.png

開放客戶端鏈接端口

打開客戶端鏈接端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload

主要端口介紹

  • 4369 – erlang發現口
  • 5672 – client端通訊口
  • 15672 – 管理界面ui端口
  • 25672 – server間內部通訊口
相關文章
相關標籤/搜索