Запретить загрузку карты до достижения кворума, когда клиент уже подключен и получил карту в Hazelcast - PullRequest
0 голосов
/ 03 июня 2019

Я хочу запретить запуск механизма загрузки карт до достижения кворума кластеров. Я использовал свойство hazelcast.initial.min.cluster.size , и оно работает нормально, если не было клиента, который уже был подключен и уже получил данную карту.

Я ожидал, что клиент не сможет выполнять какие-либо действия на карте, пока не достигнут кворум.

То, что я наблюдаю: если клиент не подключен, и я перезапускаю кластер, он ждет кворума и карты недоступны (это здорово). Если клиент уже подключен, И он выбирает карту, и я затем перезапускаю кластер (полностью его останавливаю, а затем запускаю узел за узлом вручную), клиент каким-то образом дает указание кластеру загрузить карту, и он действительно загружается, и только потом кластер ждет кворума. Есть ли способ предотвратить это?

Редактировать: получается, что карта загружается, даже если раньше не было клиента, а просто новый клиент подключается и запрашивает карту. Похоже, что кластер открыт для бизнеса для клиентов, прежде чем он достигнет своего кворума.

1 Ответ

0 голосов
/ 06 июня 2019

Настроено ли ваше клиентское соединение для переподключения?
т.е. стратегия подключения async-start = "false" reconnect-mode = "ON"

Я действительно могу воспроизвести это и не уверен, является ли этопредполагаемое поведение или нет.Я поставил этот вопрос на GitHub.В любом случае, будет ли достаточно настройки размера кворума карты?Эта конфигурация карты фактически блокируется до тех пор, пока не будет достигнут размер кворума.

    <map name="my-test-map">
        <quorum-ref>quorumRuleWithTwoNodes</quorum-ref>
    </map>

    <quorum name="quorumRuleWithTwoNodes" enabled="true">
        <quorum-size>2</quorum-size>
    </quorum>
...