PostgreSQL之Citus架構部署

Citus架構介紹

Postgresql由於強大的功能和良好的擴展性,基於postgresql來做的分佈式架構也比較多,大部分用於分析類場景。
Citus以插件的方式擴展到postgresql中,獨立於postgresql內核,所以能很快的跟上pg主版本的更新,部署也比較簡單,是現在非常流行的分佈式方案。Citus在蘇寧有大規模應用,微軟也提供citus的商業支持。下面是citus的架構:
在這裏插入圖片描述
Citus節點主要分爲協調節點和工作節點,協調節點不存儲真實數據,只存儲數據分佈的元信息,實際的數據被分成若干分片,打散到不同worker節點中,應用連接協調節點,協調節點進行sql解析,生成分佈式執行計劃,下發到worker節點執行,cn將結果彙總返回客戶端。

Ciitus的主要架構特點如下:
①有兩種表類型:參考表和分佈表,參考表每個協調節點和worker節點都有一份完整的副本,分佈表則會打散分佈到不同worker中。
②可以進行讀寫分離,如上圖cn1爲寫節點,可以通過再增加多個cn讀節點增加集羣讀的能力,寫cn和讀cn之間使用流複製進行元數據同步。
③支持MX模式,可以將元數據也存在某些worker節點中,這樣使得該worker節點能夠直接提供寫的能力,以此增加集羣寫的能力。
④底層worker節點可以通過流複製搭建副本,保證數據高可用。
⑤做join時最好的結果是能夠將計算下推到worker節點,但是只有在參考表和其他表做join以及兩個表的分佈方式相同的情況下才能下推到worker計算,否則需要將數據拉到協調節點進行計算。
⑥整體架構類似mycat的中間件,因爲沒有全局事務管理,故不能保證數據的實時讀一致性,但是性能上相比要好。數據寫一致性使用2pc來保證。

部署

  • 環境說明:Centos7.7

安裝Citus

官方部署文檔:
https://docs.citusdata.com/en/v7.2/installation/production_rhel.html

  1. 獲取官方的源,配置好yum
    官方同時提供docker部署方法
curl https://install.citusdata.com/community/rpm.sh | sudo bash
sudo yum install -y citus92_12

官網下載:
https://www.citusdata.com/download/
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章