Web-Server

啟動 cassandra 佈局

  • September 4, 2012

我們在單個伺服器上託管了一個流量相對較低的網站(每天瀏覽量約為 1K 次),並預計它在未來幾年內會顯著增長。

我正在考慮轉移到 Rackspace CloudServer 或 EC2 並啟動 3 個節點(全部在 CentOS 上):

  • 2 x Web (Apache) - 帶負載均衡器
  • 1 x MySQL(用於 Wordpress 驅動的部分)

問題是現在把 Cassandra 放在哪裡……

它應該位於每個 Web 節點還是 MySQL 節點上?

我現在的想法是把它放在 Web 節點上。據我了解,Cassandra 具有容錯的優點(即,如果我們關閉一個節點,該站點仍然可以執行)。因此,即使只有 2 個節點,我們也會獲得這樣的好處,而不是僅僅將它放在 MySQL 節點上。

此外,隨著我們擴大規模並添加另一個節點,cassandra 實例可以隨之而來,並且 php 始終可以在 localhost 上執行其查詢。這是一個好主意嗎?

查看它的一種方法是確定每個應用程序消耗的資源並在節點之間平衡它們的使用。

  • MySQL:記憶體、磁碟 I/O、CPU
  • 阿帕奇:記憶體、CPU
  • Cassandra:記憶體、磁碟 I/O

從上面的“fag 數據包的背面”開始,我將從 Cassandra 和 Apache 共享的前提開始,單獨使用 MySQL,然後從該起點挑選並改進該方法。

需要記住的一點是,如果您執行 Cassandra,您將需要決定是將所有內容保留在 JVM 中並根據需要進行擴展,還是放入 JNA 並允許您的行記憶體存在於系統記憶體中。

這些天的最佳實踐是使用 JNA 執行,因為它還允許您在沒有記憶體佔用的情況下拍攝快照(因為 JNA 允許 java 設置硬連結),但是一旦您開始在 cassandra 和其他應用程序之間共享非 JVM 系統記憶體,您很可能會在毫無防備的時刻開始默默地對自己哭泣。如果可以,請考慮在不同的機器上執行 cassandra。

但如果不是——只有當你有多個節點並且你的複制因子和讀寫的一致性級別被正確計算時,你才能在 Cassandra 中獲得容錯。對於三節點環,如果您主要關心的是容錯/數據可用性,我會將複製因子設置為 3,並將您的一致性級別設置為 ONE 以進行讀寫。

引用自:https://serverfault.com/questions/412792