Hystrix-命令名稱、分組以及線程池划分


命令名稱:

  1.1 以繼承的方式實現Hystrix命令使用類名作為默認的命令名稱,我們也可以在構造函數中通過Setter靜態類來設置

        

  1.2 為了保存每個命令分配的Setter分配,你也可以像這樣緩存Setter

  

命令分組和線程池划分:

  通過設置命令組,Hystrix會根據組來組織和統計命令的告警、儀表盤等信息。一定要設置命令組,因為除了根據組來實現統計外,Hystrix命令默認的線程划分也是根據命令分組來實現的。默認情況下,Hystrix會讓相同組名的精靈使用同一個線程池,所以我們需要在創建Hystrix命令時為其指定命令組名來實現默認的線程池划分。

  Hystrix還提供了HystrixThreadPoolKey來對線程池進行設置,通過它我們可以實現更細粒度的線程池划分,比如

   

  通常情況下,盡量通過HystrixThreadPoolKey的方式來指定線程池的划分,而不是通過組名默認的方式,因為多個不同的命令可能從業務邏輯上來看屬於同一個組,但是往往從實現本身上需要跟其他命令進行隔離。

  當我們使用@HystrixCommand注解的時候,只需要設置commandKey、groupKey以及threadPoolKey屬性就可以設置命令名稱、分組以及線程划分。

   @HystrixCommand(commandKey = "getUserId", groupKey = "UserGroup", threadPoolKey = "getUserByIdThread") public String getUserId(String name) {
        .....
    }

 

 

 

 

參考:

[1]Github,https://github.com/Netflix/Hystrix/wiki/How-it-Works

 [2] 《SpringCloud微服務實戰》,電子工業出版社,翟永超


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM