Giriş
Şu satırı dahil ederiz
import com.hazelcast.config.MapStoreConfig;
Kullanılacak MapLoader veya MapStore sınıfını belirtir. DataConnectionConfig ile birlikte kullanılır
setClassName metodu - Fully Qualified MapStore Class Name
Örnek - GenericMapStore + DataLinkConfig
Şöyle yaparız. MapStoreConfig sınıfına verilen string sabitler aynı zamanda GenericMapStore içinde de tanımlı
Config config = ... MapStoreConfig mapStoreConfig = new MapStoreConfig() .setClassName(GenericMapStore.class.getName()) // Use GenericMapStore as MapStore .setProperty("data-connection-ref", "datastore") // DataConnection to use .setProperty("table-name", randomTableName); // Table name to read from .setProperty("type-name", "org.example.Person"); MapConfig mapConfig = new MapConfig(randomTableName) .setMapStoreConfig(mapStoreConfig); config.addMapConfig(mapConfig);
Örnek - Custom MapLoader
Şöyle yaparız
var config = new Config(); ... config.addMapConfig(new MapConfig("*").setBackupCount(0).setAsyncBackupCount(0)); config.addMapConfig(new MapConfig("TestMap") .setMapStoreConfig(new MapStoreConfig() .setClassName(MyLoader.class.getName()) .setWriteDelaySeconds(10) .setWriteBatchSize(100) .setWriteCoalescing(true) .setInitialLoadMode(MapStoreConfig.InitialLoadMode.LAZY)) .setEvictionConfig(new EvictionConfig() .setEvictionPolicy(EvictionPolicy.LRU) .setSize(500) .setMaxSizePolicy(MaxSizePolicy.PER_NODE)) .setMaxIdleSeconds(60) .setBackupCount(0).setAsyncBackupCount(0) );
setEnabled metodu
Varsayılan değer true. O yüzden true ile çağırmaya gerek yok
Bir MapStore nesnesi alır. MapStore nesnesinin tüm metodlarını kodlamak istemiyorsak MapStoreAdapter sınıfından kalıtım yapılabilir
Örnek
Şöyle yaparız. Burada AccountMapLoader nesnesine bir tane Spring repository geçiliyor. Böylece MapLoader Spring'i kullanabilir.
@Bean public Config config(AccountRepository accountRepository) { Config config = new ClasspathYamlConfig("hazelcast.yml"); MapStoreConfig accountMapStoreConfig = new MapStoreConfig(); accountMapStoreConfig.setInitialLoadMode(MapStoreConfig.InitialLoadMode.EAGER); accountMapStoreConfig.setEnabled(true); accountMapStoreConfig.setImplementation(new AccountMapLoader(accountRepository)); MapConfig accountMapConfig = new MapConfig(); accountMapConfig.setName("account"); accountMapConfig.setMapStoreConfig(accountMapStoreConfig); config.getMapConfigs().put(accountMapConfig.getName(), accountMapConfig); return config; }
setInitialLoadMode metodu
Normalde MapStore LAZY çalışır ve ilklenirken veri yüklemez. Bunu değiştirmek için kullanılır
Örnek
Şöyle yaparız
new MapStoreConfig() .setEnabled(true) .setInitialLoadMode(MapStoreConfig.InitialLoadMode.EAGER) .setImplementation(store);
setMaxIdleSeconds metodu
HazelcastAPI Max Idle Seconds ve TTL yazısına taşıdım
setWriteDelaySeconds metodu
Arka tarafta bu işi WriteBehindStore gerçekleştiriyor
Örnek
Şöyle yaparız
mapStoreConfig.setWriteDelaySeconds(10);
Hiç yorum yok:
Yorum Gönder