天天看點

SpringCloud學習日記(二)用戶端負載均衡Ribbon

        上一篇介紹使用了Eureka服務注冊與發現的元件使用,我們已經将服務提供者和服務消費者注冊到EurekaServer上,但是在消費者調取服務者時,還是在使用寫死的方式(指定ip和端口号)來使用的,這種方式使用起來不夠靈活,而且需要變更服務提供者的時候需要手動修改相應的通路位址,而且我們配置多個服務提供方以後,如何實作對服務提供方随機通路呢,實作的辦法比較多,比如在消費方和服務提供方加上nginx,實作負載均衡的能力,但是運維的工作勢必會很複雜,而springcloud已經給我們準備好現成的解決方案了,那就是Ribbon,Ribbon本身也是netflex下的一個項目,并且支援多種負載政策,比如預設使用的輪訓政策,以及随機政策,還有響應時間權重政策等。

        下面就來介紹一下ribbon在springcloud中的使用。根據官方文檔,在springboot中使用ribbon有三種方式,第一種,按預設方式使用,隻需在消費端的RestTemplate加上@LoadBalanced注解即可使用預設輪訓政策對服務提供方進行通路,這是最簡單的使用方式;第二種,通過編碼方式來指定使用,可以指定輪訓政策;第三種通過配置檔案來使用,這三種方式的優先級為:三>二>一。

        在此以上一篇中的服務消費方為例進行使用Ribbon的改造,因為eureka的依賴中本身包含了ribbon的依賴,是以我們不需要額外導入ribbon的依賴了。

        由于文字表述不是太好說,可以直接下載下傳我寫的demo樣例,

        編碼方式使用:https://download.csdn.net/download/qq_35918388/10434288

        配置檔案方式使用:https://download.csdn.net/download/qq_35918388/10434320

       需要注意的是,springboot在啟動時會自動掃描同胞以及子包的注解類,是以在同一項目中如果要指定多種負載政策,并且是使用java代碼配置使用的,那麼需要排除掉那些指定的掃面包,否則,你配置使用的負載政策會覆寫掉整個工程,推薦使用配置檔案的方式來進行配置使用,簡單易用且可避免此問題的出現。

繼續閱讀