170 похожих чатов

Коллеги, сейчас очередь на database - есть ли смысл менять

на redis и это все проходит безболезнено? То есть я меняю место хранения джобов и получаю полную совместимость?

17 ответов

53 просмотра

Может и так работать, если нагрузки на базу серьёзной нет. А переход просто сделать и безболезненно. Но если уже стоит редис - я бы конечно лучше его использовал бы.

L-K Автор вопроса
Volodymyr Vi 🇺🇦
Может и так работать, если нагрузки на базу серьёз...

Что подразумеваем под нагрузкой серьезной? Просто сейчас расставлены приоритеты на джобах. Бывает по 5000 джоб максимум

L K
Что подразумеваем под нагрузкой серьезной? Просто ...

Это значит, что твои джобы могут тормозить базу и другие запросы из-за этого могут подвисать. Для объективной картины нужно смотреть мониторинг сервера в пиковые нагрузки. Но, если вообще в это не вникать и стоит редис - просто все перенастрой и все. Если редис не стоит - учитывай, что все 5000 джобов будут писаться в редис, то есть в оперативную память сервера. А с другой стороны... Если у тебя и так все нормально работает - зачем тебе редис? 5000 джобов это не так и много

L-K Автор вопроса
Volodymyr Vi 🇺🇦
Это значит, что твои джобы могут тормозить базу и ...

В будущем хотим на rabbitmq перейти все равно... Хотя опятт таки. Спор у нас - для коммуникации межсервисной - раббит а внутри сервиса пускай локальное хранилище джоб

L-K Автор вопроса

Ктото говорит что все джобы и все события убирать в раббит. что думаешь?

L K
Ктото говорит что все джобы и все события убирать ...

Та там по сути все тоже. Но если редис будет использоваться для кеша то для очередей я бы использовал раббит. Все от масштаба проекта и его роста зависит. В идеале отделить разные задачи на разные сервисы. Но если нет на это бюджетов и строков - тогда можно и нужно все лепить в одно😁

Основная проблема с дефолт очередями на ларе на бд, с которой я сталкивался - это дедлоки при увеличении потоков обработки (кроме общей нагрузки на бд, про что уже сказали). Хочется сделать обработку на бд - high likely упрешься

Yushkevich Vitaly
Основная проблема с дефолт очередями на ларе на бд...

поэтому и существует большое количество альтернатив базам данных. реляционные базы все таки заточены не под очереди.

Алексей
поэтому и существует большое количество альтернати...

Очереди на базах нужно делать, когда транзакции нужны

Yushkevich Vitaly
Очереди на базах нужно делать, когда транзакции ну...

с этого места поподробнее пожалуйста. видимо моих познаний нехватает чтобы связать между собой транзакционность и очереди

Алексей
с этого места поподробнее пожалуйста. видимо моих ...

Иногда нужно гарантировать «все или ничего» между записью в базу и созданием job. Проще всего это сделать, когда все записи проходят внутри транзакции. Иначе могут быть разные варианты. Запись в базу и создание job с гарантией от базы может быть в одной транзакции на одном коннекте.

с ходу могу предложить минимум пару решений которые сделают ровно то же самое, но джоба будет записана в условный редис/бинстолк вместо базы данных но направление вашей мысли понял, спасибо)

Алексей
с ходу могу предложить минимум пару решений которы...

С такими же гарантиями и без откатов по принципу Саги? А если еще при этом Шардинг и репликация есть и все это потом на разные тачки поедет, то наверняка другое решение будет удобным :)

Алексей
с ходу могу предложить минимум пару решений которы...

Например, даже в простом кейсе - записали в базу, а джобу в редис записать не смогли, ибо редис сдох. Как обеспечим гарантию?

ну понятно что такие же гарантии как субд по транзакционности я не дам)))) но и такой уровень согласованности тоже крайне редкое явление (по шкале где слева "php для сайтов", посередине "ищу разработчика на фортране в 2023" а справа "крайне редкое явление") если вам нужны подобные гарантии так тут вокруг вашей задачи накручено будет столько что "кастомное транзакционное решение для увеличения производительности работы очередей" затеряется среди других прикольных архитектурных решений. а насиловать бд последнее дело

Алексей
ну понятно что такие же гарантии как субд по транз...

Ну на одном из проектов, есть несколько типов очередей. У каждого есть свои sla (в том числе по производительности), гарантии и ограничения. И дальше уже разработчик выбирает, что и как использовать. Крайности - почти всегда плохо.

Yushkevich Vitaly
Ну на одном из проектов, есть несколько типов очер...

будем считать что в данном диалоге вы предоставили более весомые аргументы. хоть мы и не спорили)))

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта