2015-09-01 68 views
0

我已經集成twemproxy到網絡層和我有6 Elasticache(1個主站,5讀副本),我得到的問題是,所有副本都有相同的密鑰一切都是相同的,但緩存命中的一個副本比方法更其他人和我進行了幾次負載測試仍然在每次測試中我都得到了相同的結果。我有單獨的數據引擎寫入此羣集的主服務器上,剩下的5個副本服務器與其同步。所以我只使用twemproxy從Elasticache讀取數據,而不是爲了分片目的。所以我簡單的問題是,爲什麼我得到90%的Elasticache的單一讀副本命中應該在所有閱讀副本均勻分佈命中?對?不均勻緩存命中

謝謝你提前

回答

0

Twemproxy哈希一切,我記得。這意味着它會嘗試在你給它的主人之間分配鑰匙。如果你有一個主人,這意味着它將所有東西都散列到一臺服務器上。因此,就其而言,您有一臺服務器可以接受查詢。因此,在這種情況下,它不會幫助你。

如果您希望單個端點通過一組相同的從站分佈讀取,則需要在從站之前放置一個TCP負載平衡器,並讓您的應用程序與負載平衡器的IP端口進行通信。常用選項的Nginx和HAProxy的以軟件爲基礎的,在AWS上可以使用它們的負載平衡器,但你可能會遇到的各種資源限制在你的控制那裏,幾乎所有的硬件負載平衡器將工作以及(雖然這是困難的,如果在AWS上不是不可能的)。

要使用的負載均衡是依賴於與每個選項你(或你的人員的)的舒適性和知識水平。

+0

但正如我所說,我們沒有使用Twemproxy因爲我們只是用它讀目的哈希。 – Rohit

+0

Twemproxy總是哈希,這是它是由做。除非你自己修改源代碼。使用單個可接受的服務器,所有密鑰將散列到它所擁有的一個插槽。所以,一臺服務器。或者,你有一個熱門的碎片。或兩者。無論哪種方式,無論您是否願意,Twemproxy都會散列數據。 –