Postgres-XL 负载均衡

Posted

技术标签:

【中文标题】Postgres-XL 负载均衡【英文标题】:Postgres-XL Load Balancing 【发布时间】:2017-05-30 15:11:18 【问题描述】:

Postgres-XL 文档和overview 将负载平衡描述为系统的一个独特部分。

我是否正确,是否由 Postgres-XL 用户进行负载平衡,或者是否有特定的方法进行负载平衡(使用协调器的负载信息等)操作并使其高可用?

【问题讨论】:

【参考方案1】:

我认为这个问题没有得到很好的回答,因为 postgres-xl 支持多个协调器的配置,如他们的页面 https://www.postgres-xl.org/documentation/tutorial-arch.html 中所述 哪里说: Postgres-XL 允许多个协调器以集成的方式独立地接受来自应用程序的语句。来自任何协调器的任何写入都可以从任何其他协调器获得。它们就好像它们是单个数据库一样。 Coordinator 的角色是接受语句,找到涉及的 Datanodes,如果需要,将查询计划发送到适当的 Datanodes,收集结果并将它们写回应用程序。

协调器不存储任何用户数据。它仅存储目录数据以确定如何处理语句、目标 Datanode 所在的位置等。因此,您不必太担心 Coordinator 故障。当协调器失败时,您可以切换到另一个。 所以问题是针对如何有一个负载均衡器来连接应用程序和postgres-xl的协调器,其中可以进入nginx或者HAPproxy等解决方案,一个解决方案是nginx及其stream模块,可以连接nginx作为负载均衡器到 postgres-xl

如果您想使用 nginx 作为应用程序和 postgres-xd 数据库之间的负载平衡器,请使用 ngx_stream 模块 配置在链接中 http://nginx.org/en/docs/stream/ngx_stream_core_module.html

【讨论】:

如果你想使用 nginx 作为你的应用程序和 postgres-xd 数据库之间的负载均衡器,请使用 ngx_stream 模块,配置在链接nginx.org/en/docs/stream/ngx_stream_core_module.html【参考方案2】:

Postgres-XL 没有 HA 功能。您可以在协调节点前面放置一个负载均衡器,以便它们在该部分具有冗余。但是这些节点没有故障转移支持,因此任何地方的任何一个节点的丢失都会导致整个集群发生故障。您可以设置镜像节点,但即使这样,如果节点发生故障,也需要人工干预,这显然会使您需要的硬件数量增加一倍。

【讨论】:

以上是关于Postgres-XL 负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Ribbon-负载均衡策略

ribbon负载均衡详解

四层负载均衡技术

快速理解负载均衡

常见的负载均衡技术

系统架构之负载均衡