Я на днях на пет-проекте поднял nsq, как-то полегче вышло, чем с RabbitMQ. Помню когда несколько лет назад rabbitmq поднимал, прямо гайд глубоко читал. А с nsq: докер, докер и в продакшн.
Не скажи, zeromq совсем другое же, там брокера нет, а у nsq брокер есть
disk persistance есть
Dmitrii
Dmitrii
> messages received are un-ordered
Dmitrii
Спасибо, как нибудь без nsq обойдемся :)
Dmitrii
Не скажи, zeromq совсем другое же, там брокера нет, а у nsq брокер есть
> horizontally scalable (**no brokers**, seamlessly add more nodes to the cluster)
Dmitrii
Так есть брокер или нет?
Nikita
А подскажите про dockerfile, правильно ли я понимаю, что писать EXPOSE нужно только для того, чтобы потом можно было запускать контейнер с опцией publish-all?
Nikita
это ведь по сути просто добавляет метаинформацию о портах, которые использует приложение?
Dmitrii
Что про nsq скажешь? Сетап проще, и без erlang (что и плюс, и минус)
Роутинга нет на сколько я вижу. Короче не годится для построения сложной шины сообщений.
Нет классического *централизованного* брокера. Но есть durability.
Dmitrii
Нет классического *централизованного* брокера. Но есть durability.
Так а чем парируешь un-ordered messages и отсутствие роутинга как класс?
Dmitrii
Могу только сделать выводу что rabbitmq и nsq для разных задач должны использоваться и сравнивать их не имеет смысла.
Dmitrii
да хрен с ней с сложной. сложное вообще не нужно
Даже простую не следаешь. Роутинга то нет!
Да, и правда, разные задачи. А с un-ordered delivery и delivery at least once можно работать. В Amazon SQS то же самое, кстати
🏳️ Phil
Даже простую не следаешь. Роутинга то нет!
да с очередями в том и проблема - нет простой реализации. всё костыли какие-то
nsq для простого. Таймаут на обработку по дефолту 1 минута. Обработчики должны быть идемпотенты: если сообщение пришло дважды, то должно либо заигнориться, либо отработать без багов. Сообщения должны быть независимы: например crawling разных страниц.
А вообще всё это — проблемы distributed mindset. Часто проще забить на всю эту муть и сделать на раббите или другой MQ с упором на 1 мастер, где нет таких заморочек.
Dmitrii
Хотел построить топологию нашего RabbitMQ кластера, но у меня визуалайзер повис
Интересно 🙂
Dmitrii
Ну точнее, он тупил-тупил и нарисовал все встолбик что ничего не понятно.
Dmitrii
В общем, у нас на данный момент 50 очередей (проектных), 7 проектных exchange'ей, и один глобальный. Если нужна меж-проектная коммуникация то сообщение паблишится в глобальный exchange, дальше летит во все 7 локальных. У каждого проекта свой локальный exchange. Далее сообщение может еще больше раз "расщепиться" и улететь в локальные очереди. Но все так сделано, что каждый проект дефайнит только свой локальный exchange, и свои локальные очереди + биндинги-роутинг - имена событий. Когда во всех проектах запустить конигуратор очередей то получится единая картинка мира так сказать.
Dmitrii
Я пока не знаю что может при таких раскладах заменить RabbitMQ.
Dmitrii
Причем, у нас кластер из 3 нод, по 2 проекта на ноду. Поэтому все это дело очень удобно мейнтейнить. Если надо 3ю ноду пгасить - то сначала деплоим реконфигурацию, потом уводим ее в даун.
Dmitrii
HA политики настроены на реплецирования все по всем нодам.
Ого, Rabbit HA :) Все в одном ДЦ?
Dmitrii
Если у вас не трейдинговый проект, с космической скоростью записи я бы рекомендовал такой подход. Очень удобен в эксплуатации.
Dmitrii
Да, но мы не кросс-дц, так что.
Dmitrii
Просто ноды Rabbit'а разнесены по разным физическим серверам.
Dmitrii
Опять же, говорю, один раз был network partition за 3 года.
Dmitrii
Пришлось поебаться, потому что ноду такую в кластер уже не вернуть никак.
Anton
Всем добрый вечер! Прошу прощения, что врываюсь с работой сюда В открытый мессенджер Actor (https://github.com/actorapp/actor-platform) ищем опытного DEVOPS поддерживать наш континиус деливери всех трех платформ, любить тимсити, фабрик... ну вы поняли, стандартный набор. Так–то у нас уже все настроено и работает, но поддерживать это некому, так что нужен самостоятельный, знающий и инициативный человек. У нас адекватная команда, интересные задачи, ЗП на уровне. Офис находится в Петербурге, возможна удаленка. Пишите, если интересно. Еще раз прошу прощения за disturbance.
Ilia
Прошу прощения за дистурбанс.
Aleksey
скажите а в ансибле есть вариант тега "never" ? что бы он был строго ручной ? или я хочу совсем странного ?
Dmitrii
Есть наоборот - always :)
Aleksey
это я как раз знаю :)
Dmitrii
Ну так запили им never
Aleksey
я думаю на сколько логично добавить тесты в плейбук.
Dmitrii
Думаю что будет пара строк копипасты от always :)
Aleksey
думается мне тесты надо что бы были ручными или что бы вызывались по отдельному запросу
Dmitrii
У нас сделать проще.
Dmitrii
Дженкинс раскатываем мастер каждое утро по стейджингам
Dmitrii
Стразу видно если кто то какое-то говно закоммитил на след утро.
Dmitrii
сделано*
Aleksey
у меня не совсе мтакой кейс
Aleksey
у меня "инсталятор" на базе ансибла
Aleksey
тоесть анчальное конфигурирование системы через него. и штуки типа "state=running" могут просто не пройти
Aleksey
ибо сервис может быть раннинг с точки зрения systemd но нифига не раннинг на самом деле.
Dmitrii
Так там же есть штуки типа "ждать сервис пока не появится онлайн"
Dmitrii
Можно порт слушать (т.е. ждать)
Dmitrii
Типа пока сервис не раздуплится на самом деле.
Aleksey
ну вот я и думаю как всё такие шутки поскладывать в одно место.
Aleksey
и запускать типа —tags test
Aleksey
а всё понял
Aleksey
дефолтно инсталятору передавать —skip-tags tests
Aleksey
а если чего убирать
Dmitrii
Я бы конечно попытался сделать "полноценный" плейбук, который бы с нуля все устанавливал а по окончанию ты бы получил полностью рабочую систему.
Aleksey
и прогонять с —tags tests
Dmitrii
Ну как то костыльно же, не?)
Aleksey
Дим, так есть
Aleksey
просто тесты могут быть отдельными сущностями
Dmitrii
А что есть тесты для тебя?
Aleksey
например когда софт встает на rhel и не до конча встает на debian
Dmitrii
А, у тебя такой кросс-платформенный.
Aleksey
у меня 5 архитектур да.
Aleksey
и в том что мне в качестве новой инсталяции дадут незагаженный другим софтом сервер я надеятся не могу. были прецеденты
Dmitrii
Так ты пакуй все в докер всеми любимый )
Aleksey
пока не могу. одна из осей freebsd
Anton
Давайте
🏳️ Phil
пропал калабуховский дом :))))))
Dmitrii
)))
Alexander 🐕
пропал калабуховский дом :))))))
Грузите апельсины бочками
Nikita
Слушайте, а у кого-нибудь есть опыт работы с jenkins и flow с Jenkinsfile?
Nikita
не могу найти какое-нибудь здравое intro
Dan
getting started найдёте - поделитесь