負載均衡:將用戶請求分攤到服務器或者服務接口
通俗地說說Nginx 和 Ribbon 區別
- Ribbon客戶端負載均衡,多個服務接口集群,通過Ribbon負載均衡策略,調用其中一個服務接口。
- Nginx是服務端負載均衡,部署多台功能相同的服務器,通過Nginx負載均衡策略,會把請求轉發給其中一台服務器。
Ribbon開始
-
之前服務提供方集群已經實現輪詢式負載均衡,卻沒有引入依賴,是因為
-
負載均衡策略
-
負載均衡策略使用,不能在啟動類包或者子包
package cn.demo.myrule;
@Configuration
public class MyselfRule {
@Bean
public IRule myRule(){
return new RandomRule();
}
}
//主啟動類注解
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MyselfRule.class)
- 負載均衡算法了解,能力有限暫時跳過。。。
- 輪詢
- 輪詢
Feign 開始
- 依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
//主啟動類注解
@EnableFeignClients
//服務層接口,指定服務名CLOUD-PAYMENT-SERVICE
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
@GetMapping("/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id") Integer id);
}
-
超時設置:
默認時間 1 秒
-
日志
logging:
level:
#日志要監控的接口 : 級別
cn.demo.springcloud.service.PaymentFeignService: debug
- 負載均衡策略
CLOUD-PAYMENT-SERVICE:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #配置規則 隨機
com.netflix.loadbalancer.RoundRobinRule #配置規則 輪詢
com.netflix.loadbalancer.RetryRule #配置規則 重試
com.netflix.loadbalancer.WeightedResponseTimeRule #配置規則 響應時間權重
com.netflix.loadbalancer.BestAvailableRule #配置規則 最空閑連接策略