Postgres-XL 负载均衡

Postgres-XL Load Balancing

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

我说得对吗,负载平衡取决于 Postgres-XL 用户,还是有特定的方法来进行负载平衡(使用协调器等的负载信息)操作并使其高可用?

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

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

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

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