Rabbit MQ
RabbitMQ is a message broker: it accepts and forwards messages. It accepts, stores and forwards binary blobs of data - messages.
RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.
The entry point to know RabbitMQ:
https://www.rabbitmq.com/#getstarted
Installation
For installation in Windows systems:
https://www.rabbitmq.com/install-windows-manual.html
Documentation
For general documentation:
https://www.rabbitmq.com/documentation.html
Prerrequisites
From windows installer. It requires Erlang to be previously installed.
http://www.erlang.org/downloads
http://erlang.org/doc/getting_started/users_guide.html
http://erlang.org/doc/design_principles/users_guide.html
In order to use python.exe rabbitmqadmin
is needed to have Python installed for Windows systems.
https://www.python.org/downloads/
https://docs.python.org/3.6/tutorial/index.html
Install the executable file.
RabbitMQ for Windows
The latest release of RabbitMQ is 3.7.2. For release notes, see changelog.
https://www.rabbitmq.com/install-windows-manual.html
Download: rabbitmq-server-windows-3.7.0.zip and extract it.
Set ERLANG_HOME.
Set RABBITMQ_SERVER
The RabbitMQ server can be run as either an application or service (not both).
Some useful commands (from /sbin/ directory).
- rabbitmq-server.bat starts the broker as an application.
- rabbitmq-service.bat manages the service and starts the broker.
- rabbitmqctl.bat manages a running broker.
Erlang Security Cookies used by the service account and the user running rabbitmqctl.bat must be synchronised for rabbitmqctl.bat to function.
Application Data will be: C:\Users\z462725\AppData\Roaming\RabbitMQ
User Erlang Cookie: C:\Users\z462725.erlang.cookie
Start server:rabbitmq-server -detached
RabbitMQ Configuration
https://www.rabbitmq.com/configure.html#customise-windows-environment
Default user
The broker creates a user guest with password guest. Unconfigured clients will in general use these credentials. By default, these credentials can only be used when connecting to the broker as localhost so you will need to take action before connecting from any other machine.
Managing RabbitMQ
List all queues in RabbitMQ: rabbitmqctl.bat list_queues
Community Plugins
https://www.rabbitmq.com/community-plugins.html
Enabling Embeded Plugins
RabbitMQ supports a variety of plugins. This page documents the plugins that ship with RabbitMQ 3.7.0.
You can use the -n option to specify a different node, or use --offline to only change the file.
https://www.rabbitmq.com/plugins.html
https://www.rabbitmq.com/man/rabbitmq-plugins.8.html
Commands: rabbitmq-plugins
List all plugins: rabbitmq-plugins list
C:\Users\z462725>rabbitmq-plugins list
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@ISBNQROZ462725P
|/
[ ] rabbitmq_amqp1_0 3.7.0
[ ] rabbitmq_auth_backend_cache 3.7.0
[ ] rabbitmq_auth_backend_http 3.7.0
[ ] rabbitmq_auth_backend_ldap 3.7.0
[ ] rabbitmq_auth_mechanism_ssl 3.7.0
[ ] rabbitmq_consistent_hash_exchange 3.7.0
[ ] rabbitmq_event_exchange 3.7.0
[ ] rabbitmq_federation 3.7.0
[ ] rabbitmq_federation_management 3.7.0
[ ] rabbitmq_jms_topic_exchange 3.7.0
[E*] rabbitmq_management 3.7.0
[e*] rabbitmq_management_agent 3.7.0
[ ] rabbitmq_mqtt 3.7.0
[ ] rabbitmq_peer_discovery_aws 3.7.0
[ ] rabbitmq_peer_discovery_common 3.7.0
[ ] rabbitmq_peer_discovery_consul 3.7.0
[ ] rabbitmq_peer_discovery_etcd 3.7.0
[ ] rabbitmq_peer_discovery_k8s 3.7.0
[ ] rabbitmq_random_exchange 3.7.0
[ ] rabbitmq_recent_history_exchange 3.7.0
[ ] rabbitmq_sharding 3.7.0
[ ] rabbitmq_shovel 3.7.0
[ ] rabbitmq_shovel_management 3.7.0
[ ] rabbitmq_stomp 3.7.0
[ ] rabbitmq_top 3.7.0
[ ] rabbitmq_tracing 3.7.0
[ ] rabbitmq_trust_store 3.7.0
[e*] rabbitmq_web_dispatch 3.7.0
[ ] rabbitmq_web_mqtt 3.7.0
[ ] rabbitmq_web_mqtt_examples 3.7.0
[ ] rabbitmq_web_stomp 3.7.0
[ ] rabbitmq_web_stomp_examples 3.7.0
dd
Development Tools
https://www.rabbitmq.com/devtools.html
RabbitMQ Java client and the API-guide
Configuration
https://www.rabbitmq.com/configure.html#configuration-file
Provisioning (Chef, Puppet, Docker, etc)
Monitoring
- RabbitMQ CollectD extension RabbitMQ Datadog integration
- RabbitMQ Prometheus Exporter
Web Messaging
- Web STOMP RabbitMQ plugin
- rabbit-socks Websocket and Socket.IO support for RabbitMQ
- VorpalBunny An experimental driver (in PHP) for rabbitmq_jsonrpc_channel designed to expedite single call HTTP delivery for Basic.Publish calls to RabbitMQ
- Webhooks for RabbitMQ A plugin for RabbitMQ that allows you to forward messages to configurable URLs
- as3-amqp A RabbitMQ client library in AS3 for Flex and Flash
- rabbitmq-chat A web chat room implemented with RabbitMQ and Websockets
- hxamqp A port of as3-amqp to haXe
- rabbithub an implementation of Google Pubsubhubbub for HTTP web push
- We provide RabbitMQ plugins that expose a JSON/RPC endpoint and AMQP-over-HTTP binding for interacting with RabbitMQ over HTTP
References
For after installation:
https://www.rabbitmq.com/configure.html#configuration-file
https://www.rabbitmq.com/documentation.html
http://www.rabbitmq.com/releases/rabbitmq-java-client/current-javadoc/
Docker files
https://github.com/CentOS/CentOS-Dockerfiles/blob/master/rabbitmq/centos6/Dockerfile