🏳️ Phil
🏳️ Phil
Sergei
для меня это набор пустых звуков. исходя из корней слов я слышу что-то про перезаливку базы раз в секунду, что немного выносит мне мозг
задача была - поисковик картинок. 3ккк картинок + поисковый индекс.
поисковый индекс делится на шарды, шарды индекса отражаются 1:1 к шардам хранилища картинок.
шарды хранилища картинок представляют из себя серверы, которые умеют отдавать картинки :) де-факто это просто сервер со статикой.
когда мы катим новый индекс, мы одновременно катим и новые картинки. мы не можем позволить себе blue-green-деплой в таком режиме (огромный простой железа), поэтому индекс и картинки деплоятся роллингом. роллинг - это значит что за раз деплоится несколько шардов из 2048.
процесс последовательный и долгий. при окончании деплоя шарда индекса и шарда хранилища происходит переконфигурация nginx'ов, потому что шарды хранилища складываются на наиболее свободные машины хранилища, а соответствующие старые шарды удаляются.
🏳️ Phil
аааа
🏳️ Phil
все равно понял только интуитивно, но ладно
🏳️ Phil
спасибо ;)
CMDR Jack
CMDR Jack
Ну то есть зачем все машины хранилища тут трогать.
CMDR Jack
Ммм ок.
Pavel
Деплой микробаз и перераскатка наносервисов
CMDR Jack
Пикодеплой
Tiarv
Боку но пико деплой
Pavel
милликомитами
🏳️ Phil
🏳️ Phil
хотя я и про шардинг индексов бы почитал
Sergei
микробаза - почти синоним шарду
🏳️ Phil
а про шард? и индексов. да и не инлексов тоже.
Sergei
мм, я там больше не работаю, цикл статей как это было устроено в мейлрушке вот: https://habrahabr.ru/company/mailru/blog/167297/
Sergei
метапоиск отправлял запрос во все шарды параллельно, они отвечали "у меня есть 620 документов", или "у меня есть 0 документов", после этого метапоиск выбирал шарды, которые потенциально интересны и отправлял запрос туда (вторая стадия), откуда получал уже ответы, переранжировал их и возможно делал дозапрос, снова переранжировал и отправлял пользователю.
Vladimir
Max
Коллеги. Собственно есть задачка.
В системе периодически происходят события, которые вызывают здоровенную пуш рассылку и шлют кучищу писем на почту. Сидим вот голову ломаем, как кошернее всего сделать очередь для всей этой херни. Может кто поделится опытом?
Uncel
Aleksandr
Max
выборка по клиентам потому как
Max
пол, возраст, геолокация etc
Aleksandr
один фиг не понимаю зачем это всё в почту пихать
Max
там ещё было слово пушки
Max
пушек больше на самом деле
Max
json с описанием пушки и массив токенов длинной до 152 символов в количестве 1000 штук "в идеале"
это одно сообшение
таких сообщений в очереди на отправку может быть до 5 десятков
вот так
Zon
Max
шо ты имеешь в виду?
Zon
шо ты имеешь в виду?
Ну “почтовые очереди” вроде были чуть ли не с начала времён. Какая часть системы загибается?
Max
балин
Max
json с описанием пушки и массив токенов длинной до 152 символов в количестве 1000 штук "в идеале"
это одно сообшение
таких сообщений в очереди на отправку может быть до 5 десятков
вот так
Max
почта это побочный продукт, не привязывайтесь к почте
Max
я собираю мнения как лучше эту очередь реализовать. Были мысли про рэббит, но 100% загнётся в один прекрасный момент, т.к. не рассчитан на хранение таких объёмов данных
Max
при чём в случае с кластером он загнётся быстрее чем с одно нодой
Max
в соседнем чате посоветовали celery посмотреть
Lex
а что надо то в результате?
Lex
ну приходят и приходят, что с них взять
Max
нужна очередь достаточно объёмных сообщений
Max
всё
Max
вся задача
Zon
у celery разные бекенды были, кмк. но эта вся пачка json около 30Мб максимум получается, не так уж и много вроде
Max
для ребита много
Max
тут ещё важно, что бы хранилище было не inmemory как в случае с редисом
Sergei
Max
да, тоже предлагали
Sergei
тред не читал
Max
))
Lex
50 месседжей по метру?
Vladimir
@uncle_gaara кафка это хороший выбор )
Max
Max
вот так верю
Max
какие подводные камни? )
Max
плохо
Max
)))
Lex
но 50 сообщений по 1MB это не так уж много, если Я правильно понял постановку задачи
Sergei
на самом деле кафка норм и совсем кровь-кишки я не получал.
Max
уложит уложит
Zon
кафка тоже норм, рядом сидят люди, которые ей в продакшене довольны
Max
значит покурим кафку и селери
Zon
значит покурим кафку и селери
http://docs.celeryproject.org/en/latest/getting-started/brokers/index.html селери сама по себе не хранит очередь, хранят брокеры: редис или кролик
Denis
Ребят
Denis
Смотрите, нужно костыльнуть.
Denis
есть имидж с приложением.
Denis
есть задача запустить порядка 30 инстансов этого аппа с одним параметром (--run-once) дождаться пока они все завершаться и запустит ьс другим параметром (--calc)
Denis
как бы вы поступили ?
CMDR Jack
Эээ, простейший скрипт с wait?
Sergei
echo {0..30} | xargs -P 30 -n 1 docker run ... .... ; echo {0..30} | ....
CMDR Jack
echo | xargs
ЗАЧЕМ
Sergei
параллельно
CMDR Jack
Вот за что вас, девопсов, не любят! :D