オラクルのコヒーレンスに代わるオープンソースの方法はありますか?
(ところで、とにかくコヒーレンスにはどれくらいの費用がかかりますか?)
オラクルのコヒーレンスに代わるオープンソースの方法はありますか?
(ところで、とにかくコヒーレンスにはどれくらいの費用がかかりますか?)
Hazelcastは、Java 用のオープン ソースのトランザクション分散型キャッシング ソリューションです。Apache ライセンスの下でリリースされています。
Hazelcast は、実際には分散キャッシュ以上のものです。Java のキュー、トピック、マップ、マルチマップ、ロック、エグゼキュータ サービスの分散実装です。
Infinispan は有望に見えます。
EhCacheはまともな複製キャッシュを提供しますが、Coherence が提供する機能セットにはほど遠いものです。
JBoss CacheとEHCacheは適切なクラスター化されたキャッシュ ソリューションです。しかし、このカテゴリで最も高度な製品であるTangosol Oracle Coherenceのようなすべての機能と優れた管理コンソールを備えているものはありません。価格については、 Oracle Coherence Web ページの右側に「今すぐ購入」ボタンがあります。
Memcachedは、多くの注目を集め、高トラフィック/ボリュームのアプリで使用されている優れたオープン ソースの代替手段でもあります。
Project Voldemortは、コヒーレンスの優れた (無料の) 代替手段です。
私はオープンソースの分散キャッシュを調査しており、EHCahe と JBoss Pojo Cache に焦点を当てています。
どちらもまともな製品ですが、私のユースケースでは、オブジェクトグラフを配布し、すべてのノードで共有参照を維持する必要があるという問題があります。EHCache はこれを処理できません。標準の Java シリアル化を使用するため、共有参照が失われます。
たとえば、マネージャー/従業員のオブジェクト階層がある場合、すべてのノードに従業員への参照を含む単一の「マネージャー」オブジェクトが必要です。EHCache では、Java シリアライザーがすべての依存オブジェクトをコピーするため、これを取得できません。JBoss Pojo Cache を使用すると、オブジェクト グラフが保持されます。
欠点は、JBoss がクラスを計測する必要があることです (オブジェクト グラフを構成するプリミティブは、バックグラウンドでツリー構造に格納されます)。これにより、OSGi 環境での実行時に問題が発生する可能性があります。
JBoss は JGroups を通信スタックとして使用します。ノード間の通信を管理するためにマルチキャストまたは TCP/IP を選択できます。
お役に立てれば。
私も良い代替案を探していました。私が見つけた全体的な機能で最も近いのはTerracottaとRedisですが、Coherence のどの側面がプロジェクトにとって重要であるかを知っておくと役立ちます。