负载均衡

浅谈web架构之架构设计

心不动则不痛 提交于 2019-11-29 08:01:55
前言 题目有点大,所以不可能说得非常具体,笔者也不能驾驭全部。 前面介绍过 网站发展过程中架构的演化过程 ,本文主要针对网站架构各个方面的建设进行简单介绍。 架构模式 先来说说模式: 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地用该方案而不必做重复工作 。 先来说说常见的网站架构模式。这里没有涉及具体实现过程,只是简单介绍其思想和原理,方便日后有用到再深入了解。 分层 分层是企业应用系统中最常见的一种架构模式,将系统在 横向维度 上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后 通过上层对下层的依赖和调用 组成一个完整的系统。 分层 功能 应用层 负责具体业务和视图展示,如网站首页以及搜索输入和结果展示 服务层 为应用层提供服务支持,如用户管理服务,购物车服务 数据层 提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等 分层架构 还可以细分下去 ,比如说应用层可以细分为视图层和业务逻辑层。服务层可以细分为数据接口层和逻辑处理层。 分层结构对网站支持高并发向分布式发展至关重要,所以 在网站规模很小的时候就应该采用分层的架构,这样将来网站做大时才能有更好地应对 。 所以说我们在设计一个新项目的架构时,就需要考虑到分层。不能等到日后项目做大了,再重构就耗时耗力了。 分割 上面的分层是将软件在横向方面进行切分,而分割是在

Nginx+Tomcat实现负载均衡群集实例,可跟做!!!

谁说胖子不能爱 提交于 2019-11-29 07:24:06
通常情况下一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独用于生产环境。所以我们就需要一套更可靠的解决方案来完善Web站点架构。 Nginx是一款非常优秀的HTTP服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定、并且内存、CPU等系统资源消耗非常低。目前的很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。 案例环境 案例实施 (1)安装部署Tomcat 1服务 [root@localhost ~]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/src [root@localhost ~]# mv /usr/src/apache-tomcat-8.5.16/ /usr/local/tomcat8 [root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml …………………… //省略部分内容 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> //host定义一个虚拟主机,域名为localhost,appBase定义应用程序基准目录

大型站点高并发架构技术

社会主义新天地 提交于 2019-11-29 07:08:27
大型站点高并发架构技术 高并发: 高并发主要是由于网站PV访问量大,单台服务器涌承载大量访问所带来的压力,所以会采用多台服务器进行分流,采用服务器集群技术,对于每个访问会被发送到哪台服务器,我们采取负载均衡策略,常见的技术有LVS,由于网站中有大量的静态页面,所以采用缓存服务器和反向代理技术,包括HAPROXY,REDIS,数据库可以采用数据库集群,进行读写分离,缓解数据库压力。 大型站点高并发架构就是利用负载均衡技术、反向代理技术、数据库集群、web服务器集群、Nosql技术等,以实现单台数据器不能达到的并发量,换句话说就是用一群屌丝代替一个高富帅。 1.大型站点高并发架构是为了解决百万千万级PV带来的性能瓶颈。 2.出现高并发架构的原因是大型网站发现在巨量pv下买更多更好的服务器已经无法简单的解决问题,只能从架构 上想办法来,充分发挥设备的效能。 3. 高可用解决方案(corosync,pacemaker,KeepAlived)负载均衡(LVS)缓存服务(Varnish)反向代理(haproxy)web服务器(Apache,Nginx,Tomcat)站点架构(Lamp,Lnmp) 什么是大型站点 大型站点高并发架构。首先,什么是大型站点,大型站点至少有两个特点(1)访问量大,淘宝的每日PV有几十亿(2)后台服务器多,淘宝后台服务器据说有十多万台。然后,大型网站的高并发架构

Nginx 极简入门教程!(转)

℡╲_俬逩灬. 提交于 2019-11-29 07:07:25
基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP / POP3 / SMTP 服务。 Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler . ru 站点开发的,第一个公开版本 0.1 . 0 发布于 2004 年 10 月 4 日。 Nginx 特点是占有内存少,并发能力强。 事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,一般来说,如果我们在项目中引入了 Nginx ,我们的项目架构可能是这样: 在这样的架构中 , Nginx 所代表的角色叫做负载均衡服务器或者反向代理服务器,所有请求首先到达 Nginx 上,再由 Nginx 根据提前配置好的转发规则,将客户端发来的请求转发到某一个 Tomcat 上去。 那么这里涉及到两个概念: 负载均衡服务器 就是进行请求转发,降低某一个服务器的压力。负载均衡策略很多,也有很多层,对于一些大型网站基本上从 DNS 就开始负载均衡,负载均衡有硬件和软件之分,各自代表分别是 F5 和 Nginx (目前 Nginx 已经被 F5 收购),早些年,也可以使用 Apache 来做负载均衡,但是效率不如 Nginx ,所以现在主流方案是 Nginx 。 反向代理服务器: 另一个概念是反向代理服务器,要说反向代理,得先说正向代理,看下面一张图: 在这个过程中

LVS负载均衡的几种模式和算法

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

会话保持

痞子三分冷 提交于 2019-11-29 06:41:04
1. 什么是会话保持? 会话保持是指在负载均衡服务器上的一种机制,可以识别客户端与服务器之间交互过程的关联性,将同一客户端的会话请求转发给同一个后端服务器处理。 2. 会话保持的类型 (1)四层服务(TCP协议),负载均衡系统是基于源IP地址的会话保持。 负载均衡服务器根据访问请求的源IP地址作为判断关联会话的依据,对来自同一IP地址的所有访问请求在负载均衡时都会被转发到同一台服务器上。 (2)七层服务(HTTP/HTTPS协议),负载均衡系统是基于 cookie 的会话保持。可使用植入 cookie 和重写 cookie 来进行会话保持。 植入 cookie 指定 cookie 的过期时间。客户端第一次访问时,负载均衡服务在 HTTP 响应报文中插入SERVERID,下次客户端携带此 cookie 访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。 重写 cookie 指定 HTTP 响应报文中插入的 cookie。需要在后端服务器上维护该 cookie 的过期时间和生存时间。负载均衡服务发现用户自定义了cookie,将会对原来的cookie进行重写,下次客户端携带新的cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。 来源: https://www.cnblogs.com/yutb/p/11460646.html

zookeeper与dubbo的关系

时光怂恿深爱的人放手 提交于 2019-11-29 06:23:57
dubbo中 服务提供者注册到zookeeper, 简单举个例子,比如说在一个订单系统中,有很多个的子系统,如微信,app,网页,等服务。这些服务中总是有些接口是统一的,比如支付接口,这时候我们就只需要编写一个通用的服务,通过dubbo来作为消费者提供服务,但是如果这台机子宕机了,那么系统就无法支付了,我们需要一个负载均衡的功能,提供多个通用服务,我们利用zookeeper,将消费服务注册到zookeeper中,将服务的url地址注册到zookeeper上面。那么就实现了负载均衡的功能。 来源: https://my.oschina.net/u/4189935/blog/3101826

springcloud基础理论学习三

守給你的承諾、 提交于 2019-11-29 06:20:23
参考转载原文链接: https://baijiahao.baidu.com/s?id=1621651597363566701&wfr=spider&for=pc springcloud springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。 通过一些简单的注解,我们就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。 SpringCloud的组件相当繁杂,拥有诸多子项目。重点关注Netflix 图片来源@王璐-Louise。我是画不出来这么美的图的。。。 springcloud的版本说明: springcloud项目是由多个独立项目集合而成的,每个项目都是独立的,各自进行自己的迭代和版本发布。所以springcloud不方便使用版本号来管理,而是使用版本名。以避免和子项目版本号的冲突。 版本名的来源是伦敦的地铁站名,以字母排序。比如最早的Release版本为Angel,第二个Release版本为Brixton。 当一个版本的update积累的比较多或者解决了一个严重bug时,会发布一个ServiceRelease版本,简称SR,后面带的数字就是该大版本下的第一次发布。 从官网上看,springcloud的F版本是基于springboot的2.0.x构建

除了负载均衡,Nginx 还可以做很多

本小妞迷上赌 提交于 2019-11-29 06:17:28
Nginx应该是现在最火的web和反向代理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现。 那除了负载均衡,她还有什么其他的用途呢,下面我们来看下。 一、静态代理 Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好。 二、负载均衡 Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。 常用的负载均衡策略有: 1、轮询 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。 2、加权轮询 不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。 给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。 3、ip_hash(源地址哈希法) 根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问服务器的序号。 采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

久未见 提交于 2019-11-29 06:12:01
架构简介 此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP。正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的 Nginx ,nginx对于静态资源请求就直接在本机检索并返回,对于 PHP 的动态请求,则负载均衡到server1和server2。对于SQL请求,会将此类请求发送到Atlas mysql 中间件,Atlas接收到请求之后,把涉及写操作的请求发送到内网VIP,读请求操作发送到server2,这样就实现了读写分离。 当主服务器server1宕机时,keepalived检测到后,立即把外网VIP和内网VIP绑定到server2,并把server2的mysql切 换成主库。此时由于外网VIP已经转移到了server2,web请求将发送给server2的nginx。nginx检测到server1宕机,不再把 请求转发到server1的 php -fpm。之后的sql请求照常发送给本地的atlas,atlas把写操作发送给内网VIP,读操作发送给server2 mysql,由于内网VIP已经绑定到server2了,server2的mysql同时接受写操作和读操作。 当主服务器server1恢复后,keepalived不抢占server2的VIP,继续正常服务