高可用——Keepalived安装部署使用详解

作者&投稿:酆呼 (若有异议请与网页底部的电邮联系)
~

关注:CodingTechWork,一起学习进步。

  keepalived是基于 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)协议实现的 LVS (LinuxVirtual Server ,Linux虚拟服务器)服务高可用方案。主要提供了负载均衡和高可用功能,用来避免单点故障。负载均衡是通过linux的IPVS(ip虚拟服务器)实现,高可用通过VRRP实现多机故障转移。
  keepalived一般是2个节点运行keepalived,一台是 主节点(MASTER ),一台是 备节点(BACKUP) , 对外 表现都是 一个虚拟IP ,主节点会发送特定的消息给备节点,如果备节点收不到这个特定消息时,说明 主节点就宕机 了,此时 备节点就会接管虚拟IP 进行服务提供,这就实现了高可用。

将keepalived和nginx部署在一台服务器。

  keepalived是基于VRRP协议来实现高可用的,有两种模式,一种是 抢占模式 (默认使用),另一种是 非抢占模式 ,需配置 nopreempt ,在后面的keepalived配置文件详解中我们会讲到。当使用 抢占模式 的时候,这是一种 竞选机制 进行通信, 主节点优先级大于备节点优先级 。当主节点宕机的时候,可以切到备节点进行提供服务。

抢占模式原理 如下

$ yum install -y keepalived

$ cd /etc/keepalived
$ vim keepalived.conf
主要修改分配的虚拟ip地址等配置。

$ systemctl start keepalived.service 或者 $ service keepalived start
其他相关命令
1)重启:
$ systemctl restart keepalived.service
2)停止:
$ systemctl stop keepalived.service
3)状态:
$ systemctl status keepalived.service
4)设置开机启动:
$ chkconfig keepalived on

$ systemctl status keepalived.service

$ ps -ef | grep keepalived

$ ip add show

配置好keepalived启动后,我们就可以通过10.139.1.1这个VIP进行服务的访问。

除了注释#以外,其他都和主节点保持一致。



美团面试题:如何设计负载均衡架构支撑千万级用户的高并发访问?
答:ü 后面我们会用Shell脚本实现keepalive的功能 1.3 LVS集群搭建 1.3.1 集群环境说明 主机说明 web环境说明 web服务器的搭建参照: Tomcat: http://www.cnblogs.com/clsn/p/7904611.html Nginx: http://www.cnblogs.com/clsn/p/7750615.html 1.3.2 安装ipvsadm管理工具 安装管理工具 查看当前LVS状态...

高频交易支付架构并不复杂
答:再来看主库高可用结构图:如上图所示,web服务器将不再直接连接主库DB1,而是连接KeepAlive虚拟出的一个虚拟ip,再将此虚拟ip映射到主库DB1上,同时添加DB_bak从库,实时同步DB1中的数据。正常情况下web还是在DB1中读写数据,当DB1宕机后,脚本会自动将DB_bak设置成主库,并将虚拟ip映射到DB_bak...

如何配置Nginx做高可用
答:keepalive_timeout 65;gzip模块设置,使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。gzip on; #开启gzip gzip_min_length 1k; #最小压缩大小 gzip_buffers 4 16k; #压缩缓冲区 gzip_http_version 1.0; #压缩版本 gzip_comp_level 2; #压缩等级 gzip_types ...

redis服务搭建有几种方式
答:配置方式: Master节点不用作任何变动 Slave节点上的配置文件redis.conf需要修改如下配置 slaveof <masterip> <masterport>改为salveof 127.0.0.1 6379最好让服务器配成只读属性salve-read-only yes123456 要想实现高可用即故障转移: 需要使用 keepalive redis数据分片(Sharding)集群 实现方式:由若干...

5-2 客户端操作MQ集群
答:那如何解决这个问题呢?我们看到 HAProxy 提供了一个clitcpka参数配置,它可以从客户端发送TCP keepalive数据包。我们就使用它,但发现配置了之后,还是出现了上面的问题。为什么呢?[…]the exact behaviour of tcp keep-alive is determined by the underlying OS/Kernel configuration[…]什么意思?意思...

企业为什么搭建群集环境和web网站
答:二 详细功能描述:1.前端服务器采用nginx实现反向代理和负载均衡,用keepalive实现HA。此部分由centos1和centos4实现,centos1作为主服务器,centos4作为热备服务器。Nginx会根据不同的请求ip机会均等地把请求发送到后端两台服务器,并且以ip hash的方式保持各个ip的会话。2.后端服务器构建在centos2与...

系统运行支持岗位职责
答:8、熟练各种互联网基础应用的部署应用者优先,如DNS,HTTP,LVS,Keepalive,Tomcat,MySQL,Nagios,Zabbix等;9、有Python或Java开发经验,或者Puppet,Ansible,Salt等任一配置管理工具部署使用经验者优先;10、具有良好文档编写和文字表达能力,有良好的逻辑分析能力;11、熟悉ITIL、ITSM流程并有相关实施经验...

常用的web服务器软件有哪些
答:1.IIS IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而...

redis实例是什么意思
答:为了保证Redis实例的高可用性、性能和安全性,需要设置适当的Redis参数和调整系统资源的使用。例如,为了保证Redis在繁忙的网络环境中的效率,可以设置客户端和服务器之间的TCP KeepAlive,以避免长时间未使用Redis实例。此外,为了保护Redis数据的安全,应该启用密码验证、TLS或其他数据加密机制。总之,合理的...

组建mysql集群的几种方案
答:2.Keepalived+MySQL --确实有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况;3.DRBD+Heartbeat+MySQL --同样有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况,且DRDB是不需要的,增加反而会出问题;3.MySQL Proxy -- 不错的项目,可惜官方半途夭折了,不建议用,无法高可用,是一个写...