免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 21702 | 回复: 1

PostgreSQL 需要一个新的负载均衡器 [复制链接]

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2013-07-24 09:19 |显示全部楼层
     我们为客户做了很对高可用性的PostgreSQL部署。从9.1版开始,流复制(SR)就非常合适干这些事情,通过一些简单的工具来管理,我们可以有效的进行跨客户机扩展和AWS节点的扩展。但我们深刻的意识到当前缺乏的是简单的负载均衡和故障恢复功能。. pgPool设置好后,我们将经常它来做这些事情。但是pgPool 经常使我们遭受sporkism失控:它是一个拥有负载均衡、故障恢复工具、多主机复制、缓存、对SR的兼容、Slony和Bucardo所有功能。如果你需要使用到所有的这些东西,那就好。但是如果你只需要其中的一个你,那你还是要陷入到所有功能的复杂性中去。你还得被迫忍受那些不是针对普通情况,而是满足针对特定SRA客户需求的做的设计。我们想了很久,最终还是没想到要为了满足通过情况,该如何修复pgPool;我们需要重头开始设计一种新的,简单的,能满足80%使用情形的一种工具。

我们需要一个简单工具,或者一套工具,它们被设计成只拥有故障恢复、有负载均衡、有负载均衡或针对PostgreSQL的流复制这些功能中单一的一个。用户可以根据自己的需要对这些工具进行随机组合,就像pgBouncer。他们应该能可以通过Web服务提供信息和进行配置。 我把第一个工具叫做“pgFailover”。这个工具的作用是管理服务器的主从服务组,包括同时管理计划或非计划的故障恢复。为了避免“裂脑”咋一个组中,你只需要激活一个pgFailover节点。而且它不需要数据库连接。

pgFailover会跟踪主节点和几个它的复制节点。每个服务器的信息,包括每台服务器的复制信息和主服务器的pg_stat_replication表(记录复制的相关信息,包括复制用的用户名,复制类型,同步状态等)的信息都会被监控。pgFailover将通过web服务提供这些信息,同时它支持通过web服务和本地命令行执行命令。 根据用户设置的规范,pgFailover可以提供下面的操作:故障转移到其他新的主节点;将其它复制节点设置为主节点;添加新的复制节点而不需要进行数据同步;重新同步一个复制节点和关闭一个复制节点。它还会自动处理一些情况。基于用户设置的一些当“遇到无响应情况”的条件,它会将服务转移到最好的一个复制节点。系统会根据配置或者最新的复制时间戳,决定哪一台复制节点为故障转移的节点。同样的,当复制节点变成不可用时,它也也会在可用性列表中被丢弃。

第二个工具我把它叫做“pgBalancer”,来自Skype的未发行的工具。pgBalancer能对跨复制节点的数据库连接进行负载均衡。它自己不会处理故障或者监听服务器,而是依赖于pgFailover。用户可拥有几个独立的pgBalancer服务器,以便支持高的可用性或更加复杂的负载均衡配置。 由于自动区分读和写是一件不可能的任务,所以我们不会试图去解决这个问题。但我们假设应用本身是知道是否是读或写的,所以我们提供了两个独立的数据库连接端口,一个作为读写(RW)连接,一个做为只读(RO)连接。pgBalancer同时包含了一些关于哪些服务器是通过配置文件来连接的,哪些服务器是通过Web服务来查询pgFailover服务器消息的一些信息。只读连接将会基于“最近活动”和“循环算法”对所有的可用服务器进行负载均衡。

   pgBalancer也能通过Web服务来接受各种命令,包括:暂停一个或所有的服务;断开一个指定的连接或所有连接;写入节点发生故障时将其转移到指定的新服务器;从负载均衡列表中删除一台服务器;向负载均衡列表添加一台服务器;列出所有连接的列表;列出所有服务器的列表。 如果我们可以建立两个工具来或多或少地匹配以上规格,我想他们还需要走很多路来进一步支持我们为未来应用所要使用的各类高可用性的,水平缩放的PostgreSQL服务器集群。如果时间允许,我会在pgFailover上开始工作。一个怪胎也可以有梦想,不是吗?
        
   
英文原文:PostgreSQL needs a new load balancer

本文转自:开源中国社区 [http://www.oschina.net]
本文地址:http://www.oschina.net/translate/postgresql-needs-new-load-balancer

本文来自ChinaUnix新闻频道,如果查看原文请点:http://news.chinaunix.net/opensource/2013/0723/2860146.shtml

论坛徽章:
29
技术图书徽章
日期:2013-09-02 19:59:502015元宵节徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系统版块每日发帖之星
日期:2015-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17操作系统版块每日发帖之星
日期:2015-09-21 06:20:002015亚冠之水原三星
日期:2015-10-30 00:06:07数据库技术版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2016-01-07 10:32:07操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-05-18 06:20:00IT运维版块每日发帖之星
日期:2016-07-23 06:20:00
发表于 2013-07-27 16:42 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP