Трансляция мероприятия с зоопарком
Я хочу транслировать событие через zookeeper 3.4+.
Допустим, у меня есть несколько продюсеров, которые одновременно увеличивают счетчик, а слушатели наблюдают за этим увеличением.
Я обнаружил, что могу обновить значение znode от производителя, и слушатели будут уведомлены об этих изменениях znode.
Я могу использовать Apache куратор общий счет. Я могу назначить слушателей на этот общий путь общего счета, и если я обновлю (увеличу) значение общего счета, слушатели будут уведомлены.
Также я могу использовать распределенный атомарный long и Node кеш слушателя. Ситуация такая же, я буду создавать это атомное долго на общеизвестном пути. Слушатели будут слушать znode изменения на этом пути. Когда я обновлю атомное длинное значение, слушатели этих значений узла будут уведомлены.
1) Какую структуру зоопарка я должен использовать, например, выше?
2) Могу ли я быть уверенным, что каждое обновление общего подсчета или распределенного атомарного длинного будет транслироваться, и слушатели будут гарантированно уведомлены?
3) Возможно ли любому слушателю пропустить событие обновления счета?
1 ответ
Путь кеша детей должен быть на выбор. Он более универсален, чем другие, и он лучше, чем Node Cache, поскольку он дает тип события (PathChildrenCacheEvent.Type
) - это CONNECTION_RECONNECTED или нет.
Обратитесь к исходному кураторскому коду за дополнительной информацией.