Как использовать Apache Pulsar для обработки заказанных партий
Рассмотрим следующий пример:
В мире существуют десятки тысяч магазинов, в которых следует регистрировать внутренние процессы.
Для каждого местоположения магазина порядок внутренних задач процесса должен быть сохранен
Глобального списка магазинов нет. Задачи процесса могут летать из одного места, без предварительного знания об этом месте
Запись задач процесса имеет решающее значение, ни одна задача не должна быть пропущена (аварийное переключение)
Я понимаю, что для того, чтобы сохранить порядок процессов в каждом месте, мне нужно создать тему для каждого места в магазине, как это:
настойчив:// публичный / по умолчанию / магазин-Сан --франциско
И для каждой темы мне нужно создать эксклюзивного потребителя с отказоустойчивостью.
Проблема в том, что, поскольку я заранее не знаю местоположения, каков наилучший способ создания пользовательского ad-hoc для каждого неизвестного местоположения?
2 ответа
Впервые в Pulsar, но я понимаю, что брокер автоматически создаст тему, если таковая не существует. Кроме того, поскольку вы можете выводить список тем из утилиты администратора консоли, я предполагаю, что вы также можете делать это программно, вести текущий список тем / потребителей и создавать новый, если появляется новая тема.
Теперь вы можете использовать общие подписки на ключи , которые сохранят порядок для данного ключа. Для вашего варианта использования вы можете производить и потреблять в одном
store
тему и используйте название магазина (например.
store-san-francisco
) как ключ. На стороне потребления вы можете прочитать имя соответствующего магазина в метаданных сообщения.