Создание регионов Gemfire через API вместо использования GFSH - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь создать регионы gemfire с помощью методов API, доступных в gemfire-8.2.11.jar. Для этого я создал одно весеннее загрузочное приложение, здесь я создаю динамические области gemfire с кодом, когда мое приложение запускается, оно подключается к локатору gemfire и создает сервер.

После этого регион gemfire создается, проверяется на сервере gemfire с командной строкой. Здесь проблема заключается в том, что если я закрываю свое приложение, регионы также работают, это означает, что имена регионов не сохраняются (не обновляя подробности региона в cluster.xml). Это означает, что временные области создаются в памяти. Пожалуйста, кто-нибудь может помочь, как сделать регионы постоянными с грамматически. Мне нужно установить какие-либо свойства CashFactory ?. В соответствии с приведенной ниже ссылкой, следуя кодированию в соответствии с документацией Gemfire.

http://gemfire82.docs.pivotal.io/docs-gemfire/latest/basic_config/data_regions/create_a_region_with_API.html

    Getting Cache factory object  
     Cache cache = new  CacheFactory().set("name", "TestServer")
                               .set("locators","localhost[10334]")
                           .set("log-level", "config")
                           .create();  

    RegionFactory<Object, Object> rf = cache.createRegionFactory(RegionShortcut.REPLICATE);
    rf.setCacheLoader(new TestCacheLoader());
    rf.setCacheWriter(new TestCacheWriter());                       
    Region<Object, Object> createdRegion = rf.create("Test");

    Need to persist grammatically created regions with my application.

1 Ответ

1 голос
/ 30 апреля 2019

Чтобы конфигурация региона сохранялась при перезапуске, вам необходимо использовать Служба конфигурации кластера , пожалуйста, посмотрите Настройка и запуск кластера для получения более подробной информации об этом. , К сожалению, в GemFire ​​8.2.X не было общедоступного API для ручного использования этой службы конфигурации (единственный способ изменить конфигурацию кластера - через внутренние методы или ручное редактирование XML-файла конфигурации, когда кластер находится в автономном режиме), поэтому единственным вариантом будет использование GemFire ​​SHell . В более новых версиях GemFire ​​также есть это ограничение, но в настоящее время разрабатывается усовершенствование, позволяющее настраивать его напрямую через API (для получения более подробной информации обратитесь к Cluster Management Service .

В качестве примечания и учитывая, что вы уже используете Spring Boot , Spring Boot для Apache Geode и Pivotal GemFire ​​ значительно улучшил удобство использования и конфигурируемость, он может безусловно, даст вам больше гибкости и поможет вам достичь вашей цели здесь (в частности, аннотация @EnableClusterConfiguration).

Надеюсь, это поможет. Приветствия.

...