Вышла новая версия Apache Kafka с новыми функциями для улучшения аутентификации, безопасности и репликации. Apache Kafka — это распределенная потоковая платформа, которую можно использовать для создания конвейеров потоковой передачи данных в реальном времени между системами или приложениями.
Первоначально он был разработан в LinkedIn, откуда был взят как проект Apache. Это быстрая, масштабируемая, надежная и отказоустойчивая система обмена сообщениями публикация-подписка, которую можно использовать вместо традиционных брокеров сообщений.
Первое улучшение — поддержка префиксов ACL. Это разработано, чтобы упростить управление контролем доступа в больших безопасных развертываниях. Новая функция означает, что вы можете настроить одно правило для предоставления массового доступа к темам, группам потребителей или идентификаторам транзакций с префиксом. Управление доступом для создания тем также было улучшено, поэтому доступ может быть предоставлен для создания определенных тем или тем с префиксом.
Была добавлена новая структура, позволяющая аутентифицироваться брокерам Kafka с использованием токенов носителя OAuth2. Аутентификацию можно настроить с помощью обратных вызовов для получения и проверки токена.
В новом выпуске безопасность была усилена, частично благодаря включенной по умолчанию проверке имени хоста для SSL-соединений, чтобы они не были подвержены атакам типа «злоумышленник в середине».
Теперь вы также можете динамически обновлять доверенные хранилища SSL без необходимости перезапуска брокера, и вы также можете настроить безопасность для приемников брокера в ZooKeeper перед запуском брокеров. Сюда входят пароли хранилища ключей и доверенных сертификатов SSL, а также конфигурация JAAS для SASL. Это означает, что теперь вы можете хранить конфиденциальные конфигурации паролей в зашифрованном виде в ZooKeeper, а не в виде открытого текста в файле свойств брокера.
Репликация — это еще одна область, которую необходимо решить, с улучшением протокола репликации, чтобы избежать расхождения в журналах между лидером и его подчиненным во время быстрого переключения лидера при отказе. Разработчики также повысили устойчивость брокеров, сократив объем памяти, занимаемый понижающей конверсией сообщений. Это было достигнуто за счет использования фрагментов сообщений, что означает сокращение использования памяти и времени обращения к памяти, чтобы избежать ошибок OutOfMemory в посредниках.
Одной из функций, которая упростит работу с квотами, является тот факт, что клиенты Kafka теперь уведомляются о регулировании, прежде чем оно будет применено, когда квоты включены. До сих пор не было уведомлений, а это означало, что клиентам было трудно отличить сетевые ошибки от больших периодов дросселирования при превышении квот. Разработчики также добавили параметр конфигурации для потребителя Kafka, чтобы избежать блокировки на неопределенный срок в потребителе.
Kafka Connect, фреймворк для соединения Kafka с внешними системами, — еще одна область, на которую следует обратить внимание. Теперь вы можете управлять обработкой ошибок в соединителях, преобразованиях и преобразователях, включив автоматические повторные попытки и контролируя количество допустимых ошибок до остановки соединителя.
В журналы можно включить дополнительную контекстную информацию, чтобы помочь диагностировать проблемы, а проблемные сообщения, потребляемые коннекторами-приемниками, можно отправлять в очередь недоставленных сообщений, а не заставлять коннектор останавливаться.