當Fetchinig多個密鑰集,我可以看到,客戶端發出在一個長字符串的請求,併發送至所連接的couchbase服務器(協議似乎包括每個按鍵的vbucket地圖以及)獲取一組密鑰?
所以,一個網絡來自客戶端的所有密鑰,他們的vbucketmaps。
服務器如何響應此請求?
如果連接的服務器具有請求的所有值,那麼我希望連接的服務器只給出請求的值。
但是,如果有多個羣集,則連接的服務器可能沒有請求的密鑰。服務器在這種情況下做什麼?我可以看到請求中包含vbucket映射,由此可以預料,連接的服務器可能會詢問特定的Key的主服務器的值。這只是我的猜測,我想知道服務器在這種情況下如何迴應。
此外,如果密鑰存在,會發生什麼情況,但由於「服務器繁忙」或其他錯誤導致服務器無法返回值。
始終與您的幫助表示讚賞
嗯有點難以理解atm ... 對於第一部分,正如我可以從你的寫作看到的,看起來像多個網絡調用可以由客戶端完成,你也說「發送每個相應的包含該多操作中所有密鑰的服務器「如果這種服務器不存在,該怎麼辦?在第二部分中,您說過「將其拆分併發送到適當的服務器」這是否意味着客戶端連接到多個服務器併發送適當的請求? 第三部分,如果有3個鍵和1未能得到。整個請求是否返回錯誤?想詳細瞭解更多。謝謝 – 2012-04-12 01:35:45
我很抱歉我的回答有點混亂。您開始提出更詳細的問題,以便您可以告訴我您使用哪個客戶端連接到Couchbase。這樣我可以更好地回答你的問題。 – mikewied 2012-04-15 03:53:02
由客戶端,你的意思是我認爲...我還沒有決定使用哪個庫,但看着spymemcached(JAVA)和libcouchbase(C++)。看起來像兩個行事很相似 – 2012-04-16 00:38:23