微服務
一糕伐、負載均衡原理
底層流程:
LoadBalancerInterceptor負載均衡攔截器 攔截客戶端發(fā)起的http請求(RestTemplate)
-
LoadBalancerInterceptor 將請求交給 RibbonLoadBalancerClient咐鹤,
RibbonLoadBalancerClient 獲取url中的服務名稱
RibbonLoadBalancerClient 向Eureka-server 拉取服務 ip:port
RibbonLoadBalancerClient 得到服務后 通過 IRule (負載均衡的算法:輪詢赫悄、隨機等)選出一個服務
通過參數(shù) url (服務) 發(fā)起請求
圖示:
image-20220314085800268.png
詳細負載均衡圖示:
image-20220314090646062.png
二、負載均衡策略
圖示:
image-20220314094201915.png
要想修改負載均衡的規(guī)則有兩種方式:
一是注入 IRule 類型的 Bean(全局范圍)
-
二是通過配置文件冒冬,對服務提供者 application.yml文件中宦焦,添加新的配置
范圍只針對 指定的服務提供者
代碼方式:
在配置類中加入 如下代碼:
@Bean
public IRule getRule() {
return new RandomRule();
}
配置文件方式:
在Eureka-server微服務中 對配置文件加如下配置
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.netfix.loadbalancer.RondomRule # 負載均衡規(guī)則
三博秫、懶加載
每當我們第一次訪問 查詢數(shù)據(jù)時督怜,都會執(zhí)行一種懶加載的策略,就是有些對象只有執(zhí)行任務需要時才會創(chuàng)建和初始化袭景,所以執(zhí)行 效率 相對慢一點
我們可以將懶加載修改為 饑餓加載(就是當服務啟動時就進行初始化)
饑餓加載:
針對服務消費者的 配置文件 設置對服務提供者 的服務配置
application.yml
ribbon:
eager-load:
enabled: true # 開啟饑餓加載
clients: # 指定饑餓加載服務
- userservice