黄东旭关于基础软件产品价值的思考
581
2023-06-14
十分钟搭建实验分布式数据库环境
划水了好久,今天来跟大家分享一下如何用一台笔记本,构建一套分布式数据库的实验环境吧。我们使用docker 和 postgres xl 来完成。
各位读者老爷们扣Q上车,Let's Go!!!!
Postgres XL 简介
什么是Postgres-XL
XL的意思是:eXtensible Lattice,可以扩展的格子,即将***应用在多机器上的分布式数据库的形象化表达。
Postgres-XL 是一个完全满足ACID的、开源的、可方便进行水平扩展的、多租户安全的、基于***的数据库解决方案。
Postgres-XL 可非常灵活的应付各种负载,比如:
OLAP(通过MPP并行化)OLTPOLAP & OLTP操作数据存储Key-value存储,包括JSON格式
不同的应用场景:
支持商业智能应用(数据仓库&数据集市),因为PGXL支持MPP(Massively Parallel Processing)Web2.0,数据库扩容的解决方案遗留系统的数据库扩容的解决方案新应用,可以先使用***,之后随着数据库变大使用PGXL扩容
PGXL底层为***,这意味着它支持所有支持PostgresSQL类型的驱动,包括:JDBC, ODBC, OLE DB, Python, Ruby, perl DBI, Tcl, and Erlang.
***与Postgres-XL
1994年,Postgre95发布,开源。1996年,***继承了Postgre95,发布。2010年,Postgres-XC发布。2012年,前PGXC核心开发者创建StormDB公司,进行了一些改进,包括对MPP并行化的性能改进和多租户安全。2013年,TransLattice收购了StormDB。2014年,将项目开源,命名为Postgres-XL。
Postgres-XC与Postgres-XL
PGXL的架构师和开发者 很多都是以前做PGXC的,PGXL的部分代码是从PGXC移植过来的。
比起功能性,PGXL更强调稳定性, 正确性和性能.
PGXL增加了一些重要的性能提升,比如MPP和replan avoidance on the data nodes,这些都是PGXC没有的。
PGXC目前集中在OLTP的业务上面,PGXL则更加灵活,可以应用于很多不同种类的业务上,比如可以用在大数据处理领域,除此,在多租户的环境中,PGXL也更加安全。
PGXL的社区非常开放。
架构
GXL有三个主要组件,分别是GTM,Coordinator(CN)和Datanode(DN)。
GTM(Gloable Transaction Manager)负责提供事务的ACID属性;Datanode负责存储表的数据和本地执行由Coordinator派发的SQL任务;Coordinator负责处理每个来自Application的SQL任务,并且决定由哪个Datanode执行,然后将任务计划派发给相应的Datanode,根据需要收集结果返还给Application;
Postgres XL on Docker
我们采用一个GTM,2台CN,2台DN,结构如下图所示:
如果有需要,可以开启gppool,也可以注释掉,不影响使用
pgpool.conf
listen_addresses = '*'port = 5432# pool_passwd = 'dafei1288'socket_dir = '/tmp'pcp_listen_addresses = '*'pcp_port = 9898pcp_socket_dir = '/tmp'listen_backlog_multiplier = 2serialize_accept = offreplication_mode = onload_balance_mode = onbackend_hostname0 = 'db_coord_1'backend_port0 = 5432backend_weight0 = 1backend_data_directory0 = '/data0'backend_flag0 = 'ALWAYS_MASTER'backend_hostname1 = 'db_coord_2'backend_port1 = 5432backend_weight1 = 1backend_data_directory1 = '/data1'backend_flag1 = 'ALLOW_TO_FAILOVER'health_check_period0 = 0health_check_timeout0 = 20health_check_user0 = '_healthcheck'health_check_password0 = ''health_check_database0 = ''health_check_max_retries0 = 0health_check_retry_delay0 = 1connect_timeout0 = 10000
实验结果
参考列表
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。