Skip to content

Commit cb43e40

Browse files
Merge branch 'master' into rabbitmq-server-1743-exclusive-consumer
2 parents eb3bb7e + 1e2a202 commit cb43e40

39 files changed

+2864
-1136
lines changed

.travis.yml

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# vim:sw=2:et:
22

3+
dist: xenial
34
sudo: false
45
language: erlang
56
notifications:
@@ -10,15 +11,8 @@ notifications:
1011
on_failure: always
1112
addons:
1213
apt:
13-
sources:
14-
- sourceline: deb https://packages.erlang-solutions.com/ubuntu trusty contrib
15-
key_url: https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc
1614
packages:
1715
- awscli
18-
# Use Elixir from Erlang Solutions. The provided Elixir is
19-
# installed with kiex but is old. We also can't use kiex to
20-
# install a newer one because of GitHub API rate limiting.
21-
- elixir=1.6.0-1
2216
cache:
2317
apt: true
2418
env:
@@ -27,10 +21,10 @@ env:
2721
- secure: L1t0CHGR4RzOXwtkpM6feRKax95rszScBLqzjstEiMPkhjTsYTlAecnNxx6lTrGMnk5hQoi4PtbhmyZOX0siHTngTogoA/Nyn8etYzicU5ZO+qmBQOYpegz51lEu70ewXgkhEHzk9DtEPxfYviH9WiILrdUVRXXgZpoXq13p1QA=
2822

2923
otp_release:
30-
- "19.3"
31-
- "20.3"
24+
- "21.2"
3225

3326
before_script:
27+
- elixir --version
3428
# The checkout made by Travis is a "detached HEAD" and branches
3529
# information is missing. Our Erlang.mk's git_rmq fetch method relies
3630
# on it, so we need to restore it.
@@ -42,11 +36,6 @@ before_script:
4236
git remote add upstream https://github.com/$TRAVIS_REPO_SLUG.git
4337
git fetch upstream v3.8.x:v3.8.x || :
4438
git fetch upstream master:master || :
45-
# Make sure we use Elixir from Erlang Solutions and not kiex.
46-
- |
47-
echo YES | kiex implode
48-
elixir --version
49-
elixir --version | grep -q 'Elixir 1.6.0'
5039
5140
script:
5241
- make xref

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ define PROJECT_ENV
130130
{vhost_restart_strategy, continue},
131131
%% {global, prefetch count}
132132
{default_consumer_prefetch, {false, 0}},
133-
{channel_queue_cleanup_interval, 60000}
133+
{channel_queue_cleanup_interval, 60000},
134+
%% Default max message size is 128 MB
135+
{max_message_size, 134217728}
134136
]
135137
endef
136138

@@ -268,6 +270,7 @@ web-manpages: $(WEB_MANPAGES)
268270
gsub(/<h1/, "<h2", line); \
269271
gsub(/<\/h1>/, "</h2>", line); \
270272
gsub(/class="D1"/, "class=\"D1 sourcecode bash hljs\"", line); \
273+
gsub(/class="Bd Bd-indent"/, "class=\"Bd Bd-indent sourcecode bash hljs\"", line); \
271274
print line; \
272275
} } \
273276
' > "$@"

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
## Tutorials & Documentation
1717

1818
* [RabbitMQ tutorials](https://rabbitmq.com/getstarted.html)
19-
* [Documentation guides](https://rabbitmq.com/documentation.html)
20-
* [Documentation Source Code](https://github.com/rabbitmq/rabbitmq-website/)
19+
* [All documentation guides](https://rabbitmq.com/documentation.html)
20+
* [Documentation source](https://github.com/rabbitmq/rabbitmq-website/)
2121
* [Client libraries and tools](https://rabbitmq.com/devtools.html)
22-
* [Tutorials Source Code](https://github.com/rabbitmq/rabbitmq-tutorials/)
22+
* [Monitoring guide](https://rabbitmq.com/monitoring.html)
23+
* [Production checklist](https://rabbitmq.com/production-checklist.html)
24+
* [Runnable tutorials](https://github.com/rabbitmq/rabbitmq-tutorials/)
2325

2426
## Getting Help
2527

@@ -33,6 +35,8 @@
3335

3436
See [CONTRIBUTING.md](./CONTRIBUTING.md) and our [development process overview](https://rabbitmq.com/github.html).
3537

38+
Questions about contributing, internals and so on are very welcome on the [mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
39+
3640

3741
## Licensing
3842

docs/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,20 @@ This directory contains [CLI tool](https://rabbitmq.com/cli.html) man page sourc
88
* A [systemd unit file example](./rabbitmq-server.service.example)
99

1010
Please [see rabbitmq.com](https://rabbitmq.com/documentation.html) for documentation guides.
11+
12+
## man Pages
13+
14+
### Source Files
15+
16+
This directory contains man pages that are are converted to HTML using `mandoc`:
17+
18+
gmake web-manpages
19+
20+
The result is then copied to the [website repository](https://github.com/rabbitmq/rabbitmq-website/tree/live/site/man)
21+
22+
### Contributions
23+
24+
Since deployed man pages are generated, it is important to keep them in sync with the source.
25+
Accepting community contributions — which will always come as website pull requests —
26+
is fine but the person who merges them is responsible for backporting all changes
27+
to the source pages in this repo.

docs/rabbitmq-server.8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Defaults to 5672.
7474
.Sh OPTIONS
7575
.\" ------------------------------------------------------------------
7676
.Bl -tag -width Ds
77-
.It Fl -detached
77+
.It Fl detached
7878
Start the server process in the background.
7979
Note that this will cause the pid not to be written to the pid file.
8080
.Pp

docs/rabbitmq.conf.example

Lines changed: 126 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@
470470
## Disabling background GC may reduce latency for client operations,
471471
## keeping it enabled may reduce median RAM usage by the binary heap
472472
## (see https://www.erlang-solutions.com/blog/erlang-garbage-collector.html).
473-
##
473+
##
474474
## Before trying this option, please take a look at the memory
475475
## breakdown (http://www.rabbitmq.com/memory-use.html).
476476
##
@@ -503,8 +503,17 @@
503503
# Kernel section
504504
# ======================================
505505

506+
## Timeout used to detect peer unavailability, including CLI tools.
507+
## Related doc guide: https://www.rabbitmq.com/nettick.html.
508+
##
506509
# net_ticktime = 60
507510

511+
## Inter-node communication port range.
512+
## Related doc guide: https://www.rabbitmq.com/networking.html#epmd-inet-dist-port-range.
513+
##
514+
# inet_dist_listen_min = 25672
515+
# inet_dist_listen_max = 25692
516+
508517
## ----------------------------------------------------------------------------
509518
## RabbitMQ Management Plugin
510519
##
@@ -524,18 +533,49 @@
524533
##
525534
# management.http_log_dir = /path/to/access.log
526535

527-
## Change the port on which the HTTP listener listens,
528-
## specifying an interface for the web server to bind to.
529-
## Also set the listener to use TLS and provide TLS options.
530-
##
536+
## HTTP listener and embedded Web server settings.
537+
# ## See https://rabbitmq.com/management.html for details.
538+
#
539+
# management.tcp.port = 15672
540+
# management.tcp.ip = 0.0.0.0
541+
#
542+
# management.tcp.shutdown_timeout = 7000
543+
# management.tcp.max_keepalive = 120
544+
# management.tcp.idle_timeout = 120
545+
# management.tcp.inactivity_timeout = 120
546+
# management.tcp.request_timeout = 120
547+
# management.tcp.compress = true
548+
549+
## HTTPS listener settings.
550+
## See https://rabbitmq.com/management.html and https://rabbitmq.com/ssl.html for details.
551+
##
552+
# management.ssl.port = 15671
553+
# management.ssl.cacertfile = /path/to/ca_certificate.pem
554+
# management.ssl.certfile = /path/to/server_certificate.pem
555+
# management.ssl.keyfile = /path/to/server_key.pem
556+
557+
## More TLS options
558+
# management.ssl.honor_cipher_order = true
559+
# management.ssl.honor_ecc_order = true
560+
# management.ssl.client_renegotiation = false
561+
# management.ssl.secure_renegotiate = true
562+
563+
## Supported TLS versions
564+
# management.ssl.versions.1 = tlsv1.2
565+
# management.ssl.versions.2 = tlsv1.1
566+
567+
## Cipher suites the server is allowed to use
568+
# management.ssl.ciphers.1 = ECDHE-ECDSA-AES256-GCM-SHA384
569+
# management.ssl.ciphers.2 = ECDHE-RSA-AES256-GCM-SHA384
570+
# management.ssl.ciphers.3 = ECDHE-ECDSA-AES256-SHA384
571+
# management.ssl.ciphers.4 = ECDHE-RSA-AES256-SHA384
572+
# management.ssl.ciphers.5 = ECDH-ECDSA-AES256-GCM-SHA384
573+
# management.ssl.ciphers.6 = ECDH-RSA-AES256-GCM-SHA384
574+
# management.ssl.ciphers.7 = ECDH-ECDSA-AES256-SHA384
575+
# management.ssl.ciphers.8 = ECDH-RSA-AES256-SHA384
576+
# management.ssl.ciphers.9 = DHE-RSA-AES256-GCM-SHA384
531577

532-
# management.listener.port = 15672
533-
# management.listener.ip = 127.0.0.1
534-
# management.listener.ssl = true
535578

536-
# management.listener.ssl_opts.cacertfile = /path/to/cacert.pem
537-
# management.listener.ssl_opts.certfile = /path/to/cert.pem
538-
# management.listener.ssl_opts.keyfile = /path/to/key.pem
539579

540580
## One of 'basic', 'detailed' or 'none'. See
541581
## http://rabbitmq.com/management.html#fine-stats for more details.
@@ -574,13 +614,39 @@
574614
# STOMP section
575615
# =======================================
576616

577-
## Network Configuration. The format is generally the same as for the core broker.
617+
## See https://rabbitmq.com/stomp.html for details.
618+
619+
## TCP listeners.
578620
##
579-
# stomp.listeners.tcp.default = 61613
621+
# stomp.listeners.tcp.1 = 127.0.0.1:61613
622+
# stomp.listeners.tcp.2 = ::1:61613
580623

581-
## Same for ssl listeners
624+
## TCP listener settings
582625
##
626+
# stomp.tcp_listen_options.backlog = 2048
627+
# stomp.tcp_listen_options.recbuf = 131072
628+
# stomp.tcp_listen_options.sndbuf = 131072
629+
#
630+
# stomp.tcp_listen_options.keepalive = true
631+
# stomp.tcp_listen_options.nodelay = true
632+
#
633+
# stomp.tcp_listen_options.exit_on_close = true
634+
# stomp.tcp_listen_options.send_timeout = 120
635+
636+
## Proxy protocol support
637+
##
638+
# stomp.proxy_protocol = false
639+
640+
## TLS listeners
641+
## See https://rabbitmq.com/stomp.html and https://rabbitmq.com/ssl.html for details.
583642
# stomp.listeners.ssl.default = 61614
643+
#
644+
# ssl_options.cacertfile = path/to/cacert.pem
645+
# ssl_options.certfile = path/to/cert.pem
646+
# ssl_options.keyfile = path/to/key.pem
647+
# ssl_options.verify = verify_peer
648+
# ssl_options.fail_if_no_peer_cert = true
649+
584650

585651
## Number of Erlang processes that will accept connections for the TCP
586652
## and TLS listeners.
@@ -633,6 +699,52 @@
633699
# MQTT section
634700
# =======================================
635701

702+
## TCP listener settings.
703+
##
704+
# mqtt.listeners.tcp.1 = 127.0.0.1:61613
705+
# mqtt.listeners.tcp.2 = ::1:61613
706+
707+
## TCP listener options (as per the broker configuration).
708+
##
709+
# mqtt.tcp_listen_options.backlog = 4096
710+
# mqtt.tcp_listen_options.recbuf = 131072
711+
# mqtt.tcp_listen_options.sndbuf = 131072
712+
#
713+
# mqtt.tcp_listen_options.keepalive = true
714+
# mqtt.tcp_listen_options.nodelay = true
715+
#
716+
# mqtt.tcp_listen_options.exit_on_close = true
717+
# mqtt.tcp_listen_options.send_timeout = 120
718+
719+
## TLS listener settings
720+
## ## See https://rabbitmq.com/mqtt.html and https://rabbitmq.com/ssl.html for details.
721+
#
722+
# mqtt.listeners.ssl.default = 8883
723+
#
724+
# ssl_options.cacertfile = /path/to/tls/ca_certificate_bundle.pem
725+
# ssl_options.certfile = /path/to/tls/server_certificate.pem
726+
# ssl_options.keyfile = /path/to/tls/server_key.pem
727+
# ssl_options.verify = verify_peer
728+
# ssl_options.fail_if_no_peer_cert = true
729+
#
730+
731+
732+
## Number of Erlang processes that will accept connections for the TCP
733+
## and TLS listeners.
734+
##
735+
# mqtt.num_acceptors.tcp = 10
736+
# mqtt.num_acceptors.ssl = 10
737+
738+
## Whether or not to enable proxy protocol support.
739+
## Once enabled, clients cannot directly connect to the broker
740+
## anymore. They must connect through a load balancer that sends the
741+
## proxy protocol header to the broker at connection time.
742+
## This setting applies only to STOMP clients, other protocols
743+
## like STOMP or AMQP have their own setting to enable proxy protocol.
744+
## See the plugins or broker documentation for more information.
745+
##
746+
# mqtt.proxy_protocol = false
747+
636748
## Set the default user name and password used for anonymous connections (when client
637749
## provides no credentials). Anonymous connections are highly discouraged!
638750
##
@@ -663,34 +775,6 @@
663775
##
664776
# mqtt.prefetch = 10
665777

666-
## TCP/SSL Configuration (as per the broker configuration).
667-
##
668-
# mqtt.listeners.tcp.default = 1883
669-
670-
## Same for ssl listener
671-
##
672-
# mqtt.listeners.ssl.default = 1884
673-
674-
## Number of Erlang processes that will accept connections for the TCP
675-
## and TLS listeners.
676-
##
677-
# mqtt.num_acceptors.tcp = 10
678-
# mqtt.num_acceptors.ssl = 10
679-
680-
## TCP listener options (as per the broker configuration).
681-
##
682-
# mqtt.tcp_listen_options.backlog = 128
683-
# mqtt.tcp_listen_options.nodelay = true
684-
685-
## Whether or not to enable proxy protocol support.
686-
## Once enabled, clients cannot directly connect to the broker
687-
## anymore. They must connect through a load balancer that sends the
688-
## proxy protocol header to the broker at connection time.
689-
## This setting applies only to STOMP clients, other protocols
690-
## like STOMP or AMQP have their own setting to enable proxy protocol.
691-
## See the plugins or broker documentation for more information.
692-
##
693-
# mqtt.proxy_protocol = false
694778

695779
## ----------------------------------------------------------------------------
696780
## RabbitMQ AMQP 1.0 Support

docs/rabbitmqctl.8

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ for details of configuring the RabbitMQ broker.
7373
.It Fl q , -quiet
7474
Quiet output mode is selected.
7575
Informational messages are suppressed when quiet mode is in effect.
76+
.It Fl s , -silent
77+
Silent output mode is selected.
78+
Informational messages and table headers are suppressed when silent mode is in effect.
79+
.It Fl -no-table-headers
80+
Do not output headers for tabular data.
7681
.It Fl -dry-run
7782
Do not run the command.
7883
Only print information message.

priv/schema/rabbit.schema

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ end}.
258258
{translation, "rabbit.ssl_options.ciphers",
259259
fun(Conf) ->
260260
Settings = cuttlefish_variable:filter_by_prefix("ssl_options.ciphers", Conf),
261-
[V || {_, V} <- Settings]
261+
lists:reverse([V || {_, V} <- Settings])
262262
end}.
263263

264264
%% ===========================================================================
@@ -554,6 +554,9 @@ end}.
554554
}.
555555

556556

557+
{mapping, "msx_message_size", "rabbit.max_message_size",
558+
[{datatype, integer}, {validators, ["less_then_512MB"]}]}.
559+
557560
%% Customising Socket Options.
558561
%%
559562
%% See (http://www.erlang.org/doc/man/inet.html#setopts-2) for
@@ -1342,6 +1345,16 @@ end}.
13421345
{validators, ["non_zero_positive_integer"]}
13431346
]}.
13441347

1348+
{mapping, "inet_dist_listen_min", "kernel.inet_dist_listen_min",[
1349+
{datatype, [integer]},
1350+
{validators, ["non_zero_positive_integer"]}
1351+
]}.
1352+
1353+
{mapping, "inet_dist_listen_max", "kernel.inet_dist_listen_max",[
1354+
{datatype, [integer]},
1355+
{validators, ["non_zero_positive_integer"]}
1356+
]}.
1357+
13451358
% ===============================
13461359
% Validators
13471360
% ===============================
@@ -1351,6 +1364,11 @@ fun(Size) when is_integer(Size) ->
13511364
Size > 0 andalso Size < 2147483648
13521365
end}.
13531366

1367+
{validator, "less_then_512MB", "Max message size should be less than 512MB and gre than 0",
1368+
fun(Size) when is_integer(Size) ->
1369+
Size > 0 andalso Size < 536870912
1370+
end}.
1371+
13541372
{validator, "less_than_1", "Flooat is not beetween 0 and 1",
13551373
fun(Float) when is_float(Float) ->
13561374
Float > 0 andalso Float < 1

0 commit comments

Comments
 (0)