Hacker News Digest

Тег: #rabbitmq

Постов: 2

Anything can be a message queue if you use it wrongly enough (2023) (xeiaso.net)

Предупреждение: это сатира, не используйте в проде. Читая, вы клянётесь не повторять описанное.

Проблема

Managed NAT Gateway в AWS тарифицирует исходящий трафик по 0,07 $/ГБ и убивает стартапы счетами за облако.

Решение

Вместо него для веб-хуков можно:

  • поднять exit-ноду Tailscale с публичным IP;
  • привязать её к той же VPC;
  • получить шифрование и экономию до 700 %.
    Это единственный безопасный фрагмент статьи.

S3 как очередь

AWS начинался с S3, SQS и EC2. S3 — это malloc() для облака:

  • выделяете «память» (бакет);
  • кладёте туда объекты любой длины;
  • освобождаете, когда надоедает.

Аналогия с C: malloc() → указатель, free() → удаление объекта. Ошибка выделения → ENOMEM, дальше — краш.


Как превратить S3 в очередь

  1. Писать сообщения в виде объектов с ключом queue/<uuid>.json.
  2. Читать через ListObjectsV2 и GetObject.
  3. Удалять после обработки.
  4. Повторять раз в секунду — получаем «очередь» с задержкой ~1 с и бесплатным исходящим трафиком внутри региона.

Плюсы:

  • нет платы за NAT Gateway;
  • S3 дёшев и масштабируем;
  • можно шифровать объекты.

Минусы:

  • eventual consistency: сообщения могут дублироваться или задерживаться;
  • rate limit 3 500 PUT/COPY/POST/DELETE и 5 500 GET/HEAD на префикс;
  • ListObjects дорогой (0,005 $ за 1 000 запросов);
  • придётся реализовать ack/nack, dead-letter и backoff самому.

«Продвинутые» техники

  • Long polling: ждать, пока в бакете появится новый объект.
  • Fan-out: несколько читателей по префиксам.
  • Batching: складывать сообщения в один объект gzipом.
  • Priority: префиксы high/, low/.
  • FIFO: ключ queue/<timestamp>-<uuid>.json.
  • DLQ: префикс failed/.
  • Крон: Lambda по расписанию чистит старые сообщения.

Итог

S3-очередь — это пародия на архитектуру, но она работает и экономит деньги. Для настоящих задач используйте SQS, Kafka или RabbitMQ.

by crescit_eundo • 28 августа 2025 г. в 15:14 • 145 points

ОригиналHN

#aws#s3#sqs#kafka#rabbitmq#tailscale#vpc#message-queues#cloud-computing

Комментарии (48)

  • Участники вспомнили, как в 90-х использовали Microsoft Exchange вместо дорогого TIBCO, а Amazon Video — S3 вместо очереди, и оба решения оказались «костылями».
  • Подчеркивают, что очередь — это просто быстрый конечный автомат, но самописные варианты на SQL или Git-вебхуках быстро ломаются под нагрузкой.
  • Некоторые шутят, что любую технологию можно превратить в очередь или базу, если использовать её «достаточно неправильно».
  • Обсуждают юридические проблемы с IP, когда хобби-проект пересекается с работой, и сравнивают цены AWS с Whole Foods.
  • В итоге сходятся во мнении: костыль может работать, но рано или поздно придётся платить за правильное решение.

Why was Apache Kafka created? (bigdata.2minutestreaming.com) 💬 Длинная дискуссия

Почему появился Apache Kafka
LinkedIn, 2012 г.

Проблема интеграции
LinkedIn нужно было передавать данные активности (лайки, просмотры, публикации) в десятки систем: антифрод, ML-модели, веб-функции, витрины, Hadoop. Эти потоки — критичная инфраструктура, а не просто аналитика.

Старые трубы

  • Пакетный конвейер: приложения писали XML на HTTP-сервер; раз в час файлы собирались, парсились и грузились в Oracle + Hadoop.
  • Realtime-конвейер: метрики и логи уходили в Zenoss, но туда нельзя было добавить новые данные без ручной работы, а данные были изолированы.

Общие боли

  • ручное сопровождение и добавление источников;
  • постоянные бэклоги;
  • point-to-point архитектура без обмена между системами.

Вывод
LinkedIn понял, что нужен один надёжный, масштабируемый и универсальный «шина событий», куда пишут все, а читают кто угодно. Так родился Kafka.

by enether • 22 августа 2025 г. в 19:31 • 181 points

ОригиналHN

#apache-kafka#linkedin#big-data#event-streaming#oracle#hadoop#redis#nats#rabbitmq#apache-pulsar

Комментарии (172)

  • LinkedIn отказался от Kafka и создал собственную систему Northguard из-за невозможности масштабировать 32 трлн записей/день, 17 ПБ/день и 400 тыс. топиков.
  • Участники спорят: Kafka мощна для «огненных шлангов» данных и многократного потребления, но требует экспертизы и ресурсов; для большинства задач достаточно Redis, NATS, RabbitMQ.
  • Названа главная фишка Kafka — возможность переигрывать сообщения и строить разные консьюмеры поверх одного лога.
  • Сравнивают NATS (Jetstream) и Apache Pulsar как более лёгкие альтернативы; Redpanda тоже упоминается.
  • Мнения разделились: кто-то считает Kafka переоценённой и «бюрократичной», кто-то — незаменимой для больших данных.