我們有一個JAVA網絡應用程序,它使用postgres(單個數據庫與從屬)來存儲所有重要數據。雷迪斯,蒙戈或Hazelcast?
我們現在正從單一服務器設置轉移到多臺服務器,因此我需要做一些更改以解決新的需求。
1)非粘性會話ID用於負載平衡和分區容限。
2)可從所有Web服務器訪問的頻繁讀取數據緩存(在內存/ Memcache中)。
3)隊列(電子郵件,短信,通過羣集執行的任務)。通常它們都必須通過xml api或屏幕抓取來執行。
避免重複處理任務很重要,但有時可能發生:-)
4)持久存儲API請求和響應(大量XML,大量行但列數很少)。 (可能通過刪除舊的請求和響應來保存數據集來歸檔)。
5)登錄到一個共同的地方。桌子將繼續增長。另外我需要一個工具來訪問生產日誌而不停止它們。根據時間和/或搜索字符串進行某種搜索應該是可能的。
我想要一個解決方案來滿足所有這些要求,並根據我的個人偏好查看redis,mongo和hazelcast作爲可能的替代方案。
其他重要注意事項: 1)少入侵我們的代碼。 2)簡單的備份/複製策略。至少主奴隸。 3)可管理性,社區並經過測試(在生產中運行)。
哪些能夠執行所有或大部分功能和要求?
編輯 - 我做了什麼
- Redis的支持會話管理器tomact。
- Redis for caching
- Jesque(Respue的java版本)支持redis。
- Postgres的
- SLF4J通過Log4j2
截至目前我對分佈式數據庫不感興趣。當我們需要擴大規模時,Mongo似乎更像是未來的postgres競爭對手。 – gladiator 2012-01-10 15:15:37