Как отправить данные в локальный экземпляр всегда - PullRequest
0 голосов
/ 09 ноября 2019

Можно ли как-то выделить ключи разделам, принадлежащим экземпляру LocalMember. У нас работает встроенный режим Hazelcast. Локальность и близость данных необходимы на каждом узле. Одним из способов может быть то, что PartitionAwareStrategy может помочь указывать на разделы localMember, а ключи можно назначать локальным разделам-членам. Ниже приведен пример кода.

      PartitionService  ps=  instance.getPartitionService();
      Member m = instance.getCluster().getLocalMember();
      List<Integer> pls = new ArrayList<Integer>();
      for(Partition p : ps.getPartitions()) {
          Member pm = p.getOwner();
        //Local Member Partitions
          if(m.getUuid().equals(pm.getUuid())) {
              pls.add(p.getPartitionId());
          }
      }
    //Need Logic Here.Keys need to be Partition Aware but how do we inject Local Member partitions 
    allotKeys(pls);  

1 Ответ

0 голосов
/ 09 ноября 2019

Разделы управляются Hazelcast и перемещаются от участника к участнику при изменении кластера.

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

Если вам нужна локальность, низкая частота обновления и вы можете терпеть возможную непротиворечивость, почему бы не проверить Near Cache - локальная копия подмножества данных, которая находится в другом месте.

...