
Sergey
03.05.2016
11:40:03
Парни, есть ли какой то инструмент для создания очереди на основе postgresql?

Aleksandr
03.05.2016
11:40:29
но зачем?

Alexander
03.05.2016
11:40:44
pgq

Dmitrii
03.05.2016
11:41:01
Я в свое время тыкал mbus

Google

Phil
03.05.2016
11:41:05
но зачем?
а почему нет? все инструменты очередей на самом деле так себе

Alexander
03.05.2016
11:41:10
https://wiki.postgresql.org/wiki/PGQ_Tutorial

Dmitrii
03.05.2016
11:41:11
Но чет все это так стремно выглядит.

Vsevolod
03.05.2016
11:41:19
Фанбои постгреса доставляют

Dmitrii
03.05.2016
11:41:37
Мы в итоге взяли RabbitMQ и не паримся

Aleksandr
03.05.2016
11:41:51
кроме эрланга

Sergey
03.05.2016
11:42:08

Dmitrii
03.05.2016
11:42:24

Phil
03.05.2016
11:42:45
чем рэббит плох?
развесистая монструозная система. к которой гуглятся претензии по потере данных

Dmitrii
03.05.2016
11:43:30
За 3 года был только 1 network partition
Больше рпетензий нет

Sergey
03.05.2016
11:43:55

Google

Aleksandr
03.05.2016
11:43:58

Phil
03.05.2016
11:44:24

Dmitrii
03.05.2016
11:44:32
Блокирующего чтения в этих решениях нет.

Phil
03.05.2016
11:44:59

Sergey
03.05.2016
11:46:04

Dmitrii
03.05.2016
11:46:53
А... ну так если это бот то можно и на простой таблице сделать.
Без всяких там pgq, mbus, rabbitmq и прочих.

Denis
03.05.2016
11:47:35
/stat@comstatbot

Combot
03.05.2016
11:47:36
comstatbot.xyz/chat/-1001030317489

Denis
03.05.2016
11:47:42
/stat@comstatbot

Combot
03.05.2016
11:47:42
comstatbot.xyz/chat/-1001030317489

Dmitrii
03.05.2016
11:48:38
Можно еще на редис листах очередь изобрести ))

Sergey
03.05.2016
11:49:05

Dmitrii
03.05.2016
11:49:47
Звучит как "Я собираюсь купить Oracle, на моем сайте будет 100 пользователей в сутки. Мне надо тратить 10миллионов на лицензию?"
Вообще да короче.

Sergey
03.05.2016
11:50:25

Dmitrii
03.05.2016
11:50:55
А если закодишь через адаптеры, то и свичнуться сможешь в любой момент

Sergey
03.05.2016
11:52:04

Dmitrii
03.05.2016
11:54:08
Сейчас кстати вот думаю, как хорошо что мы в свое время выкинул на помойку поделие именуемое mbus. Потому что проектов стало 6 штук, все они связаны между собой через очереди. Т.е. в этом случае какой то проект стал бы "центровым" для mbus/pgq. Выносить в отдельную базу нет смысла, т.к. точно так же теряется транзакционность.

Google

Denis
03.05.2016
11:59:20

Dmitrii
03.05.2016
12:00:48

Denis
03.05.2016
12:01:25
Я на днях на пет-проекте поднял nsq, как-то полегче вышло, чем с RabbitMQ. Помню когда несколько лет назад rabbitmq поднимал, прямо гайд глубоко читал. А с nsq: докер, докер и в продакшн.
Не скажи, zeromq совсем другое же, там брокера нет, а у nsq брокер есть
disk persistance есть

Dmitrii
03.05.2016
12:03:47
> messages received are un-ordered
Спасибо, как нибудь без nsq обойдемся :)
Так есть брокер или нет?

Nikita
03.05.2016
12:06:33
А подскажите про dockerfile, правильно ли я понимаю, что писать EXPOSE нужно только для того, чтобы потом можно было запускать контейнер с опцией publish-all?
это ведь по сути просто добавляет метаинформацию о портах, которые использует приложение?

Dmitrii
03.05.2016
12:08:15

Denis
03.05.2016
12:08:59
Нет классического *централизованного* брокера. Но есть durability.

Dmitrii
03.05.2016
12:09:50
Могу только сделать выводу что rabbitmq и nsq для разных задач должны использоваться и сравнивать их не имеет смысла.

Phil
03.05.2016
12:10:33

Dmitrii
03.05.2016
12:10:54

Denis
03.05.2016
12:13:15
Да, и правда, разные задачи. А с un-ordered delivery и delivery at least once можно работать. В Amazon SQS то же самое, кстати

Phil
03.05.2016
12:14:51

Denis
03.05.2016
12:17:42
nsq для простого. Таймаут на обработку по дефолту 1 минута. Обработчики должны быть идемпотенты: если сообщение пришло дважды, то должно либо заигнориться, либо отработать без багов. Сообщения должны быть независимы: например crawling разных страниц.

Google

Denis
03.05.2016
12:20:33
А вообще всё это — проблемы distributed mindset. Часто проще забить на всю эту муть и сделать на раббите или другой MQ с упором на 1 мастер, где нет таких заморочек.

Dmitrii
03.05.2016
12:20:59
Хотел построить топологию нашего RabbitMQ кластера, но у меня визуалайзер повис

Denis
03.05.2016
12:21:23
Интересно ?

Dmitrii
03.05.2016
12:21:51
Ну точнее, он тупил-тупил и нарисовал все встолбик что ничего не понятно.
В общем, у нас на данный момент 50 очередей (проектных), 7 проектных exchange'ей, и один глобальный. Если нужна меж-проектная коммуникация то сообщение паблишится в глобальный exchange, дальше летит во все 7 локальных. У каждого проекта свой локальный exchange. Далее сообщение может еще больше раз "расщепиться" и улететь в локальные очереди. Но все так сделано, что каждый проект дефайнит только свой локальный exchange, и свои локальные очереди + биндинги-роутинг - имена событий. Когда во всех проектах запустить конигуратор очередей то получится единая картинка мира так сказать.

Admin
ERROR: S client not available

Dmitrii
03.05.2016
12:26:38
Я пока не знаю что может при таких раскладах заменить RabbitMQ.
Причем, у нас кластер из 3 нод, по 2 проекта на ноду. Поэтому все это дело очень удобно мейнтейнить. Если надо 3ю ноду пгасить - то сначала деплоим реконфигурацию, потом уводим ее в даун.
HA политики настроены на реплецирования все по всем нодам.

Denis
03.05.2016
12:29:00
Ого, Rabbit HA :) Все в одном ДЦ?

Dmitrii
03.05.2016
12:29:03
Если у вас не трейдинговый проект, с космической скоростью записи я бы рекомендовал такой подход. Очень удобен в эксплуатации.
Да, но мы не кросс-дц, так что.
Просто ноды Rabbit'а разнесены по разным физическим серверам.
Опять же, говорю, один раз был network partition за 3 года.
Пришлось поебаться, потому что ноду такую в кластер уже не вернуть никак.

Anton
03.05.2016
12:32:44
Всем добрый вечер! Прошу прощения, что врываюсь с работой сюда
В открытый мессенджер Actor (https://github.com/actorapp/actor-platform) ищем опытного DEVOPS поддерживать наш континиус деливери всех трех платформ, любить тимсити, фабрик... ну вы поняли, стандартный набор. Так–то у нас уже все настроено и работает, но поддерживать это некому, так что нужен самостоятельный, знающий и инициативный человек.
У нас адекватная команда, интересные задачи, ЗП на уровне. Офис находится в Петербурге, возможна удаленка.
Пишите, если интересно. Еще раз прошу прощения за disturbance.

Ilya
03.05.2016
12:33:25
Прошу прощения за дистурбанс.

Алексей
03.05.2016
12:33:45
скажите а в ансибле есть вариант тега "never" ? что бы он был строго ручной ? или я хочу совсем странного ?

Dmitrii
03.05.2016
12:34:19
Есть наоборот - always :)

Алексей
03.05.2016
12:34:57
это я как раз знаю :)

Google

Dmitrii
03.05.2016
12:35:18
Ну так запили им never

Алексей
03.05.2016
12:35:32
я думаю на сколько логично добавить тесты в плейбук.

Dmitrii
03.05.2016
12:35:36
Думаю что будет пара строк копипасты от always :)

Алексей
03.05.2016
12:35:59
думается мне тесты надо что бы были ручными или что бы вызывались по отдельному запросу

Dmitrii
03.05.2016
12:36:32
У нас сделать проще.
Дженкинс раскатываем мастер каждое утро по стейджингам
Стразу видно если кто то какое-то говно закоммитил на след утро.
сделано*

Алексей
03.05.2016
12:37:31
у меня не совсе мтакой кейс
у меня "инсталятор" на базе ансибла
тоесть анчальное конфигурирование системы через него. и штуки типа "state=running" могут просто не пройти
ибо сервис может быть раннинг с точки зрения systemd но нифига не раннинг на самом деле.

Dmitrii
03.05.2016
12:38:51
Так там же есть штуки типа "ждать сервис пока не появится онлайн"
Можно порт слушать (т.е. ждать)
Типа пока сервис не раздуплится на самом деле.

Алексей
03.05.2016
12:40:04
ну вот я и думаю как всё такие шутки поскладывать в одно место.