OrientDB圖數據庫-兩地三中心環境搭建

本文基於 OrientDB 3.1.6 

master1,master2 部署在深圳數據中心 ,分別作爲生產中心,同城容災中心。

master3  部署在成都數據中心 ,作爲異地容災中心。

 

分佈式配置涉及config/  目錄下三個文件:

一、修改 orientdb-server-config.xml 文件

啓用 OHazelcastPlugin ,nodeName 屬性設置 節點名稱,三個節點分別設置爲 master1、master2、master3

        <handler class="com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin">
            <parameters>
                <parameter value="master1" name="nodeName"/>
                <parameter value="${distributed}" name="enabled"/>
                <parameter value="${ORIENTDB_HOME}/config/default-distributed-db-config.json" name="configuration.db.default"/>
                <parameter value="${ORIENTDB_HOME}/config/hazelcast.xml" name="configuration.hazelcast"/>
            </parameters>
        </handler>

二、修改default-distributed-db-config.json  文件

增加了replication和hotAlignment屬性,同時在servers屬性中設置master1、master2、master3爲master角色 , 其中 writeQuorum 設置爲了 majority, readQuorum 爲1  其他參數設置參考文章末尾附錄的參考文檔。

readQuorum 在“讀取”操作(記錄讀取,查詢和遍歷)上,這是在將響應發送到客戶端之前要保持一致的響應的數量。如果您不想在讀取時進行此檢查,請設置爲1 1
writeQuorum 在“寫”操作(數據庫上的任何寫操作)上,這是將響應發送到客戶端之前要保持一致的響應的數量。如果您不想在寫入時進行此檢查,則設置爲1。建議值爲默認值“多數”,即N / 2 + 1,其中N是可用節點數。這樣,僅當大多數節點是連貫的時才達到仲裁。“所有”表示所有可用節點。從v2.2開始,N表示僅MASTER服務器。有關更多信息,請參見服務器角色 "majority"

 

{
  "replication": true,
  "hotAlignment": true,
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "static",
  "servers": {
    "master1": "master",
	"master2": "master",
	"master3": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

三、修改  hazelcast.xml 文件

 port 禁用 increment,multicast 設置enabled 爲 false ,禁用廣播方式,  增加 tcp-ip 節點,手動設置三個成員節點。 

<network>
		<port auto-increment="false">2435</port>
		<join>
			<multicast enabled="false">
				<multicast-group>235.1.1.1</multicast-group>
				<multicast-port>2434</multicast-port>
			</multicast>
			<tcp-ip enabled="true">
				<member>機器ip:2434</member>
				<member>機器ip:2435</member>
				<member>機器ip:2436</member>
			</tcp-ip>
			<kubernetes enabled="false">
				<pod-label-name>orientdb-cluster-member</pod-label-name>
				<pod-label-value>true</pod-label-value>
				<service-port>2434</service-port>
			</kubernetes>
		</join>
	</network>

 

注意需要使用bin目錄下的 dserver.sh  啓動腳本來啓動集羣,而不是 server.sh   ,啓動集羣后,查看log目錄下的 orient-server.log 日誌,檢查 status 是否爲online ,如果是則表示節點正常。

當啓動節點數小於大多數,新增數據提示在線節點數不足,當全部節點啓動後,新增成功,集羣搭建完畢。

 

參考文檔

 https://orientdb.org/docs/3.0.x/distributed/Distributed-Architecture.html

 https://orientdb.org/docs/3.0.x/gettingstarted/tutorials/Tutorial-Setup-a-distributed-database.html

 

 

 

 

 

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