Size: a a a

Архитектура ИТ-решений

2020 November 24

PD

Phil Delgyado in Архитектура ИТ-решений
Leonid Vygovskiy
20-30k mps rmq закроет
А как закроет? Он же нормально работает только без персистанса и на одном сервере, т.е. без гарантий.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Leonid Vygovskiy
Pulsar много где уже стоит. Вопрос, что мерить много или мало. Kafka, конечно лучше раскручена.
Ну, я вот не нашел год назад ничего подробного про эксплуатацию пульсара, так что не рискнул в продакшен тащить. Тем более без платной поддержки с SLA )
источник

LV

Leonid Vygovskiy in Архитектура ИТ-решений
Платная поддержка вроде есть у них. Точнее летом 2019 была, а год назад эту контору купил splunk (кажется)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, splunk уже не очень..
Хм, посмотреть, что-ли, еще раз на pulsar. Но меня же юротдел закопает, если еще один элемент стека согласовывать )
источник

PD

Phil Delgyado in Архитектура ИТ-решений
У меня просто любимый кейс - очень много (десятки-сотни миллионов) топиков с небольшим числом событий (0-100).
Ну и 10K MPS на все это.
Топики долгоживущие, гарантии нужны приличные (работа в кластере, лучше всего между ДЦ, персистанс и т.п.)
Кафка тут не живет нормально
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А пульсар такое умеет, насколько я помню
источник

PD

Phil Delgyado in Архитектура ИТ-решений
(ну или напишу свое решение на FDB...)
источник

LV

Leonid Vygovskiy in Архитектура ИТ-решений
Leonid Vygovskiy
20-30k mps rmq закроет
@dphil Да, надо бы перепроверить.
источник
2020 November 25

N

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

PD

Phil Delgyado in Архитектура ИТ-решений
Очередь событий на пользователя, очередь событий на активный платеж и т.п.
Да даже тривиальный server messaging при большом числе активных и полуактивных пользователей требует примерно такое число разных очередей.
Ну и всякие паттерны типа персистентных акторов, cadence с сигналами и т.п. требуют очень много независимых небольших очередей.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Если можно не экономить очереди, то многие задачи с "конкурентностью" начинают выглядеть простыми (типа очередь на счет со всеми операциями, очередь на изменение состояния профиля и так далее)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
В решениях типа Cadence фактически есть очередь на каждую бизнес-операцию (например).
источник

IA

Igor A in Архитектура ИТ-решений
Ironmq был такой saas
источник

IA

Igor A in Архитектура ИТ-решений
Вспомнил
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Phil Delgyado
Если можно не экономить очереди, то многие задачи с "конкурентностью" начинают выглядеть простыми (типа очередь на счет со всеми операциями, очередь на изменение состояния профиля и так далее)
На самом деле - отдельная очередь на каждый тип сообщения
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Gennadiy Kruglov
На самом деле - отдельная очередь на каждый тип сообщения
Неа. Так как мне важна последовательность изменений счета (порядок), а не "все рефанды идут подряд".
Т.е. очередь как инструмент сериализации (в смысле БД), а не как транспорт.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А делать очередь "все изменения счетов" с одним воркером - слишком медленно. А с кучей воркеров - теряется смыл.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Phil Delgyado
Неа. Так как мне важна последовательность изменений счета (порядок), а не "все рефанды идут подряд".
Т.е. очередь как инструмент сериализации (в смысле БД), а не как транспорт.
То есть отдельные очереди для всех типов сообщений каждого инстанса агрегата
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Gennadiy Kruglov
То есть отдельные очереди для всех типов сообщений каждого инстанса агрегата
Нет, не по типам сообщений, а по изменяемым сущностям. По очереди на сущность - но с разными типами сообщений.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну, когда ты в базе делаешь "select for update" - то получаешь очередь событий на изменение объекта.
Но она не умеет жить долго, например.
А тут примерно про то же, но эта очередь надежная и долгоиграющая.
источник