Spring + RabbitMQ делает очереди неустойчивыми

Я использую RabbitMQ в качестве брокера Stomp для приложения Spring Websocket. Клиент использует библиотеку SockJS для подключения к интерфейсу websocket. Каждая очередь, созданная Spring на RabbitMQ, является устойчивой, а темы — недолговечными. Есть ли способ сделать очереди неустойчивыми? Я не думаю, что смогу настроить на стороне приложения. Я немного поигрался с конфигурацией RabbitMQ, но тоже не смог настроить.

Пример назначения в RabbitMQ, используемого для ПОДПИСКИ и ОТПРАВКИ:

услуги-пользователь-_385b304f-7a8f-4cf4-a0f1-d6ceed6b8c92


person Damian    schedule 07.10.2015    source источник
comment
Можете ли вы показать какой-нибудь код, который создает обмены и очереди. Короче: да, это возможно. Но, как написано, ваш вопрос не ясен, и вам трудно оказать вам дополнительную помощь. Свойства, которые вы запрашиваете (долговечность), действительно настраиваются на стороне приложения (как и почти все в RabbitMQ). Так что не понятно, что вы имеете в виду, я не думаю, что смогу настроить на стороне приложения.   -  person pinepain    schedule 07.10.2015
comment
Код обычно соответствует этому образцу github.com/rstoyanchev/spring-websocket-portfolio. Единственное отличие состоит в том, что он использует полнофункциональный брокер сообщений вместо встроенного в Spring.   -  person Damian    schedule 07.10.2015
comment
Я знаю, что в протоколе AMQP можно установить очередь как ненадежную, но я намеренно упомянул, что это приложение Spring Websocket, использующее протокол Stomp.   -  person Damian    schedule 07.10.2015
comment
Извините, вы правы, это не тривиально на первый взгляд. Можно ли использовать rabbitmqctl set_policy stomp-queues-expiry "^stomp-" '{"expires":10000}' --apply-to queues в качестве обходного пути?   -  person pinepain    schedule 07.10.2015
comment
Я уже сделал это. Это было единственное решение, которое я смог найти. Но это решает проблему лишь частично...   -  person Damian    schedule 07.10.2015
comment
Можете ли вы привести примеры направлений, на которые вы пытаетесь ПОДПИСАТЬСЯ и ОТПРАВИТЬ?   -  person pinepain    schedule 07.10.2015


Ответы (1)


будет возможно указывать свойства для конечных точек начиная с RabbitMQ 3.6.0 в соответствии с комментариями в проблемах RabbitMQ - https://github.com/rabbitmq/rabbitmq-stomp/issues/24#issuecomment-137896165:

начиная с версии 3.6.0 можно будет явно определять свойства конечных точек, таких как /topic/ и /queue, с помощью заголовков подписки: устойчивые, автоматически удаляемые и эксклюзивные соответственно.

В качестве обходного пути вы можете попробовать создавать очереди самостоятельно, используя протокол AMQP, а затем ссылаться на эти очереди из протокола STOMP.

person pinepain    schedule 07.10.2015