【微服务架构】SpringCloud使用Ribbon实现负载均衡
說在前面
軟負載均衡的實現方式有兩種,分別是服務端的負載均衡和客戶端的負載均衡
服務端負載均衡:當瀏覽器向后臺發出請求的時候,會首先向反向代理服務器發送請求,反向代理服務器會根據客戶端部署的ip:port映射表以及負載均衡策略,來決定向哪臺服務器發送請求,一般會使用到nginx反向代理技術。
客戶端負載均衡:當瀏覽器向后臺發出請求的時候,客戶端會向服務注冊器(例如:Eureka Server),拉取注冊到服務器的可用服務信息,然后根據負載均衡策略,直接命中哪臺服務器發送請求。這整個過程都是在客戶端完成的,并不需要反向代理服務器的參與。
什么是Ribbon
Ribbon是Netflix公司開源的一個負載均衡的項目,它屬于上述的第二種,是一個客戶端負載均衡器,運行在客戶端上。它是一個經過了云端測試的IPC庫,可以很好地控制HTTP和TCP客戶端的一些行為。 Feign已經默認使用了Ribbon。
- 負載均衡
- 容錯
- 多協議(HTTP,TCP,UDP)支持異步和反應模型
- 緩存和批處理
一、啟動Eureka Server
參考:https://blog.csdn.net/u012081441/article/details/80708060
二、啟動微服務,并注冊到Eureka Server上
參考:https://blog.csdn.net/u012081441/article/details/80708060
三、添加Ribbon支持
1、pom文件添加
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
2、添加負載均衡支持
@EnableEurekaClient
@SpringBootApplication
public class SpringCloudConsumerApp {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSpringApplication.run(SpringCloudConsumerApp.class, args);}@Bean@LoadBalanced // 添加負載均衡支持RestTemplate restTemplate() {return new RestTemplate();}
}
3、修改服務工程代碼區分端口項目啟動,訪問:http://localhost:8888/ ,查看Eureka Server狀態,顯示結果如下圖
4、啟動消費工程代碼,訪問http://localhost:8764/getServiceUser,訪問結果如下圖
源碼下載
總結
以上是生活随笔為你收集整理的【微服务架构】SpringCloud使用Ribbon实现负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot (八) :Spri
- 下一篇: 【微服务架构】SpringCloud之F