Alec Henninger created AMQ-7050:
-----------------------------------
Summary: Allow alternate persistence mechanism with
SubQueueSelectorCacheBrokerPlugin
Key: AMQ-7050
URL: https://issues.apache.org/jira/browse/AMQ-7050
Project: ActiveMQ
Issue Type: Improvement
Components: Broker
Affects Versions: 5.15.6
Reporter: Alec Henninger
(Largely copied from my email to dev list)
Background: We're running a multitenant activemq pair using selector aware
virtual topics extensively but also need truly durable subscriptions. The
SubQueueSelectorCacheBroker plugin was developed for this purpose as we
understand, however it persists the selector cache in a File, and we'd like to
instead use a shared/replicated cache that doesn't depend on a node first
storing the cached consumer selector locally first. The reason for this is,
with the current implementation, there is an edge case where if both:
1. A active broker has not yet cached a consumer's selector (e.g. secondary
broker becomes primary that hasn't yet received connection from said consumer
and brokers are not sharing networked file system)
2. Producer connects and starts publishing messages before consumer
...then those messages will be lost. In some domains, any message loss is
really undesirable so we want to do everything we can to prevent that while
still using selector aware virtual topics. We'd just turn off selectorAware,
but then we have to deal with message build up for consumers using selectors,
and we have little control over how/when consumers use selectors.
Hence, refactoring SubQueueSelectorCacheBroker to allow an alternate source of
persistence enables us to experiment with a fix.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)