心跳机制keepalived-集群

1、介绍

  转接访问,相当于一个中转站,来一个请求动态的给到两台或多态haproxy机器上访问。

2、原理图

3、安装

查看版本号
yum list | grep keepalived

下载
yum -y install keepalived.x86_64 

4、配置

vim /etc/keepalived/keepalived.conf,在这个文件中进行参数的配置
global_defs { 
    router_id NodeA #节点A 每个haproxy节点名字  另一个取B
}

vrrp_script chk_haproxy { 
    script "etc/check_haproxy.sh"  #这个自启动文件  需要自己创建编辑
    interval 4 
    weight 3 
}

vrrp_instance VI_1 { 
  state MASTER  #主服务器
  interface ens33  #网卡
  virtual_router_id 10  #保证多个节点在保持心跳时间一致
  priority 90 #权重,数字越高,权重越大  这个配置两个haproxy时,不能一样另一个100
  advert_int 1   
   track_script { 
      chk_haproxy 
   }
  authentication { 
  auth_type PASS 
  auth_pass 1234  #多个节点必须保持此值一致
   }
 virtual_ipaddress {
   192.168.2.222/24 #心跳虚拟ip
 } 
}
vi /etc/check_haproxy.sh启动文件,在上述配置中引用
A=`ps -C haproxy --no-header |wc -1`
if [ $A -eq 0];then
systemctl start haproxy.service
fi

5、测试

a. 启动

systemctl start keepalived.service  开启服务
systemctl restart keepalived.service
systemctl status keepalived.service
systemctl enable keepalived.service 开机自启

注意:需要配置另一台心跳机器,将两个配置文件都拷贝过去,将节点名字,权重更改不同就行,节点router_id改为NodeB,权重priority为90

 b. 使用ip addr命令

  进行查看虚拟ip是否被抢到,下面这个是haproxy1

  haproxy2查看ip a,没有变化

  如果haproxy1挂掉了的话,再看haproxy2,这里haproxy2获得了虚拟ip。

   上述结果是根据配置文件中,设置的权重来分配的。haproxy1的权重为100,haproxy2权重为90,所以两台机器同时运行时,会优先分配haproxy1,但是当haproxy1挂机以后,haproxy2就会抢到虚拟ip绑定到自己的网卡。但是当haproxy1再次开机启动后,haproxy1又会根据权重分配。

c. 集群搭建访问流程:window

  mysql -uroot -proot -h192.168.209.222 -P8066

  192.168.209.222——>VIP(keepalived)——》haproxy ——》MyCat1/MyCat2 ——》MySQL主从数据库(master、slave)

d. 测试连接数据库

  随便在一台具有数据库的计算机访问虚拟ip,通过8066端口。这个时候访问到的是逻辑库。流程如上。 

 

 e. 根据虚拟库拿到所有的数据

f. 假如我现在宕机一台电脑-haproxy1。

g. 这是查询的数据丝毫不受影响

6、总结

  a. 以上的配置是一主一从。

  b. 还可以一主,多从,每个从节点的配置都是一样,唯一的区别server-id必须不同。

  c. 互为主从,左边master,右边是slave,同时右边是master,左边是slave。

  d. 级联主从,主机一是master,主机二是主机一的slave,主机二又可以作为master,主机三作为主机二的slave

  e. 可以将以上关系进行结合使用架构。

 

 

 

 

posted @ 2020-12-26 18:37  上天安排的最大嘛!  阅读(491)  评论(0编辑  收藏  举报