负载均衡

Nginx 的总结

こ雲淡風輕ζ 提交于 2019-12-10 19:05:55
目录 Nginx 的产生 Nginx 的用武之地 Web 服务器对比 Nginx 的产生 Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提供各种网络服务。 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个 Web 服务器有着各自鲜明的特点。 Apache 的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等。 它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。 它不支持高并发的服务器。在 Apache 上运行数以万计的并发访问,会导致服务器消耗大量内存。 操作系统对其进行进程或线程间的切换也消耗了大量的 CPU 资源,导致 HTTP 请求的平均响应速度降低。 这些都决定了 Apache 不可能成为高性能 Web 服务器,轻量级高并发服务器 Nginx 就应运而生了。 俄罗斯的工程师 Igor Sysoev,他在为 Rambler Media 工作期间,使用 C 语言开发了 Nginx。

负载均衡5中算法实现

天大地大妈咪最大 提交于 2019-12-10 13:19:48
前言:   负载均衡是为了解决并发情况下,多个请求访问,把请求通过提前约定好的规则转发给各个server。其中有好几个种经典的算法。在用java代码编写这几种算法之前,先来了解一下负载均衡这个概念。 1.概念 负载,从字面意思可以分析,是指后端server可以承受的压力。这个一方面是服务器的性能,另一方面就是代码的质量了。 均衡,就是说把服务部署在多态server,如何调度这些资源。根据服务器性能不同,进行一个权衡。 当web访问量增加,服务器性能不同,更好的去利用服务器,我们需要负载均衡算法。 2.几种负载均衡算法简介 主要的负载均衡算法是图中这些,在代码实现之前,我们先简单回顾一下他们的概念。 轮询法: 轮询算法按顺序把每个新的连接请求分配给下一个服务器,最终把所有请求平分给所有的服务器。 优点:绝对公平 缺点:无法根据服务器性能去分配,无法合理利用服务器资源。 加权轮询法: 该算法中,每个机器接受的连接数量是按权重比例分配的。这是对普通轮询算法的改进,比如你可以设定:第三台机器的处理能力是第一台机器的两倍,那么负载均衡器会把两倍的连接数量分配给第3台机器。加权轮询分为:简单的轮询、平滑的轮询。 什么是平滑的轮询,就是把每个不同的服务,平均分布。在Nginx源码中,实现了一种叫做平滑的加权轮询(smooth weighted round-robin balancing)的算法

Centos 7之LVS负载均衡群集

妖精的绣舞 提交于 2019-12-10 12:33:35
博文目录 一、LVS群集应用基础 二、LVS虚拟服务器 三、搭建NFS共享存储服务 一、LVS群集应用基础 根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋。然而从整体上来看,需要先了解一些关于群集的共性特征,这样才能在构建和维护群集的工作中做到心中有数,避免操作上的盲目性。 1、群集的类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集所针对的目标差异,可以分为以下三种类型。 负载均衡群集(Load Balance Cluster):以提高应用系统的响应能力、尽可能处理更多的访问请求、较少延迟为目的,获得高并发、高负载的整体性能。例如,“DNS轮询” 、“应用层交换”、“反向代理”等都可用做负载均衡群集。LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。 高可用群集(High Availability Cluster):以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果,例如,“故障切换”。“双机热备”、“多机热备”、等都属于高可用群集技术,HA的工作方式包括双工和主从两种模式。双工就是所有节点同时在线;主从则只有主节点在线

【微服务架构】分布式服务框架调研

谁说胖子不能爱 提交于 2019-12-10 12:17:36
介绍 分布式服务框架是面向服务架构的基石,是解耦子系统的利刃。核心实现是RPC(远程过程调用),但又不仅限于RPC,因为一个系统的高效、稳定、可靠的运行还需要依赖于服务管理发现、服务部署运行监控跟踪等辅助系统的支撑。在一个大型系统中,服务化之后服务的可维护、可管理、可监控以及高可用、负载均衡等因素同服务本身同样重要,这一点业内已经形成了共识。 目前主要使用的是Thriftpool以及Hedwig,除此之外,业内知名的几个服务框架还包括: Finagle -- Twitter开发并开源,专为JVM设计的一个可扩展的RPC系统,其核心的组件包括Future、Service以及Filter; Dubbo -- 阿里开发贡献的一个开源项目,是一个高性能分布式服务框架,它主要由三个核心部分组成:Remoting:提供远程调用的网络通信框架;集群:抽象出具有负载均衡、故障转移等集群能力;注册中心:一个服务注册框架,提供服务事件的发布订阅 Sofa-PBRPC -- 是一个轻量级的,基于Protobuf实现的一个RPC框架,由百度开发并开源,仅支持C++ Motan -- 新浪微博的RPC框架,序列化接口可扩展、具有集群方案,不开源 Poppy -- 腾讯基于Protocol Buffer的网络通信解决方案,除了RPC方式的编程接口之外,也具有集群方案,支持服务监控、调试

dubbo-负载均衡

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-10 11:04:16
文档中配置: http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html 属性配置: http://dubbo.apache.org/zh-cn/docs/user/configuration/properties.html 来源: https://www.cnblogs.com/cgy-home/p/12015332.html

Nginx-配置负载均衡实例

前提是你 提交于 2019-12-10 10:16:59
配置负载均衡实例 实现效果: 配置负载均衡 实验代码 1) 首先准 备两个同时启动的 Tomcat 2) 在 nginx.conf 中进行配置 随着互联网信息的爆炸性增长,负载均衡( load balance )已经不再是一个很陌生的话题 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中的一个,在 linux 下有 Nginx 、 LVS 、 Haproxy 等等服务可以提供负载均衡服 务,而且 Nginx 提供了几种分配方式 策略: 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight weight代表权 重默认为 1, 权重越高被分配的客户端越多 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream server_pool{ server 192.168.5.21 weight=10; server 192.168.5.22 weight=10; } 3、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器

Spring Cloud第四篇 | 客户端负载均衡Ribbon

痴心易碎 提交于 2019-12-10 10:12:59
​ 本文是Spring Cloud专栏的 第四篇 文章,了解 前三篇 文章内容有助于更好的理解本文: ​Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 Spring Cloud第三篇 | 搭建高可用Eureka注册中心 一、Ribbon是什么 Ribbon是一个基于HTTP和TCP的客户端负载均衡器,当使用Ribbon对服务进行访问的时候,他会扩展Eureka客户端的服务发现功能,实现从Eureka注册中心获取服务端列表,并通过Eureka客户端来确定服务端是否已经启动。Ribbon在Eureka客户端服务发现的基础上,实现对服务实例的选择策略,从而实现对服务的负载均衡消费。负载均衡在系统架构中是一个非常重要的内容,因为负载均衡是对系统的高可用、网络的压力的缓冲和处理能力扩容的重要手段之一,我们通常说的负载均衡都是指的是服务端的负载均衡,其中分为硬件负载均衡和软件负载均衡。 硬件负载均衡: 主要通过服务器节点之间安装专门用于负载均衡的设备,比如F5,深信服,Array等。 软件负载均衡: 则是通过服务器上安装一些具有负载功能或模块的软件来完成请求分发工作,比如Nginx、LVS、HAProxy等。 硬件负载均衡的设备或是软件负载均衡的软件模块都会维护一个下挂可用的服务端清单

nginx+keepslived双主备负载均衡

隐身守侯 提交于 2019-12-10 10:09:54
https://blog.51cto.com/13438667/2125166 还有单纯的主备配置的很全可以看看,比老师的还好, https://www.jianshu.com/p/cf7601437ecc keepalived的脚本很厉害的,就像一个计划任务,然乎切换到另一台,好好用 这个是关于角色切换的 在网上查阅到的资料中,大都认为按照上述配置后可以完全符合预期中的4个点,不会出现MASTER节点服务检查失败后VIP不漂移的问题。但是实践是检验真理的唯一标准,配置nopreemt后,不仅是会让原MASTER节点服务恢复后不抢占,而是会完全的不选举新MASTER(从头到尾永远不切换,除非BACKUP认为当前集群中不存在MASTER, 才会重新选举),这样便可以解释出现的问题1和问题2了: 问题1的原因在于: 先启动的节点将自己选举为MASTER, 在收到其他节点的vrrp报文后不会按照优先级调整自己的角色; 后启动的节点收到了MASTER的vrrp报文,发现已经存在MASTER,由于不抢占,自动进入BACKUP状态; 问题2的原因在于: 设置了nopreempt, 永远不发生角色切换; ———————————————— 原文链接:https://blog.csdn.net/m0_37904728/article/details/89429310 https://blog

LVS工作原理及集群类型

雨燕双飞 提交于 2019-12-10 09:47:15
Cluster概念 Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster类型: LB:Load Balancing,负载均衡 HA:High Availiablity,高可用,SPOF(single Point Of failure) MTBF:Mean Time Between Failure 平均无故障时间 MTTR:Mean Time To Restoration( repair)平均恢复前时间 A=MTBF/(MTBF+MTTR) (0,1):99%, 99.5%, 99.9%, 99.99%, 99.999% HPC:High-performance computing,高性能 www.top500.org 分布式系统: 分布式存储: Ceph,GlusterFS,FastDFS,MogileFS 分布式计算:hadoop,Spark ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其 任务调度 则是集群系统中的核心技术。 ② 集群是一组 相互独立的、通过高速网络互联 的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。 ③ 集群组成后

12-2 12 Nginx 负载均衡 ssl

拈花ヽ惹草 提交于 2019-12-10 02:34:12
12.17 Nginx负载均衡 12.18 ssl原理 12.19 生成ssl密钥对 12.20 Nginx配置ssl 扩展 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端的web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 有时候一个域名可以通过多个IP解析,负载均衡就是代理对域名访问请求自动选择IP yum install -y bin-utils //安装dig命令 dig qq.com //挖掘qq.com域名的IP地址 vim /usr/local/nginx/conf/vhost/load.conf // 定义代理 ··· #以QQ举例,因为www.qq.com域名有多个IP #ip_hash让同一个来源的访问始终走向一个ip,从而保留用户信息 upstream qqxx { ip_hash; server 61.135.157.156:80; server 125.39.240.113:80; } server { listen 80; server_name www.qq.com; location / { proxy_pass http://qqxx; proxy_set_header Host $host; proxy