负载均衡

分布式架构浅谈

╄→尐↘猪︶ㄣ 提交于 2019-11-28 10:56:48
http://homeway.me/ 0x01.大型网站演化 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster,nginx即可实现),科学计算集群(High Performance Computing Cluster)。 分布式是指将不同的业务分布在不同的地方;而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 之前在网上看到一篇关于大型网站演化的博客。 http://www.cnblogs.com/leefreeman/p/3993449.html 每个大型网站都会有不同的架构模式,而架构内容也就是在处理均衡负载,缓存,数据库,文件系统等,只是在不同的环境下,不同的条件下,架构的模型不一样,目的旨在提高网站的性能。 最初的架构只有应用程序,数据库,文件服务。 到后来,分布式服务、集群架设。 0x02.关于均衡负载方案 在上一篇, 《Nginx反向代理实现均衡负载》 讨论过过的nginx现实均衡负载方案,这里选择另一种HAProxy+Keepalived双机高可用均衡负载方案。 HAProxy是免费

安装nginx,配置负载均衡和添加状态监测的nginx_upstream_check_module模块

非 Y 不嫁゛ 提交于 2019-11-28 10:51:34
1.安装所需依赖 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel ### 2.安装pcre, nginx_upstream_check_module PCRE 作用是让 Ngnix 支持 Rewrite 功能。 ####**2.1 下载pcre ** wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz ####**2.2 解压pcre ** tar zxvf pcre-8.35.tar.gz #### 2.2 编译和安装 cd pcre-8.35 ./configure make && make install ####**3.1 下载nginx_upstream_check_module ** nginx_upstream_check_module 的项目在github 上,我是安装了git之后clone下来 yum install -y git git clone https://github.com/yaoweibin/nginx_upstream_check_module.git ####**4.1 下载nginx ** 试了下最新稳定版1.10.1,却配置不成功

轻量级HTTP服务器Nginx(常用配置实例)

末鹿安然 提交于 2019-11-28 10:43:27
Nginx 作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apache的所有功能,下面就介绍一些Nginx常用的配置实例,具体包含虚拟主机配置、负载均衡配置、防盗链配置以及日志管理等。 一、虚拟主机配置实例 下面在Nginx中创建三个虚拟主机,需要说明的是,这里仅仅列出了虚拟主机配置部分。 http { server { listen 80; server_name www.domain1.com; access_log logs/domain1.access.log main; location / { index index.html; root /web/www/domain1.com/htdocs; } } server { listen 80; server_name www.domain2.com; access_log logs/domain2.access.log main; location / { index index.html; root /web/www/domain2.com/htdocs; } } include /opt/nginx/conf/vhosts/www.domain2.com.conf; } 这里用到了include指令,其中/opt/nginx/conf/vhosts/www

大型网站架构系列:负载均衡详解[转]

痴心易碎 提交于 2019-11-28 10:18:41
一、软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文参考大量文档,部分为直接拷贝,参考出处文末。 二、Ngnix负载均衡 Ngnix是一款轻量级的Web服务器/反向代理服务器,工作在七层Http协议的负载均衡系统。具有高性能、高并发、低内存使用等特点。是一个轻量级的Http和反向代理服务器。Nginx使用epoll and kqueue作为开发模型。能够支持高达 50,000 个并发连接数的响应。 操作系统:Liunx,Windows(Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows) 开发语言:C 并发性能:官方支持每秒5万并发,实际国内一般到每秒2万并发,有优化到每秒10万并发的。具体性能看应用场景。 2.1.特点 1.模块化设计:良好的扩展性,可以通过模块方式进行功能扩展。 2.高可靠性:主控进程和worker是同步实现的,一个worker出现问题,会立刻启动另一个worker。 3.内存消耗低:一万个长连接(keep-alive),仅消耗2.5MB内存。 4.支持热部署:不用停止服务器,实现更新配置文件,更换日志文件、更新服务器程序版本。 5.并发能力强

负载均衡(Load Balance)

血红的双手。 提交于 2019-11-28 08:31:48
负载均衡,满足高可用,即HA, (High Available) 硬负载 --> H5,Array等 软负载 轮询: 作为非常经典的负载均衡策略,早期该策略应用地非常广泛。其原理很简单,给每个请求标记一个序号,然后将请求依次派发到服务器节点中,适用于集群中各个节点提供服务能力等同且无状态的场景。其缺点也非常明显,该策略将节点视为等同,与实际中复杂的环境不符。加权轮询为轮询的一个改进策略,每个节点会有权重属性,但是因为权重的设置难以做到随实际情况变化,仍有一定的不足 随机: 与轮询相似,只是不需要对每个请求进行编号,每次随机取一个。同样地,该策略也将后端的每个节点是为等同的。另外同样也有改进的加权随机的算法,不再赘述 最小响应时间: 通过记录每次请求所需的时间,得出每台服务器的平均的响应时间,然后根据响应时间选择出最小的响应时间的服务器该策略能较好地反应服务器的状态,但是由于是平均响应时间的关系,时间上有些滞后,无法满足快速响应的要求。因此在此基础之上,会有一些改进版本的策略,如只计算最近若干次的平均时间的策略等 最小并发数: 记录了当前时刻,每个备选节点正在处理的事务数,然后选择并发数最小的节点。该策略能够快速地反应服务器的当前状况,较为合理地将负责分配均匀,适用于对当前系统负载较为敏感的场景 哈希 来源: https://blog.csdn.net/xuanyuanjiaqi

Docker 搭建简单 LVS

走远了吗. 提交于 2019-11-28 08:22:14
LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。 三种工作模式的解析 基于NAT的LVS模式负载均衡 NAT(Network Address Translation)即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有IP地址可以访问外网,以及外部用用户可以访问位于公司内部的私有IP主机。VS/NAT工作模式拓扑结构如图2所示,LVS负载调度器可以使用两块网卡配置不同的IP地址

Spring Cloud——Eureka和Feign

两盒软妹~` 提交于 2019-11-28 07:39:15
1 Eureka 注册中心 1.1 需求分析 在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 1.2 为什么要用注册中心? 1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和端口。 2、微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在问题的服务踢出服务列表,客户端获取到可用的服务进行调用。 1.3 Eureka注册中心 1.3.1 Eureka介绍 Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它实现了服务治理的功能,Spring Cloud Eureka提供服务端与客户端,服务端即是Eureka服务注册中心,客户端完成微服务向Eureka服务的注册与发现。服务端和客户端均采用Java语言编写。下图显示了Eureka Server与Eureka Client的关系: Eureka Server是服务端,负责管理各各微服务结点的信息和状态。 在微服务上部署Eureka Client程序,远程访问Eureka Server将自己注册在Eureka Server。 微服务需要调用另一个微服务时从Eureka Server中获取服务调用地址,进行远程调用。 1.3.2 Eureka

HAProxy介绍

Deadly 提交于 2019-11-28 07:23:56
文章目录 负载均衡简介 为什么使用负载均衡 负载均衡类型 应用场景 HAProxy简介 HAProxy功能 负载均衡简介 负载均衡(Load Balance,简称LB)是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展。 为什么使用负载均衡 Web服务器的动态水平扩展–>对用户无感知 增加业务并发访问及处理能力–>解决单服务器瓶颈问题 节约公网IP地址–>降低IT支出成本 隐藏内部服务器IP–>提高内部服务器安全性 配置简单–>固定格式的配置文件 功能丰富–>支持四层和七层,支持动态下线主机 性能较强–>并发数万甚至数十万 负载均衡类型 四层: 1、LVS(Linux Virtual Server) 2、HAProxy(High Availability Proxy) 3、Nginx() 七层: 1、HAProxy 2、Nginx 硬件: 1、F5 :https://f5.com/zh 2、Netscaler :https://www.citrix.com.cn/products/citrix-adc/ 3、Array :https://www.arraynetworks.com.cn/ 4、深信服

nginx负载均衡?

蹲街弑〆低调 提交于 2019-11-28 06:30:23
本文目录 1 什么是负载均衡? 2 HTTP重定向实现负载均衡 3 DNS负载均衡 4 反向代理负载均衡 5 负载均衡组件 回到目录 1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。 那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。 下面详细介绍负载均衡的四种实现方式 回到目录 2 HTTP重定向实现负载均衡 过程描述 当用户向服务器发起请求时,请求首先被集群调度者截获;调度者根据某种分配策略,选择一台服务器,并将选中的服务器的IP地址封装在HTTP响应消息头部的Location字段中,并将响应消息的状态码设为302,最后将这个响应消息返回给浏览器。 当浏览器收到响应消息后,解析Location字段,并向该URL发起请求,然后指定的服务器处理该用户的请求,最后将结果返回给用户。 在使用HTTP重定向来实现服务器集群负载均衡的过程中,需要一台服务器作为请求调度者。用户的一项操作需要发起两次HTTP请求,一次向调度服务器发送请求,获取后端服务器的IP,第二次向后端服务器发送请求,获取处理结果。 调度策略

Nginx的负载均衡策略

元气小坏坏 提交于 2019-11-28 06:24:20
Nginx的负载均衡分为4种   1.轮询:请求到达先后顺序,轮询可用节点及其   2.权重:按照比例分配,能者多劳   3.ip_hash黏着:按照ip地址与服务器中可用的节点做数模运算,进行绑定   4.least_conn:最小的连接数 请求最少优先分配 来源: https://www.cnblogs.com/ruirui8023/p/11397192.html