Citus transforms Postgres into a distributed database, to give your application high performance—at any scale.
分布式PostgreSQL資料庫CitusDB CitusDB采用PostgreSQL的插件形式(not a fork),即享受PostgreSQL的強大支援,又同時擁有分布式資料庫能力。
citus real-time 分析demo( 來自官方文檔)
citus 對于多租戶以及實時應用的開發都是比較好的,官方也提供了demo
參考項目 https://github.com/rongfengliang/citus-hasuar-graphql
在CentOS中部署多節點Citus叢集的詳細步驟
https://www.jb51.net/article/135450.htm
1 在所有節點執行以下步驟
Step 01 添加Citus Repostory
# Add Citus repository for package manager
curl https://install.citusdata.com/community/rpm.sh | sudo bash
Step 02 安裝Citus并且初始化DB
# install PostgreSQL with Citus extension
sudo yum install -y citus72_10
# initialize system database (using RHEL 6 vs 7 method as necessary)
sudo service postgresql-10 initdb || sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
# preload citus extension
echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/10/data/postgresql.conf
Step 03 配置postgresql.conf
sudo vi /var/lib/pgsql/10/data/postgresql.conf
# Uncomment listen_addresses for the changes to take effect
listen_addresses = '*'
Step 04 配置pg_hba.conf
sudo vi /var/lib/pgsql/10/data/pg_hba.conf
local all all peer
local replication all peer
host all all 192.168.99.1/24 trust
host all all 0.0.0.0/0 md5
Step 05 配置防火牆
檢視
firewall-cmd --zone=public --query-port=5432/tcp
添加5432端口(--permanent永久生效,沒有此參數重新開機後失效)
firewall-cmd --zone=public --add-port=5432/tcp --permanent
重新載入
firewall-cmd --reload
Step 06 啟動服務
# start the db server
sudo service postgresql-10 restart
# and make it start automatically when computer does
sudo chkconfig postgresql-10 on
Step 07 給需要的資料庫安裝Citus擴充
sudo -i -u postgres psql -c "CREATE EXTENSION citus;"
Step 08 設定密碼
postgres=# \password postgres #給postgres使用者設定密碼
Enter new password:
Enter it again:
2 在coordinator節點額外執行以下步驟
Step 01 添加worker節點資訊
添加worker節點的IP位址(或者DNS名稱)和端口号到pg_dist_node表。
sudo -i -u postgres psql -c "SELECT * from master_add_node('192.168.99.101', 5432);"
sudo -i -u postgres psql -c "SELECT * from master_add_node('192.168.99.102', 5432);"
Step 02 驗證安裝是否成功
sudo -i -u postgres psql -c "SELECT * FROM master_get_active_worker_nodes();"
Step 03 開始使用
sudo -i -u postgres psql
end