Это зависит от характера темы: если тема является долговременной (на нее подписываются долговременные потребители), брокер будет хранить сообщения в теме до тех пор, пока все постоянные потребители не получат сообщения.если тема недолговечная (без постоянных потребителей), сообщение даже не будет отправлено в эту тему, поскольку не будет длительной подписки.
Для вашего примера я буду считать, что вы используетедолговременные подписки / потребители: Случай 1:
- T-2 C1 и C2 делают длительную подписку на тему
- T-1 C1 и C2 отключаются
- T0:M0 опубликовано
- T1: M1 опубликовано
- T2: C1 подключено. C1 получает M0, а M1
- T3: M3 опубликовано. C1 получает M3
- T4: M4 опубликовано. C1 получает M4
- T5: C2 подключается, C2 получает M0, M1, M2, M3, M4
Это потому, что ониудержание долговременных подписок При использовании долговременных тем / очередей нужно быть очень осторожным: если потребитель не отписывается, брокер будет удерживать сообщения до тех пор, пока хранилище сообщений не взорвется.Вам нужно будет убедиться, что этого не произойдет (установив политики выселения и / или указав время для сообщений).Конечно, предыдущий пример будет отличаться в зависимости от того, когда потребитель делает подписку на длительный срок.
Если вы используете недолговечные темы:
- T-2 C1 и C2 делают обычную подписку натема
- T-1 C1 и C2 разъединяются
- T0: M0 отправлено
- T1: M1 отправлено
- T2: C1 подключено. C1 ничего не получает
- T3: M3 опубликовано. C1 получает M3
- T4: M4 опубликовано. C1 получает M4
- T5: C2 подключается, C2 ничего не получает