Интеграция Hazelcast mongodb;метод loadAll - PullRequest
0 голосов
/ 21 мая 2018

Я смотрел код для интеграции MongoDB с hazelcast на их странице github.

https://github.com/hazelcast/hazelcast-code-samples/tree/master/hazelcast-integration/mongodb/src/main/java/com/hazelcast/loader

MongoMapStore реализует метод loadAll, который принимает в качестве параметра коллекцию Java.Позже в коде ReadWriteThroughCache.java вызывается Suppments.loadAll, где дополнения - это imap, из того, что я до сих пор понимал, это выполняет метод loadAll в MongoMapStore.java, но где мы передаем параметр Ключи коллекции.Создается экземпляр mongoCollection, но как определить ключи в этом примере

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Вот выдержки из ссылки на документацию, представленной выше:

Вот поток инициализации MapLoader:

Когда getMap () вызывается впервые из любого члена, инициализация начнетсяв зависимости от значения InitialLoadMode.Если для него установлено значение EAGER, инициализация начинается на всех разделах, как только происходит касание карты, т. Е. Все разделы будут загружаться при вызове getMap.Если установлено значение LAZY, данные будут загружаться по частям, т. Е. Каждая секция будет загружаться с первого прикосновения.

Hazelcast вызовет MapLoader.loadAllKeys (), чтобы получить все ваши ключи на одном изmembers.

Этот участник будет раздавать ключи всем остальным участникам в пакетном режиме.

Каждый член будет загружать значения всех своих собственных ключей, вызывая MapLoader.loadAll (keys).

Каждый участник помещает свои собственные записи в карту, вызывая IMap.putTransient (ключ, значение).

0 голосов
/ 21 мая 2018

MapStore#loadAll(keys) вызывается внутренне при инициализации карт Hazelcast.Вам не нужно предоставлять никаких параметров, это набор распределенных ключей для всех участников в пакетах.Пожалуйста, смотрите подробности и шаги инициализации карты с включенным постоянством здесь: http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#initializing-map-on-startup

...