Немного IT

Kafka худший брокер? Чем обусловлена популярность этого куска продукта? Кафка и Go

Говорим об асинхронном взаимодействии между сервисами. Обсудим основные боли Kafka или почему разработчику нужно буквально «съесть собаку» и зачем изучать детали реализации. Во второй части подкаста приготовим «кролика» – какие подводные камни есть у RabbitMQ. Затронем Redis и Nats. А в заключении поделимся библиотеками для написания своих очередей. Nats.io – Лучший брокер сообщений по мнению ведущих. AsyncAPI.com – Open Source инструмент, позволяет описывать асинхронное взаимодействие.

Ведущие

  • Иван Соловьёв
  • Михаил Непряхин

Темы

  • Приветствие – 00:00:01
  • Разносим Kafka – критика продукта – 00:00:49
  • Драйверы Go к Kafka: sarama, kafka-go, confluent-kafka-go – 00:01:45
  • Тестирование консьюмеров в Kubernetes – 00:04:30
  • Нерешаемые ошибки драйверов – 00:05:52
  • Главная боль Kafka: учи меня полностью – 00:07:15
  • Kafka partitions – 00:10:08
  • Гарантии доставки Kafka – 00:12:28
  • Слабая абстракция Kafka – 00:16:40
  • Протечка абстракции – почему это плохо – 00:19:00
  • Kafka – конструктор – 00:20:20
  • Конфигурация запуска Kafka – 00:22:03
  • Безопасность в Kafka: SASL mechanism Kafka – 00:24:42
  • Создаем топики в Kafka – 00:28:27
  • Минусы confluent-kafka-go – 00:29:59
  • Риски приложения с включенным CGO – биндинг с C – 00:31:31
  • Слабоконтролируемость приложений на CGO – 00:32:12
  • Проблемы Garbage collector в CGO – 00:34:30
  • Возвращаемся к Sarama – 00:35:48
  • Kafka Connect – 00:36:48
  • Неидиоматичный код Sarama – 00:39:33
  • Для чего не стоит использовать Kafka? – 00:40:49
  • Разбираем RabbitMQ и его плагины – 00:43:47
  • Реализация очереди в RabbitMQ – 00:48:01
  • Механизм оповещения и очереди в RabbitMQ – 00:51:57
  • Проблема погружения в детали реализации – мелочи, которые разработчику знать не нужно – 00:53:05
  • RabbitMQ Mnesia – спойлер! мы не рассказываем что это такое! – 00:54:36
  • RabbitMQ настройки префетчинга – 00:56:20
  • Проблемы универсальных решений – 00:57:50
  • Драйвер Go для RabbitMQ – 01:00:06
  • Аналог брокера сообщений Redis Pub/Sub и его проблемы – 01:01:20
  • Redis Streams – 01:02:35
  • Альтернатива Redis – KeyDB – 01:03:36
  • Драйверы Redis – 01:04:53
  • Серебряная пуля nats.io – 01:07:25
  • Nats Request-Reply – 01:09:37
  • Nats как замена RabbitMQ – 01:13:53
  • Библиотеки, с помощью которых можно построить свои очереди – 01:14:09
  • AsyncAPI – 01:16:48
  • Kafka Streams – 01:18:13
  • Подводим итоги своих впечатлений от Kafka – 01:19:47