2015-05-22 49 views
1

我們正在使用memcache php客戶端在我們的php應用程序中實現memcached。我們託管在當前使用7臺前端服務器的AWS環境中,以訪問僅一個數據庫。 當然,我們想共享所有服務器之間的緩存。 我們是否應該在所有前端服務器上安裝memcached,並將它們添加到memcached池(callind addserver(xx.xx.xxx.xx)),或者我們應該有專用機器作爲「memcached服務器」?memcached在aws環境中的最佳實踐?

回答

1

您應該與ElastiCache羣集使用Memcached引擎與形成羣集的專用節點/服務器。
請注意,在Memcached中,節點彼此不知曉,但Memcached Client處理集羣中的數據分佈和負載平衡。因此,您的前端服務器將固有地將共享 Memcached羣集,而不用擔心哪個節點當前正在保存數據。

在這裏做最重要的事情是利用自動發現通過ElastiCache在AWS部署在您的應用程序並不需要手動連接到單獨的緩存節點提供功能;相反,您的應用程序連接到配置終結點的。應用程序/前端服務器不需要知道羣集中的節點數量,並且可以根據應用程序的吞吐量和負載來添加或刪除任意數量的節點。
有關自動發現功能的更多細節可以在here找到。

它確實幫助我們在生產部署中將我們的Memcached羣集無縫地從2個節點擴展到16個節點,而無需重新啓動任何應用程序服務器。

+0

謝謝Ankur!我們已經在做! ;) –

1

我會去ElastiCache實例運行memcahced引擎(如果你想堅持memcahced)。

我們在生產中使用過這種設置,並且比單獨安裝更容易維護。另外,您不必處理不一致性問題。

+0

感謝您的回答!我們正在使用ElastiCache!到現在爲止還挺好! :) –