Büyük miktarda veri dağıtımı yapmak için Hazelcast 3.6 IMap kullanıyorum (1B öğelerinde test ettik). 2 IMap örneğine anahtarlarla katılmak istiyorum, ancak bunu yapmak için yerleşik bir işlev yok gibi görünüyor. Bu nedenle, bu eşlemelerin girişlerini aynı düğümde saklamak için kullanıyorum ve daha sonra, ilk eşlemenin Set<K> localKeySet();
kodunu kullanarak her düğümün üyesi. Bundan sonra, aynı anahtardaki ikinci eşlemeden, aynı zamanda, anahtar anahtarlarının ağ tarafından aktarılmasını önlemek için değerler almaya çalışıyorum. Ancak getAll(Set<K> keys)
aynı düğümde bunu yapmıyor gibi görünüyor. Hiç kimse aynı sorunu yaşıyor mu? Hazelcast işlevselliğine dayalı olarak çözmek mümkün mü?Öntanımlı anahtarlar olarak aynı düğüme IMap girişleri alın [Hazelcast]
Ne aradığınız bir EntryProcessor
olduğunu tahmin
public class PartitionAwareKey implements PartitionAware, Serializable { private Integer key; public PartitionAwareKey(Integer key) { this.key = key; } @Override public Integer getPartitionKey() { return this.key; } }
public class FindDataWithPredicateTask implements HazelcastInstanceAware, Serializable, Callable>> { ... @Override public IMap call() throws Exception { IMap map1 = hazelcastInstance.getMap("map1"); Set localKeySet = map1.localKeySet(); IMap, String> map2 = hazelcastInstance.getMap("map2"); return map2.getAll(localKeySet); } ...
Cevabınız için teşekkürler! 'HazelcastInstanceAware' ile 'EntryPeocessor' uygulama ve her düğüm için' hazelcastInstance.getMap ("map1") çağrısı ile bir işlem gönderdikten sonra '' PartitionWideEntryWithPredicateOperation var: birden çok bölümlerde bir çağrı yapamazsınız! '. Harita tuşları 'PartitionAware'ı uyguluyor, bu yüzden sadece yerel anahtarlarla (aynı düğümden veya aynı bölümden) giriş mümkün mü? – yevtsy
IMap :: localKeySet nedir? – noctarius
Daha önce de belirttiğim gibi, bir önceki adıma geçtiğim ‛IMAP: lokalKeySet‛ haritasına çağırmak istiyorum. Lütfen sorunun kod örneğine bakın. Ancak ‛EntryProcessor‛ yöntem ‛getMap using kullanılması durumunda, önceki yorumda yayınladığım istisna atar – yevtsy