首页 > 系统相关 >Ribbon与Nginx的区别

Ribbon与Nginx的区别

时间:2023-07-13 23:44:50浏览次数:34  
标签:负载 服务 区别 Nginx 服务端 均衡 Ribbon

一、Ribbon与Nginx的区别

我们知道负载均衡有硬件负载均衡与软件的负载均衡方案

硬件负载均衡:比如 F5、深信服、Array 等; 软件负载均衡:比如 Nginx、LVS、HAProxy 等; 硬件负载均衡或是软件负载均衡,他们都会维护一个可用的服务端清单,通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。当客户端发送请求到负载均衡设备的时候,该设备按某种算法(比如轮询、权重、 最小连接数等)从维护的可用服务端清单中取出一台服务端的地址,然后进行转发。

Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,是一个基于HTTP和TCP的客户端负载均衡工具。

Ribbon与Nginx的区别

Nginx是基于服务端的负载均衡,客户端所有请求统一交给 nginx,由 nginx 进行实现负载均衡请求转发,Nginx保持服务清单的同时,也负责负载均衡算法

Ribbon是从 eureka 注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略,Ribbon不负责出来服务清单,

 

二、Ribbon负载均衡策略

Ribbon提供七种负载均衡策略

RandomRule 随机
RoundRobinRule 轮询
AvailabilityFilteringRule 先过滤掉由于多次访问故障的服务,以及并发连接数超过阈值的服务,然后对剩下的服务按照轮询策略进行访问;
WeightedResponseTimeRule 根据平均响应时间计算所有服务的权重,响应时间越快服务权重就越大被选中的概率即越高,如果服务刚启动时统计信息不足,则使用RoundRobinRule策略,待统计信息足够会切换到该WeightedResponseTimeRule策略;
RetryRule 先按照RoundRobinRule策略分发,如果分发到的服务不能访问,则在指定时间内进行重试,分发其他可用的服务;
BestAvailableRule 先过滤掉由于多次访问故障的服务,然后选择一个并发量最小的服务;
ZoneAvoidanceRule 综合判断服务节点所在区域的性能和服务节点的可用性,来决定选择哪个服务;

三、Ribbon实现方式

由于Spring Cloud Ribbon的封装, 我们在微服务架构中使用客户端负载均衡调用非常简单, 只需要如下两步:

  • 启动多个服务提供者实例并注册到一个服务注册中心或是服务注册中心集群。

  • 服务消费者通过被@LoadBalanced注解修饰过的RestTemplate来调用服务提供者。 这样,我们就可以实现服务提供者的高可用以及服务消费者的负载均衡调用。

四、SpringCloud中的使用

在SpringCloud中 Feign中集成了Ribbon,会自动使用负载均衡。

fallback是自定义异常熔断类,声明后的接口出现异常时,会自动执行服务降级



作者:MobotStone
链接:https://www.jianshu.com/p/49b3a22dbec9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:负载,服务,区别,Nginx,服务端,均衡,Ribbon
From: https://www.cnblogs.com/huigui-mint/p/17552502.html

相关文章

  • 制作nginx的RPM包
    使用nginx-1.22.1版本的源码软件,生成对应的RPM包软件,具体要求如下:软件名称为nginx软件版本为1.22.1RPM软件包可以查询描述信息RPM软件包可以安装及卸载 方案:安装rpm-build软件包,编写SPEC配置文件,创建新的RPM软件包。步骤一:安装rpm-build软件1)安装rpm-build软件包[roo......
  • navicat中数据传输、数据同步、结构同步的区别
    数据传输:表数据和结构一起同步(之前的数据会被覆盖)数据同步:表数据同步、表结构不同步(之前数据被覆盖(所有字段全部选择的情况下),数据同步时可选择要同步的数据(之前的可不覆盖,只同步新增的))结构同步:表数据不同步、表结构同步 注意:无论是数据传输、数据同步、结构同步都容易造成同......
  • nginx: [emerg] unknown directive "ngx_fastdfs_module" in /usr/local/src/nginx-1.
    一、问题说明:搭建fastDFS集群时,提示错误信息为:nginx:[emerg]unknowndirective"ngx_fastdfs_module"in/usr/local/src/nginx-1.10.0/conf/nginx.conf:52        通过分析加载fastdfs模块出错二、配置完信息后在,执行nginx-V  发现没有fastdfs的相关内......
  • consul 使用总结 & Nginx 负责均衡,最大连接数据,超时次数,超时等待时间,权重
    consul使用总结&Nginx负责均衡,最大连接数据,超时次数,超时等待时间,权重consulagnet-dev启动consul启动服务,注册服务:dotnetOrderServer.dll--urls="http://:5189"--ip="127.0.0.1“--port=5189dotnetOrderServer.dll--urls="http://:5188"--ip="127.0.0......
  • nginx安装及配置
    ......
  • nginx部署 vue3 同时 配置接口代理(详细)
    Vue项目配置.env文件在项目根目录下创建文件夹(.env.production)##.env.production生产环境配置VUE_APP_SYS_URL=sysapi##nginx需要用的的代理表示VUE_APP_MODE=product##模式baseUrl使用VUE_APP_SYS_URL变量代替Nginx下载部署和配置api代理Nginx下载......
  • Docker Nginx安装使用以及踩坑点总结
    拉取nginx镜像dockerpullnginx:latest运行镜像暂时不需要配置volume挂载dockerrun--namenginx-p80:80-dnginx参数详解:--namenginx指定容器的名称-p80:80映射端口-d守护进程运行创建volume目录mkdir-p/www/nginx/conf.dmkdir-p/www/nginx/htmlmkd......
  • Nginx:client_body_temp_path 指令的上传文件测试
    结论硬盘必须要有上传文件3倍大小的剩余空间。否则会报错“nospaceleftondevice”。需要注意,这3份数据都会写到硬盘。大文件上传,实时观察硬盘剩余空间watch-n0.1"df-hm/",会看到很大的波动。默认临时文件路径文档Syntax: client_body_temp_pathpath[level1[lev......
  • ubuntu apt安装最新稳定版nginx
    适用于apt安装,根据自身系统可更改命令#!/bin/bash#下载安装nginxkeywgethttp://nginx.org/keys/nginx_signing.key-P/root/script/download#安装keysudoapt-keyadd/root/script/download/nginx_signing.key#添加源release_name=`lsb_release-c|awk-F''......
  • Java 继承、super() 关键字使用、super 和 this的区别
    Java继承、super()关键字使用、super和this的区别1.继承继承是子类使用extends关键字来继承父类获取相同的属性和方法,可以解决代码的复用性问题继承的基本思想:父类的构造器进行父类初始化,子类的构造器进行子类的初始化继承使用细节:子类在使用父类的方法或属性时,不能......