|
1 |
| -## RabbitMQ 4.0.0-beta.6 |
| 1 | +## RabbitMQ 4.0.0-beta.7 |
2 | 2 |
|
3 |
| -RabbitMQ `4.0.0-beta.6` is a preview of a new major release. |
| 3 | +RabbitMQ `4.0.0-beta.7` is a preview of a new major release. |
4 | 4 |
|
5 | 5 | Starting June 1st, 2024, community support for this series will only be provided to [regularly contributing users](https://github.com/rabbitmq/rabbitmq-server/blob/main/COMMUNITY_SUPPORT.md) and those who hold a valid [commercial support license](https://tanzu.vmware.com/rabbitmq/oss).
|
6 | 6 |
|
@@ -45,6 +45,14 @@ on how to migrate to quorum queues for the parts of the system that really need
|
45 | 45 | ### Quorum Queues Now Have a Default Redelivery Limit
|
46 | 46 |
|
47 | 47 | Quorum queues now have a default [redelivery limit](https://www.rabbitmq.com/docs/next/quorum-queues#poison-message-handling) set to `20`.
|
| 48 | +Messages that are redelivered 20 times or more will be [dead-lettered](https://www.rabbitmq.com/docs/dlx) or dropped (removed). |
| 49 | + |
| 50 | +This limit is necessary to protect nodes from consumers that run into infinite crash-requeue-crash-requeue loops. Such |
| 51 | +consumers can drive a node out of disk space by making a quorum queue Raft log grow forever without allowing compaction |
| 52 | +of older entries. |
| 53 | + |
| 54 | +If 20 deliveries per message is a common scenario for a queue, a dead-lettering target must be configured |
| 55 | +for such queues. The recommended way of doing that is via a [policy](https://www.rabbitmq.com/docs/parameters#policies). |
48 | 56 |
|
49 | 57 | ### CQv1 Storage Implementation was Removed
|
50 | 58 |
|
@@ -93,7 +101,8 @@ IDs are passed around in messages instead of the entire payload.
|
93 | 101 |
|
94 | 102 | RabbitMQ 3.13 `rabbitmq.conf` setting `rabbitmq_amqp1_0.default_vhost` is unsupported in RabbitMQ 4.0.
|
95 | 103 |
|
96 |
| -Instead `default_vhost` will be used to determine the default vhost an AMQP 1.0 client connects to(i.e. when the AMQP 1.0 client does not define the vhost in the `hostname` field of the `open` frame). |
| 104 | +Instead `default_vhost` will be used to determine the default vhost an AMQP 1.0 client connects to(i.e. when the AMQP 1.0 client |
| 105 | +does not define the vhost in the `hostname` field of the `open` frame). |
97 | 106 |
|
98 | 107 | ### MQTT
|
99 | 108 |
|
@@ -158,11 +167,13 @@ periods of time (no more than a few hours).
|
158 | 167 |
|
159 | 168 | ### Recommended Post-upgrade Procedures
|
160 | 169 |
|
161 |
| -Set a low priority dead lettering policy for all quorum queues to dead letter to a stream or similar |
162 |
| -so that messages that reach the new default delivery limit of 20 aren't lost completely |
163 |
| -when no dead lettering policy is in place. |
| 170 | +#### Configure Dead Lettering for Frequently Redelivered Messages |
| 171 | + |
| 172 | +In environments where messages can experience 20 redeliveries, the affected queues should have [dead lettering](https://www.rabbitmq.com/docs/dlx) |
| 173 | +configured (usually via a [policy](https://www.rabbitmq.com/docs/parameters#policies)) to make sure |
| 174 | +that messages that are redelivered 20 times are moved to a separate queue (or stream) instead of |
| 175 | +being dropped (removed) by the [crash-requeue-redelivery loop protection mechanism](https://www.rabbitmq.com/docs/next/quorum-queues#poison-message-handling). |
164 | 176 |
|
165 |
| -TBD |
166 | 177 |
|
167 | 178 | ## Changes Worth Mentioning
|
168 | 179 |
|
|
0 commit comments