Patroni 使用 raft 作为 DCS

Patroni的数据一般存储在分布式数据库etcd中。也可以用其它软件(如zookeeper)替代etcd,这里记录一下使用raft替代etcd的方法。

所谓raft,其实是python3的插件:pysyncobj (可以通过 pip install pysyncobj 下载安装)。所以,不需要另外安装和配置单独的DCS软件,只要配置Patroni的raft相关参数就可以了,对raft环境的建立和配置在Patroni代码的dcs/raft.py里。

在patroni.yml中增加raft配置,如下:

data_dir -- raft数据库在每个节点存储数据的目录,这一点与etcd是一样的。

self_addr -- 本机的IP+端口号

partner_addrs -- raft集群中其它的节点的IP+端口号

以我的环境为例,有三台机器,IP分别为:172.32.148.154、 172.32.148.155、172.32.148.156,端口号都设置为15010,partner_addrs可以不包括self_addr,但是最好包括。然后就可以了,配置raft比配置etcd简单的多。

注意,如果选择时候raft就不能有其它dcs的配置,因此,如上图etcd的配置就要注释掉。

使用raft作为DCS,对于三节点集群,必须至少有两个正常工作,所管理的PG/OG才能正常,如果只剩一个节点正常工作,PG/OG会被置为只读,而命令patronictl list也不能返回了。

启动时,要先启动三个节点的Patroni,等它们建立起raft集群,才会有一个节点被选为PG/OG主节点,所以是Patroni集群先于PG/OG集群建立。

查看raft状态:

syncobj_admin -conn 127.0.0.1:15010 -status

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值