Patroni for opengauss 3:浮动IP

编程入门 行业动态 更新时间:2024-10-08 20:35:59

Patroni for <a href=https://www.elefans.com/category/jswz/34/1762277.html style=opengauss 3:浮动IP"/>

Patroni for opengauss 3:浮动IP

功能需求:这是一个可选功能,三节点的Patroni、PostgreSQL/Opengauss集群,当主备自动切换时,主节点要设置可读写的浮动IP,备节点要设置只读的浮动IP(也可以不设置)。

为了实现这个功能,也为了对Patroni的影响最小,不对Patroni原有代码进行修改,而是另写一个Python程序,与Patroni在同一个节点内,另起一个进程运行。

设计原理就是不断地通过Patroni的REST API查询本节的的状态。当本节的role为master时,设置本节的为可读写的浮动IP,当本节的role为replica时,设置本节的为只读浮动IP,当查询失败时(例如Patroni退出了)禁用这两种浮动IP地址。

程序只有一个主线程,以一个循环作为主体,接受patroni.yml作为配置文件,对这个程序的配置参数写在这个文件中。

每次循环查询 curl -s http://127.0.0.1:18008/master 

这个程序是patroni目录下的vipmon.py,在每个节点上启动patroni后启动。

还有一点要注意,运行vipmon.py的用户需要有执行ifconfig设置ip地址的权限,一般都是给这个用户免密执行sudo ifconfig的权限。

patroni.yml中关于浮动IP的配置项:

mastervip表示读写(主)节点的浮动IP地址,enable:true表示使能主节点的浮动IP,设置浮动IP需要三个参数,浮动IP地址、接口名、子网掩码,三个节点需要在一个网段内,浮动IP也只能在网段内浮动。

secondaryvip表示只读(备)节点的浮动IP地址,enable:false表示禁用备节点浮动IP。

代码在:vipmon.py · 秦浩/Patroni for opengauss - Gitee.1.0-opengauss/vipmon.py

更多推荐

Patroni for opengauss 3:浮动IP

本文发布于:2024-02-06 04:55:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746828.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Patroni   opengauss   IP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!