activemq-artemis/examples/features
Justin Bertram af2672e79a ARTEMIS-966 MQTT subscription state isn't durable
Durable subscrption state is part of the MQTT specification which has
not been supported until now. This functionality is implemented via an
internal last-value queue. When an MQTT client creates, updates, or
adds a subscription a message using the client-ID as the last-value is
sent to the internal queue. When the broker restarts this data is read
from the queue and populates the in-memory MQTT data-structures.
Therefore subscribers can reconnect and resume their session's
subscriptions without have to manually resubscribe.

MQTT state is now managed centrally per-broker rather than in the
MQTTProtocolManager since there is one instance of MQTTProtocolManager
for each acceptor allowing MQTT connections. Managing state per acceptor
would allow odd behavior with clients connecting to different acceptors
with the same client ID.

The subscriptions are serialized as raw bytes with a "version" byte for
potential future use, but I intentionally avoided adding complex
scaffolding to support multiple versions. We can add that complexity
later if necessary.

Some tests needed to be changed since instantiating an MQTT protocol
manager now creates an internal queue. A handful of tests assume that no
queues will exist other than the ones they create themselves. I updated
the main test super-class so that an MQTT protocol manager is not
automatically instantiated when configuring a broker for in-vm support.
2023-09-13 11:28:53 +01:00
..
broker-connection ARTEMIS-4419 Add federation support to AMQP broker connections 2023-09-11 16:38:36 -04:00
clustered [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00
connection-router [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00
federation [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00
ha [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00
perf [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00
standard ARTEMIS-966 MQTT subscription state isn't durable 2023-09-13 11:28:53 +01:00
sub-modules ARTEMIS-4386: consolidate the used servlet api deps on the jetty one already being shipped 2023-08-04 11:57:01 +01:00
pom.xml [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00