SpringCloud監控&保護之->Hystrix+Dashboard+turbine
一、demo項目搭建
引用網絡資源: https://blog.csdn.net/forezp/article/details/81041113
具體的demo項目搭建可參見以上網絡資源。"史上最簡單的SpringCloud教程 "
二、基本知識點
基本上看完以下兩圖就足夠了
圖片
圖片
三、Dashborad配置
http://ip:port/hystrix 打開以下頁面
圖片
四、hystrix參數配置
以下這個博客已經對參數使用及分類說的非常詳細了
引用網絡資源:https://blog.csdn.net/tongtong_use/article/details/78611225
我本地demo的一個配置可以參考下:
#feign開啟hystrix
feign.hystrix.enabled=true
#全局超時配置,單位ms,默認值1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMillisecnotallow=10000
#熔斷觸發的最小個數/10s,時間默認是10s
hystrix.command.default.circuitBreaker.requestVolumeThreshold=5
#ribbon的超時時間
ribbon.ReadTimeout=10000
ribbon.Cnotallow=10000
#同一實例最大重試次數,不包括首次調用。默認值為0
ribbon.MaxAutoRetries = 0
#同一個服務其他實例的最大重試次數,不包括第一次調用的實例。默認值為1
ribbon.MaxAutoRetriesNextServer = 0
#是否所有操作都允許重試。默認值為false
ribbon.OkToRetryOnAllOperations = false五、相關問題
1、HystrixCommandKey到底是個啥?
圖片
就是:類名#方法名() 就是dashboard這里顯示出來的名字
圖片
2、hystrix.command.default.circuitBreaker.requestVolumeThreshold是時間是多長的,默認是10s
3、hystrix.command.default.execution.isolation.thread. timeoutInMilliseconds設置了超時時間為什么沒生效?
需要考慮到feign最終還是要經過ribbon,ribbon有個默認重試1次的設置,同時也有默認超時時間1s。考慮到這2點就能正確的設置timeoutInMilliseconds的值了。
4、hystrix與springbootadmin
springbootadmin已經有個比較有好的管理界面,1.x的springbootadmin有把dashboard集成到springbootadmin中作為admin的一個菜單(在依賴中增加spring-boot-admin-server-ui-hystrix就可以)。看官方文檔好像springbootadmin 2.x已經去掉了。




























