Я пытаюсь понять очереди, DLQ, memoryLimit, sellerFlowControl и курсоры с ActiveMQ.Я надеюсь, что кто-то может помочь мне!
Мои тесты:
1 / MemoryLimit в очереди, при этом для параметраLPFlowControl установлено значение true (по умолчанию).Я отправляю сообщения в эту очередь, memoryLimit достигается, а затем производитель блокируется.
=> Я думал, что storeCursor был включен по умолчанию, поэтому мой производитель не будет заблокирован (сообщения будут храниться в памяти).Кто-то может объяснить?
2 / MemoryLimit в очереди, при этом в качестве параметра серийного_производителя установлено значение false, а в параметре storeCursor.Я отправляю сообщения в эту очередь, memoryLimit и производитель не блокируется.StoreCursor, кажется, работает, так как мои сообщения находятся в памяти, потому что память очереди заполнена.
=> Нужно ли устанавливать для параметраLPFlowControl значение false, чтобы курсоры работали?
Это могло бы иметь смысл, но я думал, что стандартное поведение ActiveMQ основано на курсорах на основе хранилища.с включённым помошником ManufacturerFlowControl.
3 / MemoryLimit в DLQ (v1) DLQ заполняется ошибками после того, как потребитель отклонил некоторые сообщения.При достижении memoryLimit сообщения отправляются в область памяти.=> ОК
4 / MemoryLimit на DLQ (v2) Я отправляю сообщения на мой DLQ с продюсером.Когда достигается memoryLimit, производитель блокируется (как в моем первом тесте для очередей).
=> Как вы объясните различное поведение в зависимости от того, как мы заполняем DLQ?
=> Почему это поведение отличается между очередью иDLQ?