2017-08-21 2 views
1

Webアプリケーション用のセッションストアを実装したいと思います。ここに私のアプリケーションのプロフィールがあります。Cassandraにヘーゼルキャストを使用するメリットはありますか

  1. セッションに関連付けられた情報は大きく変更されませんが、 時々変更されます。
  2. セッション読み取り(session.getAttribute())は書き込み(session.setAttribute())より頻繁です。
  3. 私はマスターノードベースのアーキテクチャ(redisのような)を扱いたくありません。
  4. セッションに関連付けられたデータは小さいですが、セッション数は大きくなる可能性があります。
  5. ルックアップは常にハッシュマップのようにキー値の形式です。
  6. 私は最終的な一貫性でOKです。
  7. 私はレプリケーションファクタを指定できるようにします。すなわち、与えられたセッションのデータを保持するノードの数
  8. 私は、上記の機能のライセンスコストを必要としないオープンソースのソリューションのみを探しています。
  9. 今のところ、セッションあたり10kbのデータで10,000セッション(平均)を保存したいのですが、最終的には100,000セッション以上に拡大したいと考えています。

私のアプリでは、ヘイルキャストはすでに他の機能に使用されています。しかし、私はそれを決定的要因にしたくありません。カッサンドラは私のすべての要求を満たすと思われ、それは非常に人気があるようです。カッサンドラにヘイルキャストを選んだ理由は何ですか?

+1

ポイント1と2に注意してください。セッションは書き込みが重いです。 Webリクエストを処理するたびに、読み取りまたは書き込みのセッション属性にアクセスするかどうかに関係なく、セッションの最終アクセス時間を更新する必要があります。 –

+0

@NeilStevenson最後のアクセス時間を指摘してくれてありがとう。私はその部分をほとんど忘れてしまった。 – coolk

答えて

8

免責事項:Hazelcastの従業員一般に

私はあなたがHazelcastとカサンドラカサンドラORでHazelcastを交換することができれば、ツールの一つが誤用されていることを主張するだろう。 Cassandraをストレージレイヤ、Hazelcastをキャッシュレイヤーとして使用する人がたくさんいますが、Cassandraはキャッシュではなく、Hazelcastはデータベースではありません。

あなたがストレージに永続化したい場合は、Cassandra(おそらくHazelcastでキャッシュを追加する)に行きます。配布したい場合はHazelcastを使います。後発のケースは特に、(何らかの理由で)クラスタを再起動すると、しばらくの間セッションが失われても「本当に重要ではない」場合は特にそうです。

4

私たちのプロジェクトでは両方を使用しています。一時的で頻繁に変更されるデータ(分散キューや同期プリミティブなど)のために、Cassandraを永続ストレージおよびHazelcastとして使用します。

私はカザンドラ以上のヘビキャストを選択する必要がありますか? Hazelcastはで安いですので、私の意見では

は、Hazelcastは、ビューの開発者の視点から、より簡単であり、本番環境へのカサンドラ(深い設定と細く、repeair、再起動...)のように多くの注意を必要としません。サポート。

関連する問題