1、PgBouncer
PG数据库的一个轻量级连接池工具,功能及特点如下:
1)缓存后端PG数据库的连接,当前端应用请求时,分配连接池中的连接给应用,从而充分利用了系统资源。
2)允许应用创建比连接池更多的连接,并未应用连接提供排队等候功能,这样既充分利用了资源,也保证了应用端的高并发。
3)可以对应用连接进行限制,这样,可以起到系统稳定和安全作用。
4)PgBouncer的通信效率非常高。
5)PgBouncer通过C语言实现,短小精悍,消耗很少的系统资源。
6)PgBouncer支持三种连接池模式:会话级别,事务级别,语句级别。
2、Slony-I
PG数据库的一款逻辑复制工具,功能及特点如下:
1)Slony-I支持级联复制,一个节点为订阅者的同时,也可以作为下一级的数据提供者,数据的原始生产者对数据的修改,会在各级订阅者之间传播。
2)Slony-I集群中的各节点上都需要有slon守护进程,以处理复制中的事件,例如:配置事件,同步事件。
3)Slony-I可以通过slonik工具进行管理和配置,其具备处理脚本的能力。
4)Slony-I具备强大逻辑复制功能的同时,也有些限制,例如:大对象的复制,DDL复制,用户权限复制等。
3、Bucardo
PG数据库的一款具备双向同步功能的工具,功能及特点如下:
1)可以为PG实现双master架构,5.0版本之前只能实现双master同步,5.0版本之后可以实现多master同步。
2)该工具为异步同步,这点和mysql的M-S同步很相似。
3)通过触发器记录变化,利用PG消息事件通知机制实现同步。
4)同步灵活,可以只同步数据库中的部分数据子集。
5)daemon为perl语言实现,还通过PL/PgSQL、PL/PerlU函数实现同步。
4、PL/Proxy
PG数据库中实现水平拆分的软件,功能及特点如下:
1)应用把请求发送到该水平拆分中间件,该中间件根据拆分键的hash值,将SQL发送至底层数据节点。
2)PL/Proxy架构中,一些PG数据库作为水平拆分中间件,但其不存储实际数据。除了这些中间件角色的PG库,底层还有一些PG库实际存储数据。
3)PL/Proxy并不是独立运行的程序,而是安装在PG库中的一种PL语言,其可以将请求路由到底层数据库中。
4)对应用方请求的路由,通过对中间件和底层库中同名函数的调用实现。
5、pgpool-II
位于PG服务器和客户端之间的中间件,功能及特点如下:
1)具备连接池功能。
2)可以在多个PG服务器间进行复制。
3)可以在多个PG服务器间进行了负载均衡。
4)限制超过限度的连接。
5)在多台PG服务器间进行并行查询。
6)为多进程架构,包括:PCP进程,pgpool-II父进程,pgpool-II子进程,worker进程。
6、Postgres-XC
基于PG库实现的真正的数据水平拆分的分布式数据库,功能及特点如下:
1)相较其他水平拆分方案,Postgres-XC实现的更彻底,对用户来说,Postgres-XC集群就像单机数据库一样。
2)基于PG实现的集群,是通过修改PG源码实现的集群,而不是架构在PG数据库之上的中间件。
3)PG客户端及驱动可以无差别地连接到Postgres-XC上。
4)实现了全局事务,做到了数据强一致性。
5)对称集群,无中心节点,应用可以读写任意节点。
6)线性扩展读写,通过增加节点,不仅可以扩展读性能,还可以扩展写性能。
7)随着节点的增加,Postgres-XC性能增加接近线性。

postgresql相关开源软件及架构简介的更多相关文章

  1. PostgreSQL相关的软件,库,工具和资源集合

    PostgreSQL相关的软件,库,工具和资源集合. 备份 wal-e - Simple Continuous Archiving for Postgres to S3, Azure, or Swif ...

  2. GPL协议中国第一案尘埃落定,相关开源软件应如何风控?

    导读:2019年11月6日,数字天堂(北京)网络技术有限公司(以下简称 “数字天堂公司”)诉柚子(北京)科技有限公司.柚子(北京)移动技术有限公司(以下简称 “柚子公司”)侵犯计算机软件著作权纠纷一案 ...

  3. Spring Boot 2 (三):Spring Boot 2 相关开源软件

    Spring Boot 2 (三):Spring Boot 2 相关开源软件 一.awesome-spring-boot Spring Boot 中文索引,这是一个专门收集 Spring Boot 相 ...

  4. PHP 之 Laravel 框架安装及相关开源软件

    Laravel 被称为简洁.优雅的PHP开发框架,但第一次接触此框架的人有不少都卡在了安装上,其实在 Linux 下只需要很简单的几步就可以搞定,这里我们以 CentOS 下 PHP + Nginx ...

  5. Spring Boot 2.0(三):Spring Boot 开源软件都有哪些?

    2016年 Spring Boot 还没有被广泛使用,在网上查找相关开源软件的时候没有发现几个,到了现在经过2年的发展,很多互联网公司已经将 Spring Boot 搬上了生产,而使用 Spring ...

  6. (转)Spring Boot 2 (三):Spring Boot 开源软件都有哪些?

    http://www.ityouknow.com/springboot/2018/03/05/spring-boot-open-source.html 2016年 Spring Boot 还没有被广泛 ...

  7. Spring Boot 2.0(二):Spring Boot 开源软件都有哪些?(转)

    2016年 Spring Boot 还没有被广泛使用,在网上查找相关开源软件的时候没有发现几个,到了现在经过2年的发展,很多互联网公司已经将 Spring Boot 搬上了生产,而使用 Spring ...

  8. Spring Boot 2 (三):Spring Boot 开源软件都有哪些?

    016年 Spring Boot 还没有被广泛使用,在网上查找相关开源软件的时候没有发现几个,到了现在经过2年的发展,很多互联网公司已经将 Spring Boot 搬上了生产,而使用 Spring B ...

  9. 开源软件项目管理系统招设计/开发。。。。。Zend Framework2架构 svn://735.ikwb.com/pms

    开源软件项目管理系统招设计/开发.....Zend Framework2架构svn://735.ikwb.com/pms

随机推荐

  1. 20145206邹京儒 EXP7网络欺诈技术防范

    20145206邹京儒 EXP7网络欺诈技术防范 一.实践过程记录 URL攻击实验前准备 1.在终端中输入命令:netstat -tupln |grep 80,查看80端口是否被占用,如下图所示 2. ...

  2. 20145306 《网络攻防》 MSF基础应用

    20145306张文锦<网络对抗>MSF应用 Adobe阅读器渗透攻击 两台虚拟机,其中一台为kali,一台为windows xp sp3,并保证两台虚拟机可以ping通. 实验过程 进入 ...

  3. 20145329 《网络对抗技术》MSF基础应用

    实践目标 掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路.具体需要完成(1)一个主动攻击,如ms08_067;(2)一个针对浏览器的攻击,如ms11_050:(3)一个针对客户端 ...

  4. vijos 1360 八数码问题 - 启发式搜索

    背景 Yours和zero在研究A*启发式算法.拿到一道经典的A*问题,但是他们不会做,请你帮他们. 描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0 ...

  5. python字符串、列表和文件对象总结

    1.字符串是字符序列.字符串文字可以用单引号或者双引号分隔. 2.可以用内置的序列操作来处理字符串和列表:连接(+).重复(*).索引([]),切片([:])和长度(len()).可以用for循环遍历 ...

  6. script 加载顺序问题的延展研究

    今天群里有人问为什么会出现脚本的加载顺序与定义脚本顺序不一致的问题,这个问题引起了我的好奇,经过一番调研,有了这篇文章. 这是一个伪命题吗? 首先,W3C 推荐 script 脚本应该被立即加载和执行 ...

  7. Python3基础 response.getcode 得到http的状态 200表示正常

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. ubuntu16.04下firefly rk3288的编译安卓4.4

    一.背景 OS: ubuntu 16.04 二.配置交叉编译环境 2.1 安装openjdk sudo apt-get install openjdk-7-jdk 2.2 使在同一台机器上可以编译an ...

  9. 【旧版本】Ubuntu 14.04 下 P416编译器 p4c的安装

    注:此为2017年5月份的安装方法,最新的p4c安装方法见: Ubuntu14.04下 安装p4c 参考: p4c README Ubuntu 14.04 下 P4v16编译器 p4c的安装 系统要求 ...

  10. python 集合从头部删除元素

    num_set = , , , , ]) num_set.pop() print(num_set) num_set.pop() print(num_set)