すべての重要なデータを格納するためにpostgres(スレーブ付きの単一のデータベース)を使用するJAVA Webアプリケーションがあります。レディス、モンゴー、ヘーゼルキャスト?
ここでは、単一のサーバーセットアップから複数のサーバーに移行しているため、新しい要件を満たすためにいくつかの変更を加える必要があります。
1)ロードバランシングとパーティション許容のための非粘着セッションID。
2)すべてのWebサーバーからアクセスできる頻繁に読み取られるデータのキャッシュ(In Memory/Memcacheの代替)。
3)キュー(電子メール、SMS、クラスタ上で実行するタスク)。通常、それらはすべてxml APIまたはスクリーンスクレイピングで実行する必要があります。タスクの重複処理を回避
は重要ですが、時にはそれがAPIのリクエストとレスポンス(XMLたくさんの、行の多くが、列の数が少ない)の:-)
4)永続ストレージを発生することがあります。 (おそらく、データセットを小さく保つために古い要求と応答を取り除いてアーカイブする)。
5)共通の場所にログを記録する。テーブルは成長し続けるでしょう。また、私はそれらを停止せずに生産のログにアクセスするためのツールが必要になります。時間や検索文字列に基づいて何らかの検索が可能でなければなりません。
これらのすべての要件に対処し、可能な選択肢として、赤目、モンゴー、ヘイルキャスト(個人的な好みの順に)を見ている単一のソリューションが必要です。
その他の重要な考慮事項 1)われわれのコードへの侵入が少なくなる。 2)簡単なバックアップ/複製戦略。少なくともマスタースレーブ。 3)管理性、コミュニティ、試用版とテスト済み(運用中)。
この機能と要件のすべてまたはほとんどを実行できるのはどちらですか?
EDIT - 私はtomactのためのセッションマネージャを担保
- Redisのをやりました。
- キャッシュ用のレディース
- redisに裏打ちされたJesque(レスプスのJavaバージョン)。私はMongoDBの者の視点からこれらのいくつかに対処することができます
- Postgresの
- Log4j2
現在、私は分散データベースに興味はありません。 Mongoは、規模を変えなければならないとき、将来のポストグルのライバルのように見えます。 – gladiator