1
- ## RabbitMQ 3.13.0-rc.4
1
+ ## RabbitMQ 3.13.0-rc.5
2
2
3
- RabbitMQ ` 3.13.0-rc.4 ` is a candidate of a new feature release.
3
+ RabbitMQ ` 3.13.0-rc.5 ` is a candidate of a new feature release.
4
4
5
5
## Highlights
6
6
@@ -261,21 +261,28 @@ Release notes are kept under [rabbitmq-server/release-notes](https://github.com/
261
261
262
262
* Classic queue storage v2 (CQv2) has matured and is now recommended for all users.
263
263
264
- We recommend switching classic queues to CQv2 after ** all cluster nodes** have been upgrades ,
264
+ We recommend switching classic queues to CQv2 after ** all cluster nodes** have been upgraded to 3.13.0 ,
265
265
at first using policies, and then eventually using a setting in ` rabbitmq.conf ` . Upgrading
266
266
classic queues to CQv2 at boot time using the configuration file setting can be
267
267
potentially unsafe in environments where deprecated classic mirrored queues still exist.
268
268
269
269
For new clusters, adopt CQv2 from the start by setting ` classic_queue.default_version ` in ` rabbitmq.conf ` :
270
270
271
271
``` ini
272
+ # only set this value for new clusters or after all nodes have been upgraded to 3.13
272
273
classic_queue.default_version = 2
273
274
```
274
275
275
276
* Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.
276
277
277
278
GitHub issue: [ #6090 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/6090 ) , [ #8507 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8507 )
278
279
280
+ * When a non-mirrored classic queue is declared, its placement node
281
+ is now selected with less interaction with cluster peers, speeding up the process
282
+ when some nodes have recently gone down.
283
+
284
+ GitHub issue: [ #10102 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10102 )
285
+
279
286
* A subsystem for marking features as deprecated.
280
287
281
288
GitHub issue: [ #7390 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/7390 )
@@ -287,6 +294,45 @@ Release notes are kept under [rabbitmq-server/release-notes](https://github.com/
287
294
288
295
GitHub issues: [ #8834 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8834 ) , [ #8927 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8927 )
289
296
297
+ * Classic queue storage version now can be set via [ operator policies] ( https://rabbitmq.com/parameters.html#operator-policies ) .
298
+
299
+ Contributed by @SimonUnge (AWS).
300
+
301
+ GitHub issue: [ #9541 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9541 )
302
+
303
+ * ` channel_max_per_node ` allows limiting how many channels a node would allow clients to open, in total.
304
+
305
+ This limit is easier to reason about than the per-node connection limit multiplied by ` channel_max ` (a per-connection limit for channels).
306
+
307
+ Contributed by @SimonUnge (AWS).
308
+
309
+ GitHub issue: [ #10351 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10351 )
310
+
311
+ * ` disk_free_limit.absolute ` and vm_memory_high_watermark.absolute` now support more information units: ` Mi` , ` Gi` , ` TB` , ` Ti` , ` PB` , ` Pi`.
312
+
313
+ In addition, there were some renaming of the existing keys:
314
+
315
+ * ` K ` now means "kilobyte" and not "kibibyte"
316
+ * ` M ` now means "megabyte" and not "mebibyte"
317
+ * ` G ` now means "gigabyte" and not "gibibyte"
318
+
319
+ There is no consensus on how these single letter suffixes should be interpreted (as their power of 2 or power of 10 variants),
320
+ so RabbitMQ has adopted a widely used [ convention adopted by Kubernetes] ( https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory ) .
321
+
322
+ GitHub issues: [ #10310 ] ( https://github.com/rabbitmq/rabbitmq-server/issues/10310 ) , [ #10348 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10348 )
323
+
324
+ * Improved efficiency of definition imports in environments with a lot of virtual hosts.
325
+
326
+ Contributed by @AyandaD .
327
+
328
+ GitHub issue: [ #10320 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10320 )
329
+
330
+ * When a [ consumer delivery timeout] ( https://rabbitmq.com/consumers.html#acknowledgement-timeout ) hits, a more informative message is now logged.
331
+
332
+ Contributed by @rluvaton .
333
+
334
+ GitHub issue: [ #10446 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10446 )
335
+
290
336
#### Bug Fixes
291
337
292
338
This release includes all bug fixes shipped in the ` 3.12.x ` series.
@@ -299,12 +345,43 @@ This release includes all bug fixes shipped in the `3.12.x` series.
299
345
300
346
GitHub issue: [ #8491 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8491 )
301
347
348
+ * Feature flag state is now persisted in a safer way during node shutdown.
349
+
350
+ GitHub issue: [ #10279 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10279 )
351
+
352
+ * Feature flag synchronization between nodes now avoids a potential race condition.
353
+
354
+ GitHub issue: [ #10027 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10027 )
355
+
302
356
* The state of node maintenance status across the cluster is now replicated. It previously was accessible
303
357
to all nodes but not replicated.
304
358
305
359
GitHub issue: [ #9005 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9005 )
306
360
307
361
362
+ ### CLI Tools
363
+
364
+ #### Deprecations
365
+
366
+ * ` rabbitmqctl rename_cluster_node ` and ` rabbitmqctl update_cluster_nodes ` are now no-ops.
367
+
368
+ They were not safe to use with quorum queues and streams, and are completely incompatible with Khepri.
369
+
370
+ GitHub issue: [ #10369 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10369 )
371
+
372
+ #### Enhancements
373
+
374
+ * ` rabbitmq-diagnostics cluster_status ` now responds significantly faster when some cluster
375
+ nodes are not reachable.
376
+
377
+ GitHub issue: [ #10101 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10101 )
378
+
379
+ * ` rabbitmqctl list_deprecated_features ` is a new command that lists deprecated features
380
+ that are deprecated used on the target node.
381
+
382
+ GitHub issues: [ #9901 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9901 ) , [ #7390 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/7390 )
383
+
384
+
308
385
### Management Plugin
309
386
310
387
#### Enhancements
@@ -328,6 +405,12 @@ This release includes all bug fixes shipped in the `3.12.x` series.
328
405
329
406
GitHub issues: [ #9437 ] ( https://github.com/rabbitmq/rabbitmq-server/issues/9437 ) , [ #9578 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9578 ) , [ #9633 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9633 )
330
407
408
+ #### Bug Fixes
409
+
410
+ * ` GET /api/nodes/{name} ` failed with a 500 when called with a non-existed node name.
411
+
412
+ GitHub issue: [ #10330 ] ( https://github.com/rabbitmq/rabbitmq-server/issues/10330 )
413
+
331
414
332
415
### Stream Plugin
333
416
@@ -341,6 +424,25 @@ This release includes all bug fixes shipped in the `3.12.x` series.
341
424
342
425
GitHub issue: [ #8207 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8207 )
343
426
427
+ * Stream connections now support JWT (OAuth 2) token renewal. The renewal is client-initiated
428
+ shortly before token expiry. Therefore, this feature requires stream protocol clients to be updated.
429
+
430
+ GitHub issue: [ #9187 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9187 )
431
+
432
+ * Stream connections are now aware of JWT (OAuth 2) token expiry.
433
+
434
+ GitHub issue: [ #10292 ] ( https://github.com/rabbitmq/rabbitmq-server/issues/10292 )
435
+
436
+ #### Bug Fixes
437
+
438
+ * Stream (replica) membership changes safety improvements.
439
+
440
+ GitHub issue: [ #10331 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10331 )
441
+
442
+ * Stream protocol connections now complies with the connection limit in target virtual host.
443
+
444
+ GitHub issue: [ #9946 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9946 )
445
+
344
446
345
447
### MQTT Plugin
346
448
@@ -350,6 +452,10 @@ This release includes all bug fixes shipped in the `3.12.x` series.
350
452
351
453
GitHub issues: [ #7263 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/7263 ) , [ #8681 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8681 )
352
454
455
+ * MQTT clients that use QoS 0 now can reconnect more reliably when the node they were connected to fails.
456
+
457
+ GitHub issue: [ #10203 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10203 )
458
+
353
459
* Negative message acknowledgements are now propagated to MQTTv5 clients.
354
460
355
461
GitHub issue: [ #9034 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9034 )
@@ -370,10 +476,47 @@ This release includes all bug fixes shipped in the `3.12.x` series.
370
476
371
477
GitHub issue: [ #8680 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/8680 )
372
478
479
+ * AMQP 1.0 connections are now throttled when the node hits a [ resource alarm] ( https://rabbitmq.com/alarms.html ) .
480
+
481
+ GitHub issue: [ #9953 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/9953 )
482
+
483
+
484
+ ### OAuth 2 AuthN and AuthZ Backend Plugin
485
+
486
+ #### Enhancements
487
+
488
+ * RabbitMQ nodes now allow for multiple OAuth 2 resources to be configured. Each resource can use
489
+ a different identity provider (for example, one can be powered by Keycloak and another by Azure Active Directory).
490
+
491
+ This allows for identity provider infrastructure changes (say, provider A is replaced with provider B over time)
492
+ that do not affect RabbitMQ's ability to authenticate clients and authorize the operations they attempt to perform.
493
+
494
+ GitHub issue: [ #10012 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10012 )
495
+
496
+ * The plugin now performs discovery of certain properties for OpenID-compliant identity providers.
497
+
498
+ GitHub issue: [ #10012 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10012 )
499
+
500
+
501
+ ### Peer Discovery AWS Plugin
502
+
503
+ #### Enhancements
504
+
505
+ * It is now possible to override how node's hostname is extracted from AWS API responses during peer discovery.
506
+
507
+ This is done using ` cluster_formation.aws.hostname_path ` , a collection of keys that will be used to
508
+ traverse the response and extract nested values from it. The list is comma-separated.
509
+
510
+ The default value is a single value list, ` privateDnsName ` .
511
+
512
+ Contributed by @illotum (AWS).
513
+
514
+ GitHub issue: [ #10097 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/10097 )
515
+
373
516
374
517
### Dependency Changes
375
518
376
- * ` ra ` was upgraded to [ ` 2.7 .1 ` ] ( https://github.com/rabbitmq/ra/releases )
519
+ * ` ra ` was upgraded to [ ` 2.9 .1 ` ] ( https://github.com/rabbitmq/ra/releases )
377
520
* ` osiris ` was updated to [ ` 1.7.2 ` ] ( https://github.com/rabbitmq/osiris/releases )
378
521
* ` cowboy ` was updated to [ ` 2.11.0 ` ] ( https://ninenines.eu/docs/en/cowboy/2.11/guide/migrating_from_2.10/ )
379
522
0 commit comments