Kлиенты для работы с Kafka
Kлиенты (сlients) для работы с Apache Kafka доступны на многих языках программирования.
В ADS предусмотрена возможность установки клиентских библиотек для различных языков, которые обеспечивают как низкоуровневый доступ к Kafka, так и потоковую обработку более высокого уровня.
Клиенты Kafka позволяют создавать распределенные приложения и микросервисы, которые считывают, записывают и обрабатывают потоки событий параллельно, в масштабе и отказоустойчивым образом даже в случае проблем с сетью или сбоев машины.
Kafka поставляется с некоторыми такими клиентами, которые дополняются десятками клиентов, предоставляемых сообществом Kafka.
ПРИМЕЧАНИЕ
Информация о клиентах Kafka приведена в качестве справочной информации. Представленные клиенты являются независимыми проектами с открытым исходным кодом. |
Ниже приведен перечень известных и поддерживаемых на данный момент клиентов Kafka.
Язык реализации | Клиент | Описание |
---|---|---|
C/C++ |
Надежная высокопроизводительная библиотека C/C++ с полной поддержкой протоколов, поверх которой построено множество других языковых привязок, включая Haskell, Node.js, OCaml, PHP, Python, Ruby, C#/.NET |
|
Собственная библиотека C++ с поддержкой протоколов для метаданных, производства, выборки и смещения |
||
Клиентская библиотека Kafka только для заголовков C++ с использованием Boost Asio |
||
Асинхронная библиотека producer/consumer C++ 11 для Apache Kafka на основе Boost Asio |
||
Однопоточная асинхронная библиотека на основе C++ |
||
Клиент C++ для Kafka. Библиотека, позволяющая создавать сообщения для распределенной службы обмена сообщениями публикации/подписки Kafka |
||
Python |
Высокопроизводительный клиент Python на основе librdkafka с полной поддержкой протокола |
|
Реализация на чистом Python с полной поддержкой протокола. Включены реализации consumer и producer, поддерживается сжатие GZIP, LZ4 и Snappy |
||
Драйвер Python с полной поддержкой протокола, Pythonic API и управляемой сбалансированной реализацией consumer |
||
Позволяет создавать сообщения для распределенной службы обмена сообщениями публикации/подписки Kafka |
||
Удобный для программиста клиент Kafka для Python. Он включает реализации producer и consumer Kafka на Python, которые дополнительно поддерживаются расширением, созданным на основе librdkafka |
||
Клиент Python от Urban Airship — простой клиент producer Kafka для Python |
||
Позволяет создавать сообщения для распределенной службы обмена сообщениями публикации/подписки Kafka (producer, simple consumer, ZK-consumer) |
||
Go (AKA golang) |
Клиентская библиотека Go для Apache Kafka, лицензированная MIT.Чистая реализация с полной поддержкой протокола. Включены реализации consumer и producer, поддерживается сжатие GZIP и Snappy |
|
Kлиент Kafka Confluent для Golang включает в себя библиотеку librdkafka, обеспечивая полную поддержку протокола Kafka с высокой производительностью и надежностью |
||
Реализация Pure Go обеспечивает полную поддержку протокола, высокую производительность и поддержку всех KIP, обращенных к клиенту |
||
Erlang |
Клиентская библиотека Kafka на Erlang. Полная поддержка потребительского протокола, очень эффективная реализация producer |
|
Минималистичный высокопроизводительный клиент Kafka на Erlang |
||
Клиент Kafka, написанный на Erlang |
||
PowerShell |
Клиент PowerShell с поддержкой Producer, Consumer, Admin. Дополнительно из PowerShell можно запускать все доступные инструменты. Полный список доступных команд по использованию KNet PowerShell можно найти в статье KNet: PowerShell Module |
|
.NET |
Комплексный пакет .NET для Apache Kafka, предоставляющий все функции: Producer, Consumer, Admin, Streams, Connect, серверные части (ZooKeeper и Kafka) |
|
Полнофункциональный клиент .NET для Apache Kafka на основе librdkafka |
||
Клиент C# с полной поддержкой протокола. Включает в себя consumer, producer, компоненты более низкого уровня и поддержку gzip (без быстрой загрузки) |
||
Реализация .NET клиента для Kafka с использованием C# для Kafka 0.8, охватывает большинство основных функций, включая простые producer и consumer |
||
Реализация .NET клиента для Kafka, обеспечивающая базовую функциональность через классы Producer/Consumer. Проект также предлагает сбалансированную потребительскую реализацию. Проект является ответвлением клиента ExactTarget Kafka-net |
||
Асинхронный клиент C#, поддерживающий сжатие и отслеживание изменения партиции-лидера |
||
Высокопроизводительный драйвер .NET Kafka |
||
Полнофункциональный собственный клиент F#, работающий на .NET Core |
||
Clojure |
Быстрый Kafka API для языков JVM, реализованный в Сlojure |
|
Оболочка для Java API, обеспечивающая взаимодействие с Kafka |
||
Клиентская библиотека Kafka clojure |
||
Предоставляет producer и consumer, которые поддерживают базовый API выборки, а также интерфейс управляемой последовательности |
||
Ruby |
Многопоточная эффективная среда обработки Kafka на Ruby и Rails. На основе librdkafka |
|
Автономная библиотека, часть Karafka для создания сообщений Kafka |
||
Простой фреймворк для написания consumer Kafka на Ruby, который хорошо интегрируется с Rails, на основе ruby-kafka |
||
Простой способ публиковать сообщения в Kafka из приложений Ruby, на основе ruby-kafka |
||
Драйвер EventMachine для Kafka |
||
Клиентская библиотека Ruby для Apache Kafka |
||
Node.js |
Высокопроизводительный клиент NodeJS для Apache Kafka, являющийся оболочкой собственной библиотеки librdkafka |
|
Клиент NodeJS с интеграцией ZooKeeper |
||
Реализация JavaScript для NodeJS Server с поддержкой Vagrant и Docker |
||
Оболочка Nodejs для JAVA Kafka API |
||
Поддержка низкоуровневого протокола в Node.js |
||
Aльтернативный node-клиент от Tagged |
||
Proxy (HTTP REST, etc) |
Daemon-producer для Apache Kafka, упрощает работу клиентов, отправляющих сообщения в Kafka, освобождая их от сложности прямого взаимодействия с кластером Kafka |
|
Этот проект создает конечную точку HTTP Apache Kafka для создания и использования сообщений. Он построен на платформе Dropwizard, которая делает службы Java REST удобными для оператора и простыми в развертывании |
||
Конечная точка Rest предоставляет доступ к собственным высокоуровневым API-интерфейсам consumer и producer Scala |
||
Предоставляет интерфейс RESTful для кластера Kafka |
||
Proxy-сервер с двойным API (gRPC и REST) для Kafka с автоматическим контролем consumer groups. Он разработан, чтобы скрыть сложность клиентского протокола Kafka и предоставить простой API, который тривиально реализуется на любом языке |
||
Эффективный Proxy-сервер Kafka REST для producer |
||
Полнофункциональный Proxy-сервер HTTP REST для Kafka в Elixir с аутентификацией на основе JWT |
||
Perl |
Включены реализации Pure Perl, producer и consumer, интеграция с ZooKeeper, поддерживается сжатие GZIP и Snappy |
|
stdin/stdout |
Универсальный producer и consumer без JVM для Apache Kafka |
|
PHP |
Расширение PHP, построенное на librdkafka |
|
Cтабильный, готовый к работе и быстрый клиент Kafka для PHP на основе librdkafka |
||
Библиотека PHP с consumer (простой и на основе ZooKeeper), producer и поддержкой сжатия |
||
Rust |
Реализация Pure Rust с поддержкой запросов Metadata, Produce, Fetch и Offset. Поддерживает сжатие Gzip и Snappy |
|
Alternative Java |
Клиент Kafka, предназначенный для минимизации количества создаваемых объектов и, следовательно, для сокращения накладных расходов на сборку "мусора" |
|
Storm |
Клиент Kafka, является частью Apache Storm |
|
Scala DSL |
DSL для разработчиков Scala, который можно использовать для создания и использования сообщений с помощью Kafka |
|
Swift |
Клиент Kafka для iOS и macOS, реализующий swift producer, а также simple и high-level consumer |