Перейти к содержимому
10 / 15

Когда нужен порядок сообщений и чем он обеспечивается?

Глобального порядка в распределённом брокере не существует — он есть только внутри одной партиции (в Kafka) или одной очереди с единственным потребителем (в RabbitMQ). Практический приём: партиционировать по ключу сущности — идентификатору заказа, пользователя, счёта. Тогда все события одного объекта попадают в одну партицию и обрабатываются последовательно, а разные объекты идут параллельно. Цена — параллелизм ограничен числом партиций, а одна «горячая» сущность становится узким местом. Часто порядок вообще не нужен: достаточно положить в событие версию сущности и отбрасывать всё, что старше уже применённого. Это устойчивее к переупорядочиванию и дешевле по параллелизму, поэтому начинать стоит с вопроса, нужен ли порядок или достаточно свежести последнего состояния.

Когда нужен порядок сообщений и чем он обеспечивается? | JScriptiser