私はEhCacheインデックス機能はTerracottaとは何の関係もないと思います。 EhCacheの核となる機能です。私はEhcacheとEhcacheの両方をTerracottaの商用バージョンに基づいて使用しています。
あなたはここであなたがsearcheableであるフィールドを指定する必要がありますehcache.xml設定(これはLuceneのインデックスの活動に新しいオブジェクトをキャッシュまたは更新/キャッシュに削除されるたびにトリガーされます)
サンプルを提供しませんこのような構成の一例(私はあなたの要件ごとに=「1024メートル」の設定maxBytesLocalHeapをしました):あなたがehcacheを、APIのテラコッタベースimplementatioを使用する場合
<?xml version="1.0" encoding="UTF-8"?>
<ehcache maxBytesLocalHeap="1024m">
<sizeOfPolicy maxDepth="2000" />
<defaultCache eternal="false" timeToLiveSeconds="600"/>
<cache name="myCacheablePOJO" eternal="true" statistics="true">
<searchable>
<searchAttribute name="field1" />
<searchAttribute name="field2" />
<searchAttribute name="field3" />
</searchable>
</cache>
</ehcache>
あなたがクラスパスに追加jarファイルを持っているにテラコッタを有効にする必要があります構成:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache maxBytesLocalHeap="1.3g">
<sizeOfPolicy maxDepth="2000" />
<defaultCache eternal="false" timeToLiveSeconds="600">
<terracotta/>
</defaultCache>
<cache name="myCacheablePOJO" eternal="true" statistics="true">
<searchable>
<searchAttribute name="field1" />
<searchAttribute name="field2" />
<searchAttribute name="field3" />
</searchable>
<terracotta compressionEnabled="true" />
</cache>
</ehcache>
cache name = "myCacheablePOJO"に「terracotta」タグを追加しました。キャッシュでオブジェクト圧縮を有効にするオプションの属性を使用しています(パフォーマンスがわずかなRAMスペースを節約します)。
つまり、Terracottaクラスタリングを使用しない場合は、ローカルEhCacheの1.2Mの要素でうまくいくはずです。 考慮すべき唯一の問題は、フェイルオーバーです。
- 私のシステムキャッシング戦略とは何ですか?
- JVMクラッシュの場合に、キャッシュされたデータが失われる可能性はありますか?
- JVMの再起動時にローカルキャッシュにデータがどのように読み込まれますか?
上記の沈黙から、商用ソフトウェアのためにシェルを外して、キャッシュを配布する必要がある以外の解決策がないことを理解していますか? このような単純な汎用メモリ内検索可能なキャッシュ機能を提供するEhcache以外のものについての推奨事項はありますか? – sxc731