Подтвердить что ты не робот

Готова ли Кафка к производству?

У меня есть приложение, которое должно обрабатывать несколько гигабайт сообщений в день. Мне нравится архитектура и производительность Кафки; он отлично соответствует моим потребностям.

В какой-то момент я хотел бы заменить свой уровень обмена сообщениями Kafka. Является ли версия 0.7.1 достаточно хорошей для использования в производстве с точки зрения стабильности и согласованности производительности?

4b9b3361

Ответ 1

Он определенно используется в нескольких компаниях Big Data уже, включая LinkedIn, где он был создан (и позже открыт для источников) и Tumblr. Просто Tumblr сам по себе обрабатывает много гигабайт сообщений в день. Я уверен, что LinkedIn тоже там. Вы можете увидеть список компаний, которые в настоящее время используют его здесь:

https://cwiki.apache.org/confluence/display/KAFKA/Powered+By

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

Я уверен, что он может обрабатывать любой том, который вы можете бросить на него.

Ответ 2

Есть одна критическая особенность, которую я думаю, что Кафка отсутствует, пока она не готова к производству.

"Промывка сообщений на диск, если производитель не может связаться с каким-либо брокером Kafka" Вопрос был подан давным-давно здесь: https://issues.apache.org/jira/browse/KAFKA-156

Эта функция сделает всю цепочку событий Kafka еще более надежной для некоторых случаев использования, когда производитель всегда должен иметь возможность отправлять события. Например, когда вы отслеживаете просмотры страниц или нажатия на кнопки с кнопками, и вы не хотите пропустить какие-либо события, даже если все брокеры Kafka недоступны.

Ответ 3

Я должен согласиться с Дейвом, Кафка - хороший инструмент, но у него отсутствуют некоторые основные функции, которые некоторые могут быть сделаны вручную, но тогда вам нужно подумать о том, что предлагает Кафка. некоторые недостающие вещи:

  • (Как сказал Дэйв) Промывка сообщений на диск, когда производитель не смог отправить их
  • Потребители умеют отслеживать, какие сообщения обрабатывались (а не только потреблялись) и которые не были в случае перезагрузки.
  • Мониторинг - способ получения текущего состояния сущностей в системе, таких как текущий размер очереди в производителю или скорость записи/чтения у брокеров (это можно сделать, но не являются частью инструмента).

Ответ 4

Я уже давно использовал кафку. Было бы предпочтительным использование собственных java и python клиентов.

Мне пришлось много бороться, найдя подходящего клиента node.js. буквально переписывал весь мой код много раз с использованием разных клиентов, поскольку у них было много ошибок. Наконец, с franz-kafka для node.js.

Помимо того, что поддержание смещений потребителей немного сложно. В нем отсутствуют некоторые хорошие функции, такие как обмены, которые существуют на AMQP основе Apache Qpid или RabbitMQ

Так как он распространяется, он поддерживает офлайн-сообщения, а производительность действительно впечатляет. Я тоже предпочел это:)