2016-05-05 36 views
0

我對從orientjs github上的文檔這個例子中幾個問題:澄清orientjs

var server = OrientDB({ 
    host: '10.0.1.5', 
    port: 2424, 
    username: 'root', 
    password: 'root', 
    servers : [{host : '10.0.1.5' , port : 2425}] 
    }); 
  1. 我假設服務器陣列不需要包含主機和端口(即10.0指定的服務器.1.5:例子中的2424)?換句話說,這個包含在列表中?
  2. 服務器(包括在主機和端口指定的)的列表僅用於初始連接上,之後,在集羣中的服務器列表被自動因爲他們來並保持去嗎?
  3. 如何目標服務器選擇(第一個可用的,循環賽,隨機地,負載平衡等)?
  4. 服務器是否僅選擇每個連接(而不是每個查詢/事務)?
  5. 如果選定的服務器出現故障會發生什麼?是否有新的連接透明地嘗試到不同的服務器,或者是否生成了需要調用代碼參與選擇新服務器的異常?

回答

1

1)是並不需要包含服務器。

2)是它們用於第一連接然後,每個羣集形狀改變駕駛員得到通知時間時連接。

3)建立連接與所述列表中的第一個。那麼它會一直呆在那裏直到失敗。

4)每個連接

5)透明的重試下一個服務器列表

+0

謝謝你的簡明的回答。但它讓我擔心所有的客戶端(假設它們具有相同的配置)實質上會連接到同一臺服務器(假設它是活着的)。雖然我可以對列表進行隨機排序以獲得粗略的負載分佈,但推薦的平衡負載的方式是什麼?另外,我似乎回想起一些關於2.2版本的orientjs,它有一些額外的負載均衡支持。簡而言之,我在AWS上運行 - 如何使用Elastic Load Balancer並讓客戶端連接到該IP? – eric

+0

現在沒有Eric,驅動器端沒有負載平衡。 它應該在java驅動程序端執行。但是它也可以在orientjs上輕鬆實現。至少循環賽的東西。 我已經引發了對 https://github.com/orientechnologies/orientjs/issues/173 – wolf4ood

+0

明白了一個問題。謝謝! – eric