zoukankan      html  css  js  c++  java
  • 心跳机制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. 可以将以上关系进行结合使用架构。

  • 相关阅读:
    python3.x元组打印错误 TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
    LoRa---她的简介和她的专业术语
    单片机程序在内存和FLASH中的空间分配
    STM32烧录的常用方式
    【原创】MapReduce编程系列之表连接
    Maven基础配置—本地Maven配置
    Maven基础配置--nexus私服配置
    OSGI入门笔记
    Maven仓库搭建--nexus私服
    javascript基础 方法 函数 闭包 集合
  • 原文地址:https://www.cnblogs.com/HelloM/p/14193774.html
Copyright © 2011-2022 走看看