返回顶部

负载均衡: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 #配置规则 最空闲连接策略
posted @ 2021-11-09 22:43  凑数的园丁  阅读(1487)  评论(0编辑  收藏  举报