keepalived的主要功能
 1. healthcheck:
           检查后端节点是否正常工作
           如果发现后端节点异常,就将该异常节点从调度规则中删除;
           如果发现后端的异常节点恢复正常了,就将该节点重新加入到调度规则中;
2. failover
                 是对调度器的主节点做健康检测。
                  将备用节点升级为主节点
                   接管主节点上的资源(vip、lvs规则)
3.keepalived实现故障切换的原理
                     1.keepalived是基于vrrp写于实现的故障切换
                      2.正常情况下,主节点会每隔一段时间向备节点发送一个心跳信息,这个就是告诉备节点自己正常。
                      3.当主节点发生故障,那么备节点无法接收都心跳信息,就认定主节点故障,那么就会接收主节点的业务和资源(包括vip)
                       4.当主节点又恢复的时候,那么备节点释放所接收到资源和业务

vrrp协议
                1. VRRP((Virtual Router Redundancy Protocol),虚拟路由冗余协议,为了解决静态路由的单点故障问题
                  2. VRRP的工作机制是基于竞选机制选择一个路由来完成任务处理
                 3. VRRP协议是通过发送多播数据包实现竞选的(Multicat)
                 4. 竞选出来主节点会一直发送广播包,backup节点一直监听这些广播包(处于监听状态)
                 5. 当备用节点无法接收到广播包的是时候,就会重新进行竞选,选出一个新的节点作为主节点
keepalived可以完成如下工作
                       1. 自动生成vip(vip给用户提供服务)
                        2. 自动配置lvs规则
                        3. 可以实现各种服务的高可用
                        4. failover的时候,做vip的漂移

案例:实现64(master) 和 65(backup) 两个主机上的web服务的高可用,提供服务的IP 233

第一步:在实现高可用的节点的上安装keepalived(都需要安装)

[root@ ~]# yum install keepalived -y

第二步:配置keepalived

[root@ ~]#  vim /etc/keepalived/keepalived.conf
global_defs {                  <<<全局配置段
notification_email {
@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout
router_id LVS_DEVEL <<< 当前主机的ID值,这个值必须是唯一的

} vrrp_instance VI_1 { <<< 指定实例的名称
state MASTER <<<指定节点的状态,MASTER表示主,BACKUP表示备用节点
interface eth0 <<< 指定将VIP绑定在哪个网卡上
virtual_router_id 51 <<< 虚拟路由ID,用于标识哪些个节点是一组,同一组的主机的虚拟id需要相同
priority 100 <<< 指定该节点的优先级(主这节点的优先级大于备节点)
advert_int 1 <<< 指定备节点在几秒之内没有接收到主节点的心跳信息,就接管其业务和资源
authentication {
auth_type PASS    <<< 指定keepalived集群中各个主备节点做认证的方式
auth_pass
}
virtual_ipaddress {
10.220.5.233 <<< 指定用于提供服务的ip地址(也就是VIP)
}

} virtual_server 10.220.5.233 { <<<指定实例对应的VIP
delay_loop 6 <<<对后端节点做健康检查的时间间隔
lb_algo rr <<<指定负载均衡调度算法
lb_kind DR
persistence_timeout 50 <<<同一IP的请求50秒内被分配到同一台真实主机
protocol TCP <<<用TCP协议对真实节点做健康检查 real_server 10.220.5.64 { <<< 指定一台真实服务器的IP和端口
weight 1 <<<设置权重
TCP_CHECK{ <<<用建立tcp连接的方式做健康检测
connect_timeout 10 <<<设置建立tcp连接的超时时间
delay_before_retry 3 <<<超时后多久重试
nb_get_retry 3 <<<重试次数
connect_port 80 <<<健康检查使用的端口号j
real_server 10.220.5.65 80 {  <<< 指定一台真实服务器的IP和端口
weight 1 <<<设置权重
TCP_CHECK{ <<<用建立tcp连接的方式做健康检测
connect_timeout 10 <<<设置建立tcp连接的超时时间
delay_before_retry 3 <<<超时后多久重试
nb_get_retry 3 <<<重试次数
connect_port 80 <<<健康检查使用的端口号 }
}

} 解决监听的ip不存在的问题(nginx,httpd)
在/etc/sysctl.conf增加一个选项
net.ipv4.ip_nolocal_bind =1
这是在启动服务的时候不检查所绑定的vip是否存在

keepliave的更多相关文章

  1. Nginx - keepliave 相关知识点

    目录 - 1. 前言- 2. keepalive 介绍- 3. Nginx 与 keepalive 的关系    - 3.1 Nginx - keepalive_timeout    - 3.2 Ng ...

  2. Nginx学习总结:proxy与rewrite模块(三)

    斜体下划线,表示建议采用默认配置,无需显式的配置 一.ngx_http_upstream_module 此模块中可配置的指令并不是很多.nginx的负载均衡算法包括: 1)round-robin:轮询 ...

随机推荐

  1. CAST()函数可以进行数据类型的转换。

    CAST()函数可以进行数据类型的转换. CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔. 以下例子均通过本人测试. 一.转换列或值 语法:cast( 列名/值 as 数据类 ...

  2. Winform 界面执行耗时操作--UI卡顿假死问题

    UI卡顿假死问题 误区1:使用不同的线程操作UI控件和耗时操作(即,跨线程操作UI控件CheckForIllegalCrossThreadCalls = false;), 注意:此处只是为了记录... ...

  3. Java Socket NIO

    服务端: public class NIOServer { private static final String HOST = "localhost"; private stat ...

  4. symfony 踩坑之旅 视频实操从第九章开始

    1.annotation定义路由 @Route("/**",defaults={"name":"world"},requirements={ ...

  5. 软件推荐----RDO(Remote Desktop Organizer)

    平时工作,经常使用远程桌面控制,在多个远程之间切换.使用上Remote Desktop Organizer方便很多.类似的软件很多,此软件只能应用于windows的远程桌面控制,好处如下: 可以保存用 ...

  6. How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)

    How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)

  7. 生产者消费者synchronized wait notify

    package ProduceQueueProduce; import java.util.Queue; public class ProducerThread extends Thread { pu ...

  8. 转发:VB程序操作word表格(文字、图片)

    很多人都知道,用vb操作excel的表格非常简单,但是偏偏项目中碰到了VB操作word表格的部分,google.baidu搜爆了,都没有找到我需要的东西.到是搜索到了很多问这个问题的记录.没办法,索性 ...

  9. 接口测试总结分享(http与rpc)

    接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. 一.了 ...

  10. [问题解决]eclipse.ini 文件配置jdk版本

    想要多个JDK 和 多个eclipse在一台电脑上同时运行无需配置环境变量,只需修改eclipse.ini文件即可启动eclipse. -vm D:\javaSE1.\jdk1.\bin\javaw. ...