Я пытаюсь использовать сервер hazelcast на нескольких узлах. Я реализовал загрузку полностью в реализации хранилища карт. Мне интересно, должно ли это быть включено только на серверном узле или на всех? Если я разверну то же самое на всех узлах, это не приведет к созданию ненужных операций чтения базы данных. Если мне нужно развернуть нагрузку только на одном узле, какова лучшая стратегия (на основе кода / API-вызовов или конфигурации), которая позволила бы мне чисто реализовать сценарий, при котором только один серверный узел реализует загрузку всей реализации для хранилища карт. Я всегда могу развернуть разный код на разных серверах, но я бы хотел этого избежать и задуматься о лучших вариантах.
загрузить всю реализацию для hazelcast
comment
какие-нибудь мысли?
- person   schedule 14.08.2014
Ответы (1)
Каждый узел должен иметь одинаковую конфигурацию / банки и т. Д.
В настоящее время MapLoader.loadAllKeys выполняется на одном из узлов кластера. После загрузки ключей они назначаются разделам-владельцам, в которые загружаются фактические данные с помощью метода MapLoader.loadAll (keys).
Считаете ли вы, что совместное использование одной и той же конфигурации / jar-файлов является проблемой?
person
pveentjer
schedule
15.08.2014
Думаю, я хотел прояснить это. Будет ли hazelcast отвечать за то, чтобы только узел вызывал loadlAll / loadAllkeys, или мне нужно это реализовать? Если код / конфигурация такие же, это было бы здорово (без необходимости реализовывать логику, чтобы убедиться, что только node вызывает loadAll)
- person ; 15.08.2014
Вам не нужно его реализовывать; это часть инфраструктуры Hazelcast.
- person pveentjer; 17.08.2014
Вероятно, в Hazelcast 3.4 мы собираемся обогатить модель загрузки. Я считаю, что будет больше контроля над загрузкой всех ключей на раздел, потому что в настоящее время 1 машина будет «жертвой» для загрузки всех ключей, но в некоторых случаях лучше распределить нагрузку.
- person pveentjer; 17.08.2014
спасибо за комментарий - из этого я понял следующее: я должен просто развернуть свои реализации хранилища карт (с загрузкой всех ключей) на всех узлах - загрузка всех ключей вызывается только из одного узла в кластере
- person ; 18.08.2014
В версии hazelcast 3.3 ключи загрузки вызываются один раз, и я возвращаю в них 2 ключа, но когда я дохожу до loadAll, он вызывается дважды с одним ключом в качестве ввода, он работает как load (), а не loadAll (). К вашему сведению, я не настраиваю раздел, ни более 1000 ключей, только два ключа. Где я ошибаюсь ??? Спасибо и привет, Гарри
- person Harry; 30.09.2014
Вы не делаете ничего плохого. То, что вы говорите, правильно. Я дам вам более точные цифры. Представьте 27100 ключей в db, тогда loadAllKeys загрузит 27100 ключей за 1 раз. Затем каждый раздел загружает 100 ключей (27100/271) с помощью метода loadKeys. В вашем случае у вас есть только 2 ключа, поэтому, вероятно, каждый ключ попадает в другой раздел, где каждый раздел выполняет loadKeys с одним ключом. Это имеет для вас смысл? Или я вас неправильно понимаю?
- person pveentjer; 30.09.2014
Небольшое исправление: каждый раздел будет загружать записи с помощью метода loadAll.
- person pveentjer; 30.09.2014