2016-08-17 6 views
3

Im работает над POC-преобразованием существующего Flink применение/топология для использования KafkaStreams. Мой вопрос о развертывании.kafkastreams - добавление дополнительной вычислительной мощности

В частности - в Flink добавляется «Рабочие узлы» к установке flink, а затем добавляется больше распараллеливания к топологии, чтобы идти в ногу с увеличением скорости передачи данных.

Как увеличить пропускную способность KStreams по мере увеличения скорости передачи данных? Выполняет ли KStreams это автоматически? Я запускаю больше процессов (ala Micro-services)?

Или я не вижу здесь общей картины?

ответ

6

Должен ли я запускать больше процессов (ala Micro-services)?

Короткий ответ да:

  • Ответ 1 (добавление мощности): Для масштабирования, вы просто запускаете другой экземпляр приложения для обработки потока, например, на другой машине. Экземпляры вашего приложения узнают друг друга и автоматически начнут делиться обработкой. Это можно сделать во время живых операций, и не будет потери данных!
  • Ответ 2 (удаление емкости): просто остановите один или несколько запущенных экземпляров приложения для обработки потока, например. выключите 2 из 4 запущенных экземпляров. Остальные экземпляры вашего приложения узнают, что другие экземпляры были остановлены и автоматически принимают на себя обработку остановленных экземпляров. Это можно сделать во время живых операций, и не будет потери данных!

Смотрите документацию Кафка Streams в http://docs.confluent.io/3.0.0/streams/developer-guide.html#elastic-scaling-of-your-application для получения более подробной информации (к сожалению, документы Apache Кафка на Кафки Streams не эти подробности пока).

Или я не вижу здесь общей картины?

Общая картина в том, что изображение на самом деле красиво и мало. :-)

Итак, позвольте мне добавить следующее, поскольку я чувствую, что многие пользователи путают сложность других связанных технологий, а затем не ожидают, что вы сможете обрабатывать потоки (включая их развертывание) в гораздо проще, например, что вы можете делать с потоками Kafka:

Приложение Kafka Streams - обычное, обычное старое приложение Java, использующее библиотеку Kafka Streams. Ключевым отличием существующих технологий обработки потоков является то, что с помощью библиотеки Kafka Streams ваше приложение становится масштабируемым, эластичным, отказоустойчивым и т. Д., Не требуя специального «кластера обработки» для добавления машин, например, делать для Flink, Spark, Storm и т. д. Модель развертывания Kafka Streams намного проще и проще: просто запустите или остановите дополнительные экземпляры вашего приложения (т.е. буквально тот же код). Это работает в основном с любым инструментом, связанным с развертыванием, включая, но не ограничиваясь, Puppet, Ansible, Docker, Mesos, YARN. Вы можете сделать это вручную, запустив java ... YourApp.

+0

Таким образом, они делят данные (для агрегирования и т. Д.), Например, приложение flink/storm/etc? – ethrbunny

+0

Также - для этого нужно использовать Confluent версию/сборку Kafka? – ethrbunny

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^