企业高并发的成熟解决方案(一)----搭建LVS负载均衡
企业整个架构分析

1. App服务器上边部署应用,如果是java的话,一般是tomcat;
2. 负载均衡服务器负责转发请求,这种既有主机又有备机的负载均衡成为高可用(HA);
3. 一般web服务器用tomcat,大公司追求稳定用weblogic;
4. 高并发发生在两处:(1)、两台负载均衡机器会出现并发问题;(2)、数据库的并发问题;
5. App服务器会出现的问题:

(1)、session如何共享;如何解决,3种解决方案;
a. 可以把用户的session放在cookie中(缺点:用户的session放在了浏览器中,不安全,下下策);
b. 可以把用户的session放在数据库中(缺点:网站是一个成千上万用户的网站,如果把session放在数据库中,会造成数据库压力太大,从而使网站不能正常运转,);
c. 可以把用户的session放在缓存服务器中(最好的解决方案,推荐两种缓存服务器:memcached/redis,memcached/redis必须是集群);
6. 数据库并发三大要求:(1)、随着业务量的不断增大,数据库承载能力也要增大;(2)、要求数据安全,不能丢失;(3)、要求支持备份+容灾;
7. hadoop集群的作用:

a. 通过sqoop将关系型数据库的数据导出到hdfs中;
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数 据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
b. 将hdfs中的数据经过MapReduce进行计算及处理;
c. 将处理完的结果数据写回hdfs文件系统;
d. 将结果数据导回关系型数据库中;
e. 用jchart生成图表;
4.分析完企业整体架构后,开始搭建负载均衡服务器,并演示效果
4.1搭建LVS负载均衡,场景描述:
开启四台Linux系统(Centos6.4)
第一台:负载均衡主机
第二台:负载均衡备机
第三台:真实服务器(http服务器)
第四台:真实服务器(http服务器)
http服务器是Apache公司的服务器,在linux系统上自带的,可以直接使用,方便快捷
4.2 准备开始搭建,搭建成功后,演示刚才说的那三个功能
4.2.1验证功能:
①转发功能
②故障移除的功能
③恢复添加的功能
④负载均衡主机关了,负载均衡备机是否接管它的工作
4.2.2 三种IP:
负载均衡IP:所在服务器IP
VIP:LVS这个软件的IP,正是我们要访问的IP
192.168.200.201 访问IP
真实服务器RIP(realIP)
4.2.3 IP分配
192.168.200.149: 负载均衡服务器
192.168.200.150: 负载均衡服务器
192.168.200.151: Http服务器
192.168.200.152: Http服务器

4.2.4 启动Http服务器
启动Http服务器命令:
service httpd start
//不关闭防火墙访问不了
查看防火墙的状态:
service iptable status
关闭防火墙:
service iptables stop
彻底关闭防火墙:
chkconfig iptables off
在浏览器中输入192.168.200.151,看服务器是不是启动成功。
((Http服务器应该不一样,转发的时候才能知道转发到哪里了
cd /var/www/html/
vim index.html
输入内容: I am http 151,保存退出))//修改主页
然后在两台真实服务器上添加接口,并设置虚拟IP在此接口上
在某一台真实服务器上:
#cd /etc/init.d/
#touch realserver
#vim realserver
粘贴内容,保存退出

chmod 755 realserver//赋予权限
service realserver start//启动服务
ifconfig查看,如果出现一个虚拟ip(lo:0 192.168.200.201),则说明启动成功
4.2.5 搭建负载均衡主机
安装keepalived软件
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人 工做的只是修复故障的web服务器。
安装keepalived软件命令:
rpm -ivh keepalived-版本号
查看软件安装在哪里:
rpm -ql keepalived-版本号
查找配置文件的位置,然后编辑配置文件:
vim /etc/keepalived/keepalived.conf
> /etc/keepalived/keepalived.conf (>可以用于清除内容)
vim /etc/keepalived/keepalived.conf,设置VIP和对应的真实服务器IP,
keepalived配置文件: /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
admin@jhonse.com #故障接受联系人
}
notification_email_from Alexandre.Cassen@firewall.loc #故障发送人
smtp_server 192.168.200.1 #本机发送邮件
smtp_connect_timeout 30 #BACKUP上修改为LVS_BACKUP
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改为BACKUP
interface eno16777736 #网卡接口名称
virtual_router_id 51 #虚拟路由标识,主从相同
priority 100 #BACKUP上修改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #主从认证密码必须一致
}
virtual_ipaddress { #Web虚拟IP(VIP)
192.168.200.201
}
}
virtual_server 192.168.200.201 80 { #定义虚拟IP和端口
delay_loop 6 #检查真实服务器时间,单位秒
lb_algo wrr #设置负载调度算法,rr为轮训
lb_kind DR #设置LVS负载均衡DR模式
nat_mask 255.255.255.0
persistence_timeout 50 #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP #使用TCP协议检查realserver状态
real_server 192.168.200.151 80 { #第一个web服务器
weight 1 #节点权重值
TCP_CHECK { #健康检查方式
connect_timeout 3 #连接超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔/S
}
}
real_server 192.168.200.152 80 { #第二个web服务器
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
149防火墙也要记得关闭
启动服务:
service keepalived start
tail -f /var/message,查看日志信息
4.2.6 验证三大功能
搭建完成,在浏览器输入访问IP(VIP)查看
VIP(访问IP)http://192.168.200.201 访问IP
1)转发功能:151 152,发现可以在两台HTTP服务器之间切换
2)故障移除: 把152机器手动关掉,再查看效果
service httpd stop,访问152出现没法连接的效果
在访问VIP发现始终是访问的151机器,证明负载均衡有故障移除的功能
3) 恢复添加
把152机器再手动启动,再查看效果
service httpd start,发现152重新启动了,再 访问VIP发现可以重新再两台ftp服务器之间切换了
证明:负载均衡有恢复添加的功能
4)负载均衡主机关了,备机是否接管它的工作
搭建备机,150机器上搭建,和上面的步骤一样
配置文件中将state Master修改成state BACKUP
搭建备机成功
关闭负载均衡主机149机器,查看150机器是否接管它的工作
service keepalived stop
证明负载均衡主机关闭了,备用机确实接管了他的工作
负载均衡主机备机搭建成功,负载均衡的功能验证通过!
企业高并发的成熟解决方案(一)----搭建LVS负载均衡的更多相关文章
- 企业高并发的成熟解决方案(一)video(笔记&知识点)
知识点 答案 什么是高可用(HA) 高并发发生在哪两处 app服务器会出现什么问题,有哪些解决方案? 数据库并发有什么要求? hadoop集群的作用 负载均衡的功能有哪些 负载均衡的分类 哪种负载均衡 ...
- 搭建Lvs负载均衡群集
一.Lvs详解 lvs内核模型 1.模型分析 用户访问的数据可以进入调度器 匹配调度器分配的虚拟IP|IP+端口(路由走向) 根据调度器的算法确定匹配的服务器 2.调度条件:基于IP.基于端口.基于内 ...
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普 ...
- CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR);
目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中. ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- Net分布式系统之二:CentOS系统搭建Nginx负载均衡
一.关于CentOS系统介绍 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat ...
- lvs负载均衡的搭建
lvs负载均衡的搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在部署环境前,我们需要了解一下一些协议 一.什么是arp 地址解析协议,即ARP(Addr ...
- 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)
我还写了两篇详细的 参考:六大Web负载均衡原理与实现 参考:LVS(Linus Virtual Server):三种IP负载均衡方式比较+另三种Web负载均衡方式 其中LVS.HAProxy可以工作 ...
- LVS 负载均衡解决方案 (windows IIS)
LVS 负载均衡解决方案 因为我们的产品运行的主流平台是WINDOWS+IIS+SQLSERVER(2000以上版本),而LVS+KEEPALIVED是LINUX下的四层负载均衡软件.其有如下特点: ...
随机推荐
- Redis整体
介绍 Redis是一个开源的高性能的key-value存储系统.具有以下特点: 1.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用. 2.Redis不仅仅支 ...
- Bzoj4818:生成函数 快速幂
转来的题面:首先这题显然补集转化,就是用全部方案减去不含任何质数的方案.然后怎么做呢?考虑m比较小,我们能大力把<=m的质数全都筛出来.发现n很大,要么倍增要么快速幂......发现p相当小,所 ...
- 12、Redis的事务
写在前面的话:读书破万卷,编码如有神 --------------------------------------------------------------------------------- ...
- [工具]GitHub上整理的一些工具[转]
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 ...
- Xtreme8.0 - Kabloom 动态规划
Xtreme8.0 - Kabloom 题目连接: https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/kablo ...
- QThreadPool线程池的使用,线程与Widget通过信号与槽的方式通信。
因为QRunnable类并非继承自QObject,不能使用信号和槽,为了能够使用信号与槽和Widget通信,需要对QRunnable进行封装. 定义一个类QMyRunnable,该类首先继承自QObj ...
- [转]小心C# 5.0 中的await and async模式造成的死锁
原文链接 https://www.cnblogs.com/OpenCoder/p/4434574.html 内容 UI Example Consider the example below. A bu ...
- Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库
H2作为一个嵌入型的数据库,它最大的好处就是可以嵌入到我们的Web应用中,和我们的Web应用绑定在一起,成为我们Web应用的一部分.下面来演示一下如何将H2数据库嵌入到我们的Web应用中. 一.搭建测 ...
- 什么时候用var关键字
C#关键字是伴随这.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当一个变量是局部变量(不包括类级别的变量),并且在声明的时候初始化,是使用var关键字的 ...
- TXMLDocument use case (Delphi)
Description This example illustrates the basic operations on an XML document. Code procedure CreateD ...