在众多postgresql 高可用模式中,主要的参与者有两位, Patroni VS repmgr 基于这二者的功能优点以及缺点相信大部分人都不是太明确,下面将根据两篇翻译的文字合并,来对两个高可用的程序来做一个比较, cons and pros。

1  Repmgr 是一款开源的基于postgres复制基础上的高可用软件,他基于2ndQuadrant 公司开发而来,提供完整的基于从安装到部署,从设置到管理以及监控的一体化的postgresql 高可用方案,并且支持手动的POSTGRESQL 高可用切换和自动切换的方案,支持看门狗的模式。

通过repmgr 程序来对服务在数据库内进行注册,并且通过repmgrd来进行多点的failover监控,可以在切换的过程中完成选主,与损坏节点再次加入到集群中,作为从库的一体化方案。并且提供延迟的方案,以预防网络不稳定带来的误切换的问题。

在集群中的节点数为偶数的情况下repmgr 本身通过witness见证服务器来解决脑裂的问题,见证服务器是一个节点,只考虑多数投票计数。

2  Patroni

Patroni 本身起源于一个Governor 的分支,来自于一个compose 项目,在Zalando 中被改进的原来越好用。https://github.com/zalando/patroni,这是一个python 编写的开源工具组件,通过他来进行POSTGRESQL的集群高可用性的支持,通过分布式存储的方式来完成一致性模型,目前一般配合etcd 基于raft 协议的分布式系统来使用。Patroni确保PostgreSQL HA集群的端到端设置,包括流复制。它支持创建备用节点的各种方式,工作方式类似于模板,可以根据您的需要进行定制。通过patroni 可以自动完成postgresql服务失败自动拉起,以及主从节点的切换和失败节点重新加入等功能。同时基于分布式存储的特性可以直接防止脑裂的发生。并且通过分布式存储来获得leader节点,确保在任意时间只有一个主节点进行对外服务。

通过上面的介绍,可以比对出二者不不同点

1  Patroni 本身是一个开源项目目前在Zalando 手里进行维护和发展

Repmgr 是PG 数据库开发公司2象限的产品,目前开源

2  Patroni 本身通过DCS 来进行数据节点的选主和高可用信息的存储,所以      选择分布式存储对 patroni本身来说是重要的。

Repmgr 是本身并不使用分布式协议,采用的是传统类比传统数据库的方      式来进行高可用的设置,一般对于双机的高可用是支持的

比对                     Patrnoi                                 repmgr

两节点支持          不建议,起步三节点                 支持

版本持续更新       支持                                         支持

需要安装分布式    需要                                        利用POSTGRESQL 存储

存储

支持多种数据节     支持                                         pg_bacebackup

点添加方式

需要各个节点免密   需要                                        需要

有管理命令             有                                            有

手动切换                 可以                                         强

自动切换                 可以                                        启用repmgrd

多次failover           可以                                        不可以

配置文件修改          一般                                         灵活

方便灵活

基于上面的一些点我们可以来详细的说一下

1  如果仅仅是想安装类似 ORACLE  DG ADG 这样的方式,同时想做一个热机主备的方式,repmgr  是一个好的选择,Patrnoi本身对主机的节点的数量没有要求,但一般安装分布式存储如果使用通用的ETCD 则必须包含ETCD 基于raft 协议,必须是三台起步。

2  需要安装分布式存储,Patrnoi 本身是需要安装 etcd 或其他的分布式存储软件的,repmgr本身的一些日志信息以及节点信息是安装在本地节点PG中的repmgr 数据库里面的,所以不需要其他软件的安装

3 手动切换中,由于repmgr是通过repmgrd 来进行监控并自动进行切换的,所以停止repmgrd 程序本身,通过 repmgr命令直接启动切换步骤即可,patrnoi 在此方面可以通过命令来进行切换

4  对于 如果在系统中由于不稳定导致网络丢包或者主机频繁切换,patroni 是可以支持,基于分布式存储来进行主机的选举,repmgr 本身无法接受此方式,一次切换后,需要重置一些配置后,恢复正常工作

5  参数的配置的灵活性,patrnoi 对于参数的修改本身是有要求的,需要通过程序本身进行参数的修改然后加载或者通过patrnoi本身来进行reload, 对于需要重启的情况不十分灵活,要求多, 对于REPMGR,对参数的修改没有特殊要求。

实际上两者的高可用方式都有可圈可点的地方,本期就先到这里,下期会对两个高可用的软件进行更细致功能对比。

POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)相关推荐

  1. postgresql 高可用 patroni + etcd 之二 patroni

    os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni + etcd 是postgrsql 的一个高可用方案,依然是基 ...

  2. PostgreSQL高可用集群在360的落地实战

    本文主要从以下几个方面介绍PostgreSQL高可用集群在360的落地实战 为什么选择Patroni + Etcd + PostgreSQL高可用集群方案 PostgreSQL高可用集群在360的落地 ...

  3. postgresql高可用_Postgresql高可用实现方案

    本文主要讲解一种Postgresql高可用实现方案.由于项目需要,我们需要在短时间实现底层Postgresql DB的高可用,而网络上大多数的解决方案比较复杂,需要深入了解Postgresql. 背景 ...

  4. PostgreSQL高可用(二)使用pgpool实现主从切换+读写分离

    文章目录 1主从流复制 1.1 主机分配 2主从切换 2.1 手动切换 2.2 pgpool 自动切换 2.2.1 解压编译安装 2.2.2 添加环境变量 2.2.3 配置pool_hba.conf ...

  5. PostgreSQL高可用(三)解决pgpool的单点问题

    文章目录 主机分配 PGPOOL高可用,解决单点问题 1 图例 2 看门狗简介 3 启动/停止看门狗 4 配置看门狗 (pgpool.conf) 4.1 基本配置 4.1.1 启用 4.1.2到前端服 ...

  6. 跨平台开发框架到底哪家强?5款主流框架横向对比!

    跨平台开发框架到底哪家强? 目前市场上有多个专业做跨平台开发的框架,那么对开发者来说究竟哪一个框架更符合自己的需求呢?笔者特地总结对比了一下不同框架的特性. 国内外笔者选择了一共5个主流的测评对象,分 ...

  7. 未来的苹果和谷歌到底哪家强?

    深度对决,未来的苹果和谷歌到底哪家强?(转) 文/王新喜 日前,前苹果公司CEO约翰·斯卡利称,他认为在科技领域中作出下一个重大创新的很可能不会是苹果公司,而会是谷歌等其他公司.他认为谷歌未来作出重大 ...

  8. 挖掘机技术到底哪家强?这个问题终于有答案了!!

    硅谷Live / 实地探访 / 热点探秘 / 深度探讨 挖掘机技术到底哪家强?-- 如果你急着说蓝翔,看来你对挖掘机的世界并不是真的关心.最近,硅谷洞察和硅谷一家专门致力于让重工业领域的机器自动化的 ...

  9. ANDROID 推送到底哪家强

    之前在群里有同学问我关于推送的一些问题,解答之后我觉得这个话题还挺有用,因为几乎大部分人都会遇到这个问题,那姑且就写篇文章总结给你们吧. 1. 为什么要用推送? 推送功能可谓是现如今任何一个 App ...

最新文章

  1. mac 环境下 制作windows系统U盘启动盘
  2. Driver for device rausb0 has been compiled with version 22
  3. 二丶Linux安装xdd-plus教程及必备依赖的安装+青龙对接xdd
  4. unslider的用法详解
  5. 【错误记录】反射时调用方法及成员报错 ( 执行反射方法 | 设置反射的成员变量 | 设置方法/成员可见性 )
  6. discuz7记录下url静态化的apache2.2配置
  7. 将“softmax+交叉熵”推广到多标签分类问题
  8. mysql授权无密码用户_MySQL下新建用户,授权,删除用户,修改密码
  9. 记录一次react项目配置过程
  10. IDEA自动勾选显示类型(specify type)
  11. Go语言开发设置代理Goproxy,提高Go安装模块速度
  12. 一文带你剖析LiteOS互斥锁Mutex源代码
  13. python 数组打包_Python:打包多字节数组
  14. python切面_Python装饰器与面向切面编程
  15. m3000服务器维修,陕汽德龙新M3000,仪表上有个故障灯,红颜色⭕里有个❌是个什么故障灯了...
  16. 重庆兴渝计算机培训中心,重庆兴渝职业中等专业学校2021招生录取分数线
  17. python股票收益率计算_股票分析之——收益率(附完整代码和讲解)
  18. 短时傅里叶变换STFT(matlab)
  19. 推荐6款习惯养成APP,送给想要提升自己的人!
  20. matlab的syms无法在函数中使用_syms(matlab中syms的用法)

热门文章

  1. Google Android 开发者网站更新了
  2. Python中and和or的运算规则,短路计算
  3. rtklib 周跳检测
  4. 弱口令暴力破解详解(包含工具、字典下载地址)
  5. 李立超python视频_《李》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  6. 图嵌入综述 (arxiv 1709.07604) 译文 4.3 ~ 4.7
  7. js前端下载文件,利用download.js或者,纯js下载文件,图片,视频,pdf等
  8. rapidminer员工离职分析_RapidMiner 9从根本上简化了分析团队的数据准备工作
  9. 《高效能人士的七个习惯》分享
  10. d3js selections深入理解