pgpool-II是一个工作于PostgreSQL服务器端和PostgreSQL客户端之间的中间件,它提供了如下的功能:

1.连接池

  pgpool-II中保存了到PostgreSQL服务器的连接,然后当一个有着同样属性(也就是说用户名,数据库,协议版本相同)的新连接请求到来时,重用保存在pgpool-II中的连接。这样可以减轻连接的开销,改进这个系统吞吐量。

2.复制

  pgpool-II能够管理多个PostgreSQL服务器。运用复制功能来在2个或者多个物理磁盘上创建数据库的实时备份,这样当一个磁盘出现故障时,系统 还能够继续提供服务。

3.负载平衡

   假设一个数据库复制成多个,无论在哪一个数据库服务器上执行Select查询都会返回相同的结果。pgpool-II利用了复制的特点,通过将Select查询步骤分配到多个数据库服务器上来减少每一个数据库服务器的负载,这样做改进了系统整体的吞吐量。系统性能将随着服务器的数量成比例的提高。当有许多用户同时执行多个请求时,负载平衡的优点就能很好体现出来。

4.限制多余的连接

   PostgreSQL数据库有一个最大并发连接数的限制,超过这个限制数的连接将会被拒绝。虽然能更改最大连接数,但是增加了资源消耗,影响了系统性能。pgpool-II也有最大连接数的限制,但是多余的连接将会被排成队列的形式等待,而不是马上返回一个错误的信息。

5.并行查询

  通过运用并行查询的功能,数据能被分发到多个服务器上,这样一个请求能并发的在多个服务器上执行以减少系统整体的执行时间 。并行查询在处理搜索大规模数据时很有帮助。

pgpool-II和PostgreSQL的前后端协议通信,并在前端和后端之中传达连接。因此,一个数据库应用程序(前端)认为pgpool-II是一个PostgreSQL服务器,同时,数据库服务器(后端)认为pgpool-II是它的客户端之一。因为pgpool-II对数据库服务器和客户端都是透明的,所以一个现有的数据库应用程序不用做任何更改就能使用pgpool-II。

pgpool postgresql集群、中间件的更多相关文章

  1. 基于pgpool搭建postgresql集群

    postgresql集群搭建 基于pgpool中间件实现postgresql一主多从集群部署,这里用两台服务器作一主一从示例 虚拟机名 IP 主从划分 THApps 192.168.1.31 主节点 ...

  2. 云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator

    使用 PGO 在 Kubernetes 上运行 Cloud Native PostgreSQL:来自 Crunchy Data 的 Postgres Operator! Cloud Native Po ...

  3. postgresql集群方案参考答案

    PostgreSQL配置Streaming Replication集群 http://www.cnblogs.com/marsprj/archive/2013/03/04/2943373.html p ...

  4. 云原生 PostgreSQL 集群 - PGO:5分钟快速上手

    前提条件 请确保您的主机上安装了以下实用程序: kubectl git 安装 第 1 步:下载示例 首先,转到 GitHub 并 fork Postgres Operator 示例存储库: https ...

  5. 分布式 PostgreSQL 集群(Citus)官方教程 - 迁移现有应用程序

    将现有应用程序迁移到 Citus 有时需要调整 schema 和查询以获得最佳性能. Citus 扩展了 PostgreSQL 的分布式功能,但它不是扩展所有工作负载的直接替代品.高性能 Citus ...

  6. 分布式 PostgreSQL 集群(Citus)官方示例 - 实时仪表盘

    Citus 提供对大型数据集的实时查询.我们在 Citus 常见的一项工作负载涉及为事件数据的实时仪表板提供支持. 例如,您可以是帮助其他企业监控其 HTTP 流量的云服务提供商.每次您的一个客户端收 ...

  7. 分布式 PostgreSQL 集群(Citus)官方示例 - 时间序列数据

    在时间序列工作负载中,应用程序(例如一些实时应用程序查询最近的信息,同时归档旧信息. https://docs.citusdata.com/en/v10.2/sharding/data_modelin ...

  8. 分布式 PostgreSQL 集群(Citus)官方安装指南

    单节点 Citus Docker (Mac 与 Linux) Docker 镜像仅用于开发/测试目的, 并且尚未准备好用于生产用途. 您可以使用一个命令在 Docker 中启动 Citus: # st ...

  9. 分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践

    确定应用程序类型 在 Citus 集群上运行高效查询要求数据在机器之间正确分布.这因应用程序类型及其查询模式而异. 大致上有两种应用程序在 Citus 上运行良好.数据建模的第一步是确定哪些应用程序类 ...

随机推荐

  1. Spring Filter components in auto scanning

    In this Spring auto component scanning tutorial, you learn about how to make Spring auto scan your c ...

  2. Spring EL hello world example

    The Spring EL is similar with OGNL and JSF EL, and evaluated or executed during the bean creation ti ...

  3. AppDelegate 、UIApplication 的用法

    转载自  http://blog.chinaunix.net/uid-26768267-id-3300042.html //AppDelegate.h 头文件 #import <UIKit/UI ...

  4. ASP.NET(C#)中的try catch异常处理机制

    在开发一个Umbraco平台系统的过程中,遇到了问题. 写的代码如下 fileUrl = MediaHelper.GetMediaUrl(Convert.ToInt32(publishedConten ...

  5. C#学习笔记(五):泛型

    认识泛型 泛型使类型参数化,从而实现了算法上的代码重用. 同时由于去掉了转换中装箱和拆箱的操作,使用泛型还可以提高程序的运行速度. 我们先看看C#自带的使用了泛型的类: using System.Co ...

  6. 工具栏停靠实现(toolbar docking)

    // TODO: 如果不需要工具栏可停靠,则删除这三行 m_ToolBar_File.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_A ...

  7. Angularjs 整体框架结构

    //angulajs整体代码框架结构/** * @license AngularJS v1.2.6 * (c) 2010-2014 Google, Inc. http://angularjs.org ...

  8. UVA 439 Knight Moves

      // 题意:输入标准国际象棋棋盘上的两个格子,求马最少需要多少步从起点跳到终点 BFS求最短路: bfs并维护距离状态cnt, vis记录是否访问过 #include<cstdio> ...

  9. BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数

    1005: [HNOI2008]明明的烦恼 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

  10. HDU 4587 B - TWO NODES tarjan

    B - TWO NODESTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view ...