2016-09-17 3 views
0

Я пытаюсь создать систему Kafka. Поскольку большая часть существующего кода в моем проекте уже находится в PHP, я, скорее всего, буду писать продюсеров в самом PHP. Но я сравнительно менее ограничен, когда речь идет о выборе языка для написания потребителя. Теперь, что есть так много clients, которые можно использовать, я исправляю.Какой язык использовать для Kafka Consumer

В других целях, чтобы выбрать правильную технику здесь, каковы различные факторы, которые следует иметь в виду?

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

Любая помощь будет высоко ценится.

ответ

3

Клиент Java является самым продвинутым клиентом и официально поддерживается проектом Kafka - большинство других клиентов являются сторонним проектом, и многие из них не реализуют все доступные функции.

Таким образом, я бы рекомендовал использовать Java-клиенты.

+0

Спасибо, что ответили. Кстати, я также смотрел на конфлюентную платформу, из которой большая часть вещей является открытым исходным кодом, за исключением Центра управления конфлюентностью. Возможно ли использовать консольную платформу, отсутствующую в этом центре управления? Coz Я знаю, что люди, над которыми я работаю, не будут тратить на то, чтобы купить что-то подобное на этом этапе. – ankitG

+0

Да. Конфлюэнтная платформа может использоваться без Центра управления. Центр управления является частью Confluent Platform Enterprise. См. Http://www.confluent.io/product/ –

0

Насколько Кафка, то я хотел бы использовать любого из языков с официальной Confluent поддерживается клиент: JVM, C/C++, .NET, Python, Go

Я уверен, что вы можете получить другие работайте как Node или PHP, и, возможно, они могут использовать библиотеку C, но я бы предпочел что-то с официальной поддержкой языка и более широким пользователем, чтобы задавать вопросы.

0

Kafka в основном написан на чистой Java, а собственный API Kafka - это Java, поэтому это единственный язык, на котором вы не используете стороннюю библиотеку. У вас всегда есть преимущество над написанием на других языках, у которых есть дополнительный накладные расходы.

Node.js не оптимизирован для приложений с высокой пропускной способностью, таких как Kafka. Поэтому, если вам нужны высокие скорости обработки, которые являются стандартными для Kafka, или, возможно, для C++.

Кроме того, я считаю, что потребительские клиенты Kafka, написанные на Java, имеют хорошую поддержку сообщества. Поэтому имеет смысл реализовать его с помощью java, если у вас нет другой зависимости, от которой вы не сможете ее реализовать.

Также проверьте это для benchmarking results с использованием различных клиентов Kafka. Результаты контрастируют.

Client Type Throughput(No of messages) 
Java  40,000 - 50,0000 
Go   28,000 - 30,0000 
Node   6,000 - 8,0000 
Kafka-pixy  700 - 800 
Logstash  250