Christopher L. Shannon created ARTEMIS-2613:
-----------------------------------------------
Summary: Support DivertBindings for Federated Addresses
Key: ARTEMIS-2613
URL: https://issues.apache.org/jira/browse/ARTEMIS-2613
Project: ActiveMQ Artemis
Issue Type: New Feature
Components: Broker
Affects Versions: 2.11.0
Reporter: Christopher L. Shannon
Assignee: Christopher L. Shannon
Fix For: 2.12.0
The goal of this Jira is to add support for creating demand based on the
existing of Divert Bindings. The idea is that if a divert binding source
address matches the federated address match list and the forward address
matches 1 or more queue bindings (either anycast or multicast) then we should
create a remote consumers to create demand between the brokers as if there was
a queue binding directly on the original address.
Note that this feature is a subset of what is provided by 5.x network of
brokers with Virtual destination consumers and composite destinations as
described here: [https://activemq.apache.org/networks-of-brokers]
There are a few use cases but a primary one is legacy JMS 1.1 clients that have
not been upgraded to 2.0 (so no shared subscriptions) but you want to load
balance off a topic. In this case you might create a divert to move messages
from a topic to a queue so multiple consumers can load balance. If the topic
is part of the federated address list then we still want those consumers to be
able to get messages off the topic even though they are on a different queue
because the divert exists. This makes management easier as we don't need to
try and add federated queues for the load balanced queues.
As of now this feature will only be supported by federated addresses and not
federated queues. This works well with multicast and addresses as queue
creation (or queue bindings) create the demand for remote consumers to be
created so we can simply also support divert bindings that match queue
bindings. For federated queues it is consumer driven and is meant to load
balance so it's not really clear if this feature really work properly for
federated queues. If anything we would possibly need to add anycast support to
federated addresses to support it.
This new feature will be controlled by a new flag, called
{{enableDivertBindings}} that is part of the federation address policy
settings. By default it will be disabled as turning it on will of course cause
some extra overhead and cpu plus will cause a change in behavior of the
federated address.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)