Skip to content

Instantly share code, notes, and snippets.

View hairyhum's full-sized avatar

Daniil Fedotov hairyhum

  • Ockam
  • 14:54 (UTC -04:00)
View GitHub Profile

Erlang 20 and RabbitMQ.

RabbitMQ versions before 3.6.11 will not work correctly with OTP-20

When upgrading from OTP-19.x(or earlier) to OTP-20 all the persistent data will be permanently lost!

Although it's possible to run RabbitMQ with OTP-20 from scratch, there will be crashes in queue mirroring and management API.

make package-generic-unix UNOFFICIAL_RELEASE=true V=2
set -x; mkdir -p /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk
+ mkdir -p /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk
set -x; rm -f /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log
+ rm -f /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log
set -x; for dep in ; do \
make -C $dep /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-deps-list.log \
IS_APP=1 \
ERLANG_MK_RECURSIVE_TMP_LIST=/home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log \
|| exit $?; \
make package-generic-unix UNOFFICIAL_RELEASE=true V=2
set -x; mkdir -p /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk
+ mkdir -p /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk
set -x; rm -f /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log
+ rm -f /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log
set -x; for dep in ; do \
make -C $dep /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-deps-list.log \
IS_APP=1 \
ERLANG_MK_RECURSIVE_TMP_LIST=/home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log \
|| exit $?; \
make source-dist V=2
set -x; mkdir -p /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk
+ mkdir -p /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk
set -x; rm -f /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log
+ rm -f /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log
set -x; for dep in ; do \
make -C $dep /home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-deps-list.log \
IS_APP=1 \
ERLANG_MK_RECURSIVE_TMP_LIST=/home/daniil/dev/master/deps/rabbitmq_server_release/.erlang.mk/recursive-tmp-deps.log \
|| exit $?; \

RabbitMQ team is proud to announce that starting from the version 3.7.0 RabbitMQ will come with the new command line tools, known as rabbitmqctl.

The reasoning behind this change is that in previous versions rabbitmqctl was deeply integrated into server code, which made it hard to implement new commands, extend and modify existing commands.

The tools is written on [Elixir][elixir] programming language. This will make it easier for people new to erlang to start extending the tools. Although after built, the tools don't require Elixir to be installed.

@hairyhum
hairyhum / CLI.md
Last active December 12, 2016 12:04

New (3.7.0+) RabbitMQ CLI Tools

Summary

RabbitMQ version 3.7 comes with brave new CLI tool to replace rabbitmqctl.

Some of the issues in the older tool suite we wanted to address:

  • Built-in into RabbitMQ server code
  • Home-grown argument parser
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.DummyCommand').
-behaviour('Elixir.RabbitMQ.CLI.CommandBehaviour').
-export([
usage/0
,flags/0
,validate/2
,merge_defaults/2
,banner/2
$ make foo
echo var /etc/init.d
var /etc/init.d
echo other /etc/init.d
other /etc/init.d
$ make bar
echo var /etc/init.d
var /etc/init.d
echo other /etc/init.d
other /etc/init.d
[
{
"acks_uncommitted": 654846,
"confirm": false,
"connection_details": {
"name": "127.0.0.1:56575 -> 127.0.0.1:5672",
"peer_host": "127.0.0.1",
"peer_port": 56575
},
"consumer_count": 667236,
# [
# {rabbit,
# [##
## Network Connectivity
## ====================
##
## By default, RabbitMQ will listen on all interfaces, using
## the standard (reserved) AMQP port.
##
## {tcp_listeners, [5672]},