Size: a a a

2020 November 25

SC

Sergey Cheparukhin in pro.kafka
Nikolay
Как вы делаете сайзинг машин( и другие параметры кластера) для кафки? Если например известен, что сроупут на запись будет N mb/sec. Как отсюда вывести необходимые параметра кластера?
источник

N

Nikolay in pro.kafka
спасибо. только не совсем понятно как это работает. какие параметры не выберу он мне рекомендует минимум 24 ядра.
источник

EV

Eduard Vlasov in pro.kafka
Всем привет, играюсь с настройками кафки, столкнулся со странным поведением:

Есть "кластер" из одного брокера последней версии в AWS, приватная сеть и публичный IP. Секьюрити группа не дает брокеру обратиться самому к себе по публичному ip (!) (там вайтлист на мой ip и порты 22, 2181, 9092 сейчас)

Если забиндить listener на 0.0.0.0 или внутренний ip, а в advertised.listeners указать внешний ip, то брокер стартует как-то "не полностью" и не дает писать/читать топики. Если в секьюрити группе разрешить весь трафик то все работает нормально.

Подскажите плиз, нормальное ли это поведение и как в таком случае нормально настроить доступ из внешки?
источник

N

Nikolay in pro.kafka
Eduard Vlasov
Всем привет, играюсь с настройками кафки, столкнулся со странным поведением:

Есть "кластер" из одного брокера последней версии в AWS, приватная сеть и публичный IP. Секьюрити группа не дает брокеру обратиться самому к себе по публичному ip (!) (там вайтлист на мой ip и порты 22, 2181, 9092 сейчас)

Если забиндить listener на 0.0.0.0 или внутренний ip, а в advertised.listeners указать внешний ip, то брокер стартует как-то "не полностью" и не дает писать/читать топики. Если в секьюрити группе разрешить весь трафик то все работает нормально.

Подскажите плиз, нормальное ли это поведение и как в таком случае нормально настроить доступ из внешки?
А там не нужно явно разрешить tcp в sg?
источник

EV

Eduard Vlasov in pro.kafka
сейчас inbound как раз TCP с моим ip на портах  22, 2181, 9092
источник

EV

Eduard Vlasov in pro.kafka
то есть по текущим правилам брокер по внешнему ip сам до себя не достучится
источник

EV

Eduard Vlasov in pro.kafka
очевидно что брокеру при старте зачем-то нужно достучаться до адресов из advertised.listeners но я не понимаю зачем это ему
источник

ЮХ

Юра Ходырев... in pro.kafka
Eduard Vlasov
очевидно что брокеру при старте зачем-то нужно достучаться до адресов из advertised.listeners но я не понимаю зачем это ему
В свое время, когда сталкивался с тем, как отрабатывает вся внутрянка столкнулся с такой же темой.
Могу интерпретировать это как следующие события.

Для подключения к кластеру ты используешь внешний адрес, по которому просто подключаешься к кластеру.
Затем кластер тебя отправляет на нужную ноду уже по advertised адресу
источник

ЮХ

Юра Ходырев... in pro.kafka
Возможно опять же трактую не парвильно схему работы, в исходники не глядел
источник

EV

Eduard Vlasov in pro.kafka
так и есть :)
источник

EV

Eduard Vlasov in pro.kafka
но брокер не стартует как надо в принципе, щас логи достану
источник

EV

Eduard Vlasov in pro.kafka
Если указать в advertised.listeners внешний ip, то лог останавливается на строке
Nov 24 08:00:17 ip-172-33-1-67 kafka-server-start.sh[20954]: [2020-11-24 08:00:17,494] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)

если указать внутрений, не указывать ничего или разрешить все в секьюрити группе - то пойдет загрузка логов топиков

Nov 24 08:00:17 ip-172-33-1-67 kafka-server-start.sh[20954]: [2020-11-24 08:00:17,612] INFO [Partition __consumer_offsets-3 broker=0] Log loaded for partition __consumer_offsets-3 with initial high watermark>
Nov 24 08:00:17 ip-172-33-1-67 kafka-server-start.sh[20954]: [2020-11-24 08:00:17,625] INFO [Partition __consumer_offsets-18 broker=0] Log loaded for partition __consumer_offsets-18 with initial high waterma>
Nov 24 08:00:17 ip-172-33-1-67 kafka-server-start.sh[20954]: [2020-11-24 08:00:17,629] INFO [Partition __consumer_offsets-41 broker=0] Log loaded for partition __consumer_offsets-41 with initial high waterma>
источник

EV

Eduard Vlasov in pro.kafka
По совету @IuriiTg я разнес на внутрений и внешний листенер, заработало 🤔
но вопрос все равно актуален, я думаю
listeners=PLAINTEXT://0.0.0.0:9093,PLAINTEXT_EXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://172.33.1.67:9093,PLAINTEXT_EXT://52.42.2.184:9092
источник

A

Anton in pro.kafka
Как узнать оптимальное количество распределенных воркеров kafka connect?
источник

AS

Alexander Strakh in pro.kafka
Коллеги, а есть ли у Kafka возможность логировать события? Например:
1. Событие до отправки сообщения в топик
2. Событие после отправки сообщения в топик - статус отправки
3. Событие начала чтения из группы
4. Событие присоединения клиента
5. Событие создания группы
6. Событие окончания чтения из группы
источник

ЧП

Чёрный Плащ... in pro.kafka
На клиенте можно через opentracing интерцептор в какой-нибудь jaeger писать
источник

AS

Alexander Strakh in pro.kafka
Нужно как раз на сервере. Это в том числе для контроля клиента.
источник
2020 November 26

ЧП

Чёрный Плащ... in pro.kafka
я кафку не очень хорошо знаю, но что-то мне кажется, это идёт вразрез с идеалогией. брокер должен быстро взять, положить сообщение. и при запросе - эффективно отдать его. а все эти хуки до и после... сомнительно, на мой взгляд.
источник

VG

Vik Gamov in pro.kafka
Alexander Strakh
Нужно как раз на сервере. Это в том числе для контроля клиента.
Стандартного (oss из коробки) решения для server-side interceptors нет. В Confluent server есть server-side interceptors
источник

YK

Yurii Khmelevskii in pro.kafka
Не понимаю зачем у Kafka java продьюсера есть аргументы keySerializer и valueSerializer https://kafka.apache.org/20/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html, если я могу передать их в конфиге как
"key.serializer"    "io.confluent.kafka.serializers.KafkaAvroSerializer"
"value.serializer" "io.confluent.kafka.serializers.KafkaAvroSerializer"
источник