負載均衡:Nginx 和 Ribbon 區別


負載均衡:將用戶請求分攤到服務器或者服務接口

通俗地說說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 #配置規則 最空閑連接策略


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM