MyCat-集群-keepalived 安装配置 | 学习笔记

简介: 快速学习 MyCat-集群-keepalived 安装配置

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-集群-keepalived 安装配置 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/757/detail/13291


MyCat-集群-keepalived 安装配置

要将 keepalived 的安装包上传到服务器上,在 159 和 160 两台服务器上面都需要上传 keepalived。159 和 160 上面的安装步骤是完全一致的。

1. 上传安装包到 159 服务器上

alt+p--------> put D:/tmp/keepalived-1.4.5.tar.gz

上传后 ll,可以看到 keepalived 的安装包,结尾是 tar.ge 的安装包,就需要进行解压。

image.png

2. 解压安装包到目录  /user/local/src

tar -zxvf keepalived-1.4.5.tar.gz-c/usr/local/src

image.png

解压完后解压到 user/local/src/keepalived-1.4.5 目录得到解压后的源码包。

Keepalived 是 c 源开发的,那么接下来就要对 c 源的源码进行编译。在编译的时候需要用到一些第三方的插件,通过 yam 指令在线安装。

3.安装依赖插件

yum install -y gcc openssl-devel popt-devel

在使用 yam 指令在线安装的时候一定要记得连接外网!!

4.进入解压后的目录,进行配置,进行编译。

cd /usr/local/src/keepalived-1.4.5

./configure--prefix=/usr/local/keepalived 先执行此条指令,指的是configure,要对 keepalived 的安装路径进行配置,所以在此添加这条指令。执行完此条指令后,会出现 Makefile 文件。

image.png

有了这个文件就可以编译 c 源的源码。

5. 进行编译,完成后进行安装

make &&make install   编译安装过程大概需要几十秒的时间,大家稍作等待。

6. 编译安装之后,进行运行前配置。

运行前的配置作用是将 keepalived 注册为系统服务。

cp/usr/local/src/keepalived-1.4.5/keepalived/etc/init.d/keepalived /etc/init.d/

mkdir /etc/keepalived

cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived

cp/usr/local/src/keepalived-1.4.5/keepalived/etc/sysconfig/keepalivedetc/sysconfig/

cp/usr/local/keepalived/sbin/keepalived/usr/sbin/

将运行前的配置进行运行即可,创建目录。还需要将 keepalived 的配置文件拷贝到 etc 文件目录下,还需拷贝 keepalived 的指令,最后要将这个指令拷贝到 sbin目录下。

7. 修改配置文件 /etc/keepalived/keepalived.conf

进入此目录,看到原有的配置文件,是我们完全不需要的,可以直接全部删掉。将我们准备好的配置文件拷贝进去即可。

router_id 是一个标识,叫做 haproxy01,以上为脚本,等下详细介绍。

在这里面配置了 vrrp,就是 keepalived 中用到的协议。

state Master 当前是主,对于 keepalived 来说,就是一主一备。

Interface eth1 就是网卡的名字。

对于 keepalived 来说是需要通过 vrrp 虚拟出一个虚拟的 ip 地址,并且将此 ip 与当前服务器进行绑定。所以要指定当前服务器用的哪一块网卡。

如何查看当前服务器是使用的哪一块网卡?输入 if config 则显示当前服务的网卡。

image.png

router_id 网段信息。

数值越大优先级越高。 priority 120 指的是主和备要去抢占 ip,优先级越高,抢占的概率越大。

8.重点介绍

虚拟 IP  vip 则为:virtual_ipaddress

image.png

示意图顶端的虚拟 IP,是在 keepalived 文件中配置的,两个 keepalived 虚拟出的 Ip 必须是同一个。

上方的配置也是需要添加的,以上是关于配置的说明,拷贝到 159 服务器即可。

当前节点 Master,网卡 eth1,优先级 120,虚拟 IP192.200

由于刚才关联了外部脚本,叫 haproxy_check.sh,关联的是 share 脚本。

9.简单了解一下 shell 脚本

检测 haproxy 是否存活

image.png

Shell 脚本的作用就是示意图中 check 的作用,如果 haproxy 挂掉,keepalived 还活着,虚拟的 IP 地址,和当前的网卡绑定,并不会解绑,而 haproxy 已经挂掉的情况下,再不解绑就没有任何意义,所以 share 脚本就要去检测,haproxy 是否还存活着。

如果 haproxy 还活着就正常,如果已经挂掉了就会尝试重启他,如果不能重启成功,那就会使当前的 keepalived 挂掉,而主节点 master 的 keepalived 挂掉的话,备用的节点的 keepalived 就会检测到主节点挂掉,那么此时备用节点就会升级为主节点,并且将 vip 与当前服务网卡进行绑定,从而对外进行服务。

Shell 脚本存放目录 etc/keepalived  脚本名称:

haproxy_check.sh

将脚本拷贝即可。

image.png

脚本解读:首先通过 ps-c haproxy 查看 haproxy 的信息,第二行的作用是拿到 haproxy 到底有没有该进程,

image.png

运行一下,ps-c 查看 haproxy 进程,no-header 将进程中的头信息干掉,如果输入 ps-C haproxy 直接执行,则会有头部信息出现。加上 no-header 则没有头部信息。

Wc-L 取得行数显示有一行,则说明 haproxy 是存活的,进程正常。

image.png

设置变量 A ,如果变量 A 为 0,那么就执行,下面这句指令,意思为重启 haproxy/usr/local/haproxy/sbin/haproxyf/usr/local/haproxy/haproxy.conf

Sleep1  休眠一秒

执行第二行的内容:ps -C haproxy --no-header|wc-l

如果 -eq 为 0,则视为重启失败,则 etc/init.d/keepalived   stop  停止keepalived ,备用节点生效。

所以 shell 脚本就是去检测 haproxy 的状态。

脚本有了之后要赋予权限,chamod  777  haproxy_check.sh  绿了则有执行权限。

159 服务中的配置至此基本配置完毕。

对于 160 服务的配置与 159 服务中的配置基本一致。在 keepalived 的 backup 备用节点配置不一样,router_ id 标识要修改,master 要改为 backup ,优先级要改成 100,其他内容不需要。

相关文章
|
10月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| CVPR2024 CAA上下文锚点注意力机制
RT-DETR改进策略【注意力机制篇】| CVPR2024 CAA上下文锚点注意力机制
347 1
RT-DETR改进策略【注意力机制篇】| CVPR2024 CAA上下文锚点注意力机制
|
Linux
如何让linux显示器命令行界面不显示
若需在命令行界面快速关闭屏幕,可选方法包括:使用`setterm --blank force`立即关闭屏幕;利用`sudo vbetool dpms off`将显示器置于低功耗模式;在X server环境下执行`xset dpms force off`关闭屏幕;或是针对笔记本通过`echo 0 | sudo tee /sys/class/backlight/*/brightness`关闭背光。以上任一方法均可实现屏幕关闭,部分操作需要管理员权限,屏幕通常会在按键或移动鼠标后自动恢复。
1740 10
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
851 0
|
JavaScript
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
该方案通过自定义Vue指令实现ElementUI的`el-dialog`弹窗的拖拽和最大化功能。只需在`main.js`中引入并注册指令,然后在Vue组件中绑定指令即可。支持自定义参数控制是否允许最大化和拖拽,并提供最大化后的回调函数。具体使用方法详见示例代码。
2362 0
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
|
Shell 应用服务中间件 nginx
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL忘记密码后重置密码
MySQL忘记密码后重置密码
520 0
|
自然语言处理 安全 算法
23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】
23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】
587 0
23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】
|
弹性计算 运维 Shell
基于Shell的灵活配置管理工具
【4月更文挑战第30天】
177 1
|
Web App开发 应用服务中间件 Apache
Get/POST方法提交的长度限制
 1.    Get方法长度限制 Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。 如:IE对URL长度的限制是2083字节(2K+35)。 下面就是对各种浏览器和服务器的最大处理能力做一些说明. Microsoft Internet Explorer (Browser) IE浏览器对URL的最大限制
11688 2
|
SQL 搜索推荐 关系型数据库
kettle操作--excel数据导入mysql数据库
kettle操作--excel数据导入mysql数据库
kettle操作--excel数据导入mysql数据库