Netflix的Hystrix是一個幫助解決分佈式系統交互超時處理和容錯的類庫,一樣擁有保護系統的能力。 服務隔離 服務降級 1、服務隔離 在一個系統中,一個業務一般會依賴多個服務,且這若干個服務的調用是互不干擾的,故通常將這若干個服務的調用方在一個線程池中,當此時某一個服務不可用時,就會形成線程池中的線程因等待相應而被阻塞,使主服務受到很大的影響,甚至不可用。使用Hystrix經過對每個依賴服務都分配獨立的線程池進行服務隔離,從而避免因爲某一個服務響應慢而影響主服務。 2、服務降級 當依賴的某一個服務不可用時,直接返回,不須要進行再次嘗試,這是經過一個開關來進行控制的,固然此時該開關是打開的。固然其也會在必定的時間內進行測試,如果測試該服務可用了,那麼 前面提到的開關就會關閉,那麼當再次有該依賴服務的請求時,就不會直接返回,而會進行具體的業務邏輯處理。其中開關的打開是根據該服務的健康情況來進行控制的,而健康情況是由其請求失敗數佔請求總數的百分數,只要大於設定的失敗率,則該開關打開。 參考: http://hot66hot.iteye.com/blog/2155036 http://my.oschina.net/ybakswu/blog/734374 http://www.sczyh30.com/posts/Microservice/netflix-hystrix-how-it-works-summary/