سؤال

هل هناك طريقة لتعيين خاصية "الوقت للعيش" برمجياً (أو في الواقع ، أي خاصية) لخريطة موزعة في Hazelcast؟

أريد تجنب الاضطرار إلى تغيير تكوين Hazelcast XML لهذا الغرض.

أنا أستخدم الإصدار 1.7.1 Hazelcast

هل كانت مفيدة؟

المحلول

يمكنك تعيين كل شيء برمجيًا في Hazelcast بدءًا من الإصدار 1.7.1. تحتاج إلى إنشاء كائن التكوين وتمريره.

إليكم كيف تفعل ذلك في Hazelcast 1.7.1

إذا كنت تستخدم أساليب ثابتة Hazelcast للحصول على MAP ، مثل Hazelcast.getMap ("MyMapName") ، فهذه هي الطريقة:

//You need to do this once on each JVM(Hazelcast node) at the begining  
Config myConfig = new Config();
Map<String, MapConfig> myHazelcastMapConfigs = myConfig.getMapMapConfigs();
MapConfig myMapConfig = new MapConfig();
myMapConfig.setName("myMapName");
myMapConfig.setTimeToLiveSeconds(1000);
myHazelcastMapConfigs.put("myMapName", myMapConfig);
Hazelcast.init(myConfig);

ولكن إذا كنت تقوم بإنشاء مثيلات Hazelcast مع Hazelcast.newhazelcastinstance ، فقم بتمرير التكوين إلى هذه الطريقة. ثم احصل على خريطة من المثيل. وبهذه الطريقة يمكنك إنشاء مثيلات متعددة من Hazelcast في نفس JVM. هنا هو الرمز

HazelcastInstance h = Hazelcast.newHazelcastInstance(myConfig);

h.getMap("myMapName");

في أحدث إصدار من Hazelcast هو إنشاء كائن التكوين أكثر بساطة:

Config config = new XmlConfigBuilder().build();
config.getMapConfig("myMapName").setTimeToLiveSeconds(10000);

بالمناسبة ، فإن Hazelcast 1.8.1 النهائي على وشك الإفراج. أقترح عليك التبديل إلى هذا الإصدار.

هتافات...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top