2016-01-13 25 views
0

我想添加到當前的應用程序實現我正在JCache兼容技術工作。目前,我已經能夠使用Apache Ignite,並使用一個緩存存儲的實現來讀取和寫入數據庫,並使它與兩個緩存一起工作。寫入操作是使用批量寫入完成的。有些配置不是JCache的一部分,但我可以通過Ignite提供的擴展類MutableConfiguration來添加它。另外,我使用Spring完成了這項工作,沒有使用CacheProvider或CacheManager,所以在我的配置類中,我直接將緩存作爲bean公開。我從Ignite類中獲取它們,它接受我的配置類,並允許我通過名稱獲取緩存。 現在我試圖將此配置移植到Hazelcast,但是我遇到問題。如何使用JCache以編程方式配置Hazelcast並在後面使用writw?

對於啓動,我一直沒有找到一種方法來配置緩存編程方式沒有XML文件。我找到的所有示例都使用CacheManager,該對象帶有一個Properties對象以及該文件的路徑。如果我將路徑傳遞給類而不是xml,它會起作用嗎?

我已經看到用於配置HazelcastInstance的Config.class接受CacheSimpleConfig,但是然後HazelcastInstance沒有getCache方法或類似方法。如果我以這種方式配置高速緩存,那麼如何從HazelcastInstance獲取高速緩存?

最後一件事,我注意到沒有任何文檔與配置後面的緩存配置相關,僅適用於地圖。這不可能嗎?高速緩存是否只允許寫入?

謝謝!

回答

3
  1. 由於後置寫入不在當前JCache規範中。它也不在Hazelcast中。 從點燃的文檔,

「點燃提供了同時擴展,緩存加載器並且CacheWriter org.apache.ignite.cache.store.CacheStore界面。」

這意味着您必須使用Ignite的專有API來獲得後寫功能。恕我直言,使用JCache是​​沒有用的,因爲在這種情況下你會有供應商鎖定。 JCache規範的目標是結束所有專有緩存API。

如果你想使用合適的API,那麼我建議你使用Hazelcast的IMap來獲得後寫功能。

  1. 您可以在創建緩存時以編程方式傳遞緩存配置;

Caching.getCachingProvider().getCacheManager().createCache("cache", cacheConfig);

而且下面示例項目可能是有用的;

https://github.com/hazelcast/hazelcast-code-samples/tree/master/hazelcast-integration/spring-jcache

它顯示XML和Java配置。

相關問題