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

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

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

17 ответов

9 просмотров

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

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
Ну на одном из проектов, есть несколько типов очер...

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
I just installed it but how do I use it?
Talula
12
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
я не про это. какая еще есть инфа, или может появиться, что ее можно обозначить названием данной игры? зачем плодить хештеги, которые обозначают одну сущность? в данном случ...
Aiwan \ (•◡•) / _bot
5
Карта сайта