реализация развертывания hazelcast

У меня есть приложение с несколькими модельными классами. Эти классы моделей хранятся в картах Hazelcast в моем приложении. Я пытаюсь использовать клиент hazelcast для подключения к узлу сервера hazelcast. У меня для map-store-enabled установлено значение true, а режим начальной загрузки установлен на EAGER. Следует ли мне сделать следующее:

  1. Скопируйте один и тот же файл hazelcast.conf как на клиент, так и на сервер, или я должен оставить хранилище карт включенным только на сервере (или только на клиенте)?
  2. Если я сохраню map-store-enabled = true на сервере, я предполагаю, что мне нужно развернуть там свои классы хранилища карт. Это правильный подход?

Спасибо


person Community    schedule 05.08.2014    source источник


Ответы (1)


У клиента другая конфигурация, поэтому нет смысла копировать ее клиенту. Он должен быть только на сервере.

Классы mapstore должны находиться на сервере, поскольку они работают только на сервере. Классы объектов, которые вы помещаете на карту, должны быть доступны как на клиенте, так и на сервере.

person pveentjer    schedule 06.08.2014
comment
просто чтобы понять это правильно. если у меня есть веб-приложение, и оно использует клиента для подключения к серверу, веб-приложение не должно иметь записей карты в своей конфигурации, и это карты, которые использует веб-приложение (но на сервере должны быть записи карты в его конфигурации, а также реализация хранилища карт должна находиться на сервере). Я предполагаю, что реализация хранилища карт должна быть включена только на одном сервере (а не на всех серверах). Это правильно? - person ; 07.08.2014
comment
›› просто чтобы понять ... а также реализация хранилища карт должна находиться на сервере). Правильный. Кстати, клиенту все равно, доступна ли функция, связанная с сервером, он не собирается делать что-то неожиданное. Просто он менее чистый. ›› Я предполагаю, что реализация магазина карт должна быть включена только на одном сервере (а не на всех). Это правильно? Серверный материал должен быть на всех серверах. Мы не поддерживаем распределенную загрузку классов, поэтому классы / config должны быть доступны на всех узлах сервера. - person pveentjer; 08.08.2014
comment
спасибо за ответ. Скажем, у меня есть три карты (map1-3 с реализованным mapstore), и у меня есть 5 серверов (на которых у меня реализован сервер hazelcast), должен ли я включить хранилище карт в true для map1 на всех 5 серверах? Я вижу это для загрузки и сохранения, но я не уверен, вызовет ли это проблемы для loadAll) - должно ли это быть на всех серверах или только на одном? - person ; 08.08.2014
comment
Любые идеи? stackoverflow.com/questions/25310915/ - person ; 14.08.2014
comment
Можно ли каким-то образом избежать наличия классов объектов, которые я помещаю на карту, с обеих сторон (то есть сервера и клиента)? Например, есть ли универсальная магия сериализации, которую я мог бы каким-то образом применить на сервере? Или я могу предоставить объект в JSON или текстовой форме, чтобы этого избежать? Хотелось бы увеличить разлуку. - person Karussell; 27.08.2014
comment
В настоящее время у нас нет ничего подобного; это видно на радаре, но не ожидайте этого в ближайшее время. Сохранение его text / json позволит избежать этого. - person pveentjer; 28.08.2014