Кейсы использования RabbitMQ+Redis (Spring+Java+RabbitMQ+Redis)
Добрый день. На этом стриме я постараюсь коротко показать какие кейсы при горизонтальном масштабировании RabbitMQ+Redis, которые встречались мне, и как их реализовать при помощи Spring Framework и Java.
Поддержать автора - www.donationalerts.com/r/maycode
Мой Telegramm - t.me/may_code
Мой GitHub - github.com/FriMay
Отличная группа для Java разработчика (фичи, туториалы, статьи) - javatutorial
Пікірлер: 30
Спасибо, очень круто объясняешь)
Спасибо за видео, новички тебя не забудут :)
ОООООООООООООООООООООООгромное спасибо за видео!
@maycode0
Жыл бұрын
Не за что)
Спасибо, за практическую лекцию! Благодарю!
@maycode0
Жыл бұрын
Надеюсь смог помочь)
nice
good job
@maycode0
2 жыл бұрын
Thx
Неплохой рассказ, но постоянное переключение закладок вбраузере и дерганье мышкой может приступ эпилепсии вызвать.
@maycode0
Жыл бұрын
Извиняюсь)
@maycode0
Жыл бұрын
Нервный рассказчик)
Здравствуйте, а конфиг Rabbit у вас нет?
@maycode0
2 жыл бұрын
Если добавить зависимость на ребит и включить его, будет использоваться дефолтный конфиг, для локальной тачки
Если честно, не понял чем не устроил fixedDelay в сендере, по сравнению с кроном. По идее, если мы уже реализуем монитор, то он должен работать как бы мультипоточность себя не вела, хоть каждую секунду запросы, хоть смещенные по времени с разными интервалами. Если кто-то понял реплику, поясните, плиз
@maycode0
Жыл бұрын
Смотри, fixedDelay стартует с момента запуска сервера, а если серверов несколько? Получается у них старт задачи всегда в разное время, поэтому нет гарантии что одна и та же задача будет запущена единожды. В случаем с cron все линейно, все сервера попытаются запустить задачу в одно время. Надеюсь я правильно понял вопрос и не совсем забыл что было в видео)
@artemmartynenko6417
Жыл бұрын
@@maycode0 ну так лок и нужен что б задачу взял только один сервер. Нет такого подхода в синхронизации, что б по времени идеально распаралеливать, все равно JVM отработает себе на уме и один инстанс приступит с задержкой относительно другого.
@maycode0
Жыл бұрын
cron один из вариантов хоть как-то гарантировать что задача будет запущена в один момент, и все серверы кроме одного стопнутся об лок в редисе, только в случае если у сервера сбито время он будет отрабатывать некорректно, но чем лучше fixedDelay? Он в случае и со сбитым временем будет работать не ожидаемым образом и вместо одной выполненой задачи раз в минуту мы можем получить N выполнений. Проведи эксперимент и запусти больше 3 инстов с кроном и fixedDelay запущенные. Задачи должны выполнится раз в минуту и при этом сама функция - просто лог запуска задачи(очень часто встречаются задачи типа удаления старых записей в бд, что выполняется очень быстро) и запусти эти три инста каждый через 7-8 секунд (примерное время поднятие инстов в парралельной среде). Помониторь это минут 15 и посмотри, сколько задач у тебя выполнилось с кроном в сумме и сколько с fixedDelay, тогда и поговорим)
Жалко что канал забросили
Неясно почему может возникнуть надобность блокировать сообщение.
Worker - неудачное название для создающего таски. Хотя некоторые работники только и делают что создают проблемы другим.
@maycode0
Жыл бұрын
Критикуешь - предлагай) Прежде чем что-то назвать неудачным - предложи и обоснуй что тот или иной вариант удачнее
@maycode0
Жыл бұрын
Worker предназначен не только для создаваемая тасок, но и выполнения фоновых задач, которые не нужно возлагать на основное API. Про это вроде я говорил
@MrDao92
Жыл бұрын
Предлагаю - Producer.
@maycode0
Жыл бұрын
Согласен. В контексте диаграммы - воркер не самое удачное название. Я мыслил в контексте модуля, который в дальнейшем будет переиспользоваться для фоновых задач помимо рассылки эвентов для распределения по ребиту.