🦾 IT-Качалка Давида Шекунца 💪
2023-10-22 06:47
Вы блять шутите: представьте, очередь с auto-delete, такая же, как 4000 других на этом же RMQ, на которых от 1 до 10 консьюмеровНо когда именно на ней 4 consumer, все ок, добавляется такойже 5 и она моментально удаляется...По всем логам и метрикам всех сервисов, железок и узлов все абсолютно окКак починили? Перезапустили ноды самого RMQ и оно заработало...Ну как нахер так...По какому принципу он может удалять 1 конкуретную очередь пока ты не перезагрузишь сам RMQ?Это не ошибка кода, потому что (исключая то, что мы максимально прямолинейно с ним общаемся) она бы тогда повторилась и при перезагрузкеЭто ошибка в \"battle-tested\" технологии, которая обязана гарантировать 1 свою главную обязанность - доставлять данные от паблишера консьюмеру по объявленным очередямВы знаете что о такой ситуации пишут в коммьюнити? Переходите на quorum очередиА знаете что такое quorum очереди? Это очереди с кластеризованным персистентным хранилищем (Kafka, без лога)Почему это сработает? Потому что тогда ответственность за очередь распределяется на кластер и есть шанс, что одна нода не позволит другой навредить очередиНо, во-первых, суть блять взятия RMQ была именно в том, что нас в этих очередях не нужна персистентность, нас интересовала скорость с гарантией последовательности, во-вторых, почему кластеризация должна решать вопрос ошибок в кор механике самой системы не давая ей самостоятельно удалить вашу очередь «просто-потому что»По факту они предлагают делать латентную версию Kafka, чтобы просто повысить шанс, что RMQ не трахнет вас очередным внутренним багом...P.S.Когда я все это написал я понял что вымораживает меня больше всего и заколачивает последний гвоздь гроба RMQ:После удаления очереди эта сука не только НЕ ПРИСЛАЛ ОШИБКУ, так ещё эта гнида ПРОДОЛЖАЛА ДЕРЖАТЬ ОТКРЫТЫЕ КАНАЛЫ на эту очередьМы смогли продебажить и увидели, что это не приложение продолжало держать каналы, а сам RMQИ он воообще ничего нам не сообщил, ни ошибки, ни инфы о смерти очередиВот этому нет никакого оправданияP.P.S.Я до сих пор в таком шоке, что я надеюсь, что это мы где-то накосепорили и всему этому есть объяснение, потому что ну как тогда вообще можно использовать RMQ, если он может такое вытворять (а используют его многие)Если ситуация повторится и мы получим больше инфы, я напишу