客户端负载均衡?? 服务端负载均衡??
?我們用一張圖來描述一下這兩者的區別
這篇文章里面不會去解釋nginx,如果不知道是什么的話,可以先忽略, 先看看這張圖
服務端的負載均衡是一個url先經過一個代理服務器(這里是nginx),然后通過這個代理服務器通過算法(輪詢,隨機,權重等等..)反向代理你的服務,l來完成負載均衡
而客戶端的負載均衡則是一個請求在客戶端的時候已經聲明了要調用哪個服務,然后通過具體的負載均衡算法來完成負載均衡
如何使用:
首先,我們還是要引入依賴,但是,eureka已經把ribbon集成到他的依賴里面去了,所以這里不需要再引用ribbon的依賴,如圖:
要使用ribbon,只需要一個注解:
@Bean @LoadBalanced public RestTemplate restTemplate(){RestTemplate restTemplate = new RestTemplate();return restTemplate; }在RestTemplate上面加入@LoadBalanced注解,這樣子就已經有了負載均衡, 怎么來證明?
我們這里現在啟動了eureka集群(3個eureka) 和Power集群(2個power) 和一個服務調用者(User)
但是我們的User僅僅只需要調用服務,不需要注冊服務信息,所以需要改一下配置文件:
配置什么意思就不做過多解釋了,上面講eureka的時候有講到過
server:port: 5000 eureka:client:registerWithEureka: falseserviceUrl:defaultZone: http://localhost:3000/eureka/,http://eureka3001.com:3001/eureka,http://eureka3002.com:3002/eureka然后啟動起來的頁面是這樣子的
我們能看見 微服務名:SERVER-POWER 下面有2個微服務(power-1,power2),現在我們來通過微服務名調用這個服務
這是我們的user項目的調用代碼 :
private static final String URL="http://SERVER-POWER";@Autowired private RestTemplate restTemplate;@RequestMapping("/power.do") public Object power(){return restTemplate.getForObject(URL+"/power.do",Object.class); }這里可能有點抽象,需要你們自己去寫才能體會到,但是我們已經完成了負載均衡, 他默認的負載均衡是輪詢策略,也就是一人一次,下一節我們來講一下他還有哪些策略。
?
總結
以上是生活随笔為你收集整理的客户端负载均衡?? 服务端负载均衡??的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ribbon是什么?
- 下一篇: 核心组件:IRule