當前位置:編程學習大全網 - 編程語言 - 微服務架構的軟件運行可能存在哪些問題?

微服務架構的軟件運行可能存在哪些問題?

微服務架構開發在軟件編程開發領域中是壹種非常常見的軟件開發方式了,而今天我們就壹起來了解壹下,基於微服務架構的系統軟件在運行過程中都有哪些問題會發生。

壹:Hystrix是什麽?

1.1:基本解釋

Hystrix開始由Netflix(看過美劇的都知道,它是壹個美劇影視制作的巨頭公司)開源的,後來由SpringCloudHystrix基於這款框架實現了斷路器、線程隔離等壹系列服務保護功能,該框架的目標在於通過控制訪問遠程系統、服務和三方庫的節點,從而延遲和故障提供更強大的容錯能力。hystrix具備服務降級、服務熔斷、線程和信號隔離、請求緩存、請求合並以及服務監控等強大功能。起到了微服務的保護機制,防止某個單元出現故障.從而引起依賴關系引發故障的蔓延,終導致整個系統的癱瘓。

1.2:斷路器的概念

斷路器本身是壹個開關裝置,用在電路上保護線路過載,當線路中有電器發生短路的時候。“斷路器”能夠及時切斷故障,防止發生過載、發熱甚至起火等嚴重後果。當分布式架構中,斷路器模式起到的作用也是類似的。當某個服務發生故障的時候,通過斷路器的故障監控向調用方返回壹個錯誤響應,而不是長時間的線程掛機,無限等待。這樣就不會使線程因故障服務被長時間占用不釋放,避免了故障在分布式系統中的蔓延。

二:Hystrix解決超時問題

2.1:問題

假設我們前端提供了用戶查詢訂單的功能,先請求映射到OrderController,控制器通過調用服務orderService獲取訂單信息,前端傳過來兩個參數:壹個是訂單id,壹個是用戶id,orderService需要通過用戶id調取用戶服務來獲取用戶的相關信息返回給訂單服務去組裝信息,假設這裏是通過mand來解耦請求與返回操作,在具體的實例中就是,Hystrix會對依賴的服務進行觀察,通過command.toObservable調用返回壹個觀察的對象,同時發起壹個事件,然後用Subscriber對接受到的事件進行處理。南邵北大青鳥建議在command命令發出請求後,它通過壹系列的判斷,順序依次是緩存是否命中、斷路器是否打開、線程池是否占滿,然後它才會開始對我們編寫的代碼進行實際的請求依賴服務的處理,也就是Hystrix.run方法,如果在這其中任壹節點出現錯誤或者拋出異常,它都會返回到fallback方法進行服務降級處理,當降級處理完成之後,它會將結果返回給,際的調用者,經過壹系列流程處理的。

  • 上一篇:四川機電職業技術學院的信息工程系
  • 下一篇:有哪些消費陷阱或者黑心商家妳覺得應該去315?
  • copyright 2024編程學習大全網