Я написал одного потребителя Kafka (используя Spring Kafka), который читает из одной темы и является частью группы потребителей. Как только сообщение используется, оно выполняет все последующие операции и переходит к следующему смещению сообщения. Я упаковал это как файл WAR, и мой конвейер развертывания передает это одному экземпляру. Используя мой конвейер развертывания, я мог бы потенциально развернуть этот артефакт в нескольких экземплярах в моем пуле развертывания.
Однако я не могу понять следующее, когда я хочу, чтобы несколько потребителей были частью моей инфраструктуры -
Я могу фактически определить несколько экземпляров в моем пуле развертывания и
включите эту WAR во всех этих случаях. Это будет означать, что все
они слушают одну и ту же тему, являются частью одного и того же потребителя
группа и фактически разделит разделы между собой.
нисходящая логика будет работать как есть. Это прекрасно работает для моего
Случай использования, однако, я не уверен, если это оптимальный подход к
следовать?
Читая онлайн, я наткнулся на ресурсы здесь и здесь ,
где люди определяют единую потребительскую нить, но внутренне,
создание нескольких рабочих потоков. Есть также примеры, где мы
может определить несколько потоков потребителей, которые делают нисходящую логику.
Думая об этих подходах и сопоставляя их с развертыванием
окружающей среды, мы могли бы достичь того же результата (как мой теоретический
Решение выше может), но с меньшим количеством машин.
Лично я считаю, что мое решение простое, масштабируемое, но может быть неоптимальным, в то время как второй подход может быть оптимальным, но вы хотели бы узнать ваш опыт, предложения или любые другие метрики / ограничения, которые я должен рассмотреть? Кроме того, я думаю, что с моим теоретическим решением, я мог бы использовать простые машины в качестве потребителей Kafka.
Хотя я знаю, что я не разместил никакого кода, пожалуйста, дайте мне знать, если мне нужно перенести этот вопрос на другой форум. Если вам нужны конкретные примеры кода, я тоже могу их предоставить, но я не думаю, что они важны в контексте моего вопроса.