负载均衡

nignx 负载均衡的几种算法介绍

巧了我就是萌 提交于 2019-11-25 22:45:36
一、Nginx负载均衡算法 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。 2、weight(轮询权值) weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。 3、ip_hash 每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。 4、fair 比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间 来分配请求,响应时间短的优先分配。Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。 5、url_hash 按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。 一、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 二、weight 指定轮询几率,weight和访问比率成正比

Nginx负载均衡

我的未来我决定 提交于 2019-11-25 21:28:31
Nginx负载均衡 配置     首先需要配置定义一个server组:backend,用来表示所有存在的后台服务,然后将所有的流量重定向到http://backend,将这个Nginx示例上的所有流量重定向到定义的backend上,大致内容如下: http { upstream backend { server backend1.example.com; server backend2.example.com; server 192.0.0.1 backup; } server { location / { proxy_pass http://backend; } } }     其中还有很多的细节,比如权重和负载均衡算法,下面的参考链接中已有详细的说明,自行点击查看。 参考链接 NGINX 负载均衡 Nginx配置文件实例及说明 nginx服务器安装及配置文件详解 来源: https://www.cnblogs.com/freedom-only/p/11314474.html

近来被困扰的概念问题

試著忘記壹切 提交于 2019-11-25 21:03:28
近来总是被一些概念困扰,让我很不理解。经过查阅文档和自己动手操作,自己将他们整理归纳了一下。 高可用,负载均衡,分布式的概念 总结: 高可用:一台服务器宕机后,服务可以继续使用以及不丢失数据。主要目的就是稳定,其核心就是冗余+故障转移。 负载均衡:负载均衡算法(轮询,随机,哈希,权重等)来分发请求到不同的主服务器。主要目的就是分压抗并发。 分布式:就是各个服务器实现不同的功能(分布式不一定集群)。主要目的就是各司其职和抗压。 高并发:垂直扩展,水平扩展 来源: https://blog.csdn.net/t_fengyun/article/details/98735431

F5负载均衡上使用iRule 来选择SNAT pool

◇◆丶佛笑我妖孽 提交于 2019-11-25 20:13:23
需求: 使用iRule 根据不同目的地址或端口,来选择SNAT 地址 ,实现相同的后台节点,访问不同目的地址或者目的端口时,源地址也会不同; 网络概况: 内网: 后台节点server:192.168.10.71 对应VLAN: Internal-selfIP: 192.168.10.1 外网: 客户端client: 172.16.10.172 对应VLAN: external-selfIP: 172.16.10.1 1.需求一: 负载均衡功能(client访问server) 解决方案1、 新建virtual server :http_VS: 172.16.10.100:80 VS关联一个负载均衡pool: Pool member: 192.168.10.71:80 2.需求二: SNAT功能(server访问client),一个或多个内网节点转换成一个源地址; 解决方案1、 新建SNAT :out_snat: 172.16.10.71 snat out_snat { translation 172.16.10.71 origin 192.168.10.71 //只允许一台机器出向访问 } 解决方案2、 snat out_snat2 { translation 172.16.10.250 origin 0.0.0.0 mask 0.0.0.0 //允许所有的机器出向访问 }

分布式系统常见负载均衡算法及其nginx实现

情到浓时终转凉″ 提交于 2019-11-25 18:48:03
一、概要 随着系统日益庞大、逻辑业务越来越复杂,系统架构由原来的单一系统到垂直系统,发展到现在的分布式系统。分布式系统中,可以做到公共业务模块的高可用,高容错性,高扩展性,然而,当系统越来越复杂时,需要考虑的东西自然也越来越多,要求也越来越高,比如服务路由、负载均衡等。此文将针对负载均衡算法进行讲解,不涉及具体的实现。 二、负载均衡算法 在分布式系统中,多台服务器同时提供一个服务,并统一到服务配置中心进行管理,消费者通过查询服务配置中心,获取到服务到地址列表,需要选取其中一台来发起RPC远程调用。如何选择,则取决于具体的负载均衡算法,对应于不同的场景,选择的负载均衡算法也不尽相同。负载均衡算法的种类有很多种,常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法、Latency-Aware等,应根据具体的使用场景选取对应的算法。 1、轮询(Round Robin)法 轮询很容易实现,将请求按顺序轮流分配到后台服务器上,均衡的对待每一台服务器,而不关心服务器实际的连接数和当前的系统负载。使用轮询策略的目的是,希望做到请求转移的绝对均衡,但付出的代价性能也是相当大的。为了保证pos变量的并发互斥,引入了重量级悲观锁synchronized,将会导致该轮询代码的并发吞吐量明显下降。 轮询法适用于机器性能相同的服务,一旦某台机器性能不好,极有可能产生木桶效应

SpringCloud面试题及答案

筅森魡賤 提交于 2019-11-25 16:59:46
1. 什么是 spring cloud? spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。 2. spring cloud 断路器的作用是什么? 在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。 3. spring cloud 的核心组件有哪些? Eureka:服务注册于发现。 Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。 Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。 Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。 Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。 4. SpringCloud和Dubbo SpringCloud和Dubbo都是现在主流的微服务架构