Questions tagged [rabbitmq]

RabbitMQ is an open-source message broker originally implementing the AMQP protocol with additional messaging protocols supported via a plug-in architecture. This tag should be used with questions involving the RabbitMQ server message broker product or questions concerning the source code and implementation of the RabbitMQ product. A specific protocol tag such as amqp or mqtt may also be appropriate as well as the OS and programming language being used.

RabbitMQ is an open-source message broker software that implements the Advanced Message Queuing Protocol (AMQP) with other message protocols (HTTP, STOMP, and MQTT) supported via its plug-in architecture. AMQP itself is one of several open standard for business messaging. Written in Erlang, the RabbitMQ server is based on a proven platform and offers a reliable, highly available, scalable and portable messaging system with predictable and consistent throughput and latency. There are several operating systems supported, including Linux and Windows.

There is also a client library implementing the AMQP protocol, RabbitMQ-C, librabbitmq on Linux, which provides C language bindings. This library is a basis for client libraries for a number of different programming languages.

RabbitMQ is 100% open-source and 100% based on open standard protocols, freeing users from dependency on proprietary vendor-supplied libraries. It is designed from the ground up to interoperate with other message systems. It is a leading implementation of AMQP.

The official URL of RabbitMQ is https://www.rabbitmq.com. Simple tutorials can be found on https://github.com/rabbitmq/rabbitmq-tutorials. Its client implementation can be done in various languages like Python, Java, Ruby, PHP, C#, JavaScript, GO, Elixr.

The principal idea of RabbitMQ is to accept and forward messages analogous to a post office: when you send mail to the post box, you're pretty sure the post office will eventually deliver the mail to your recipient. Using this metaphor, RabbitMQ is a post box, a post office and a postman. The major difference between RabbitMQ and the post office is the fact that it doesn't deal with paper, instead it accepts, stores and forwards binary blobs of data ‒ messages.

Through adapters, it supports MQTT and STOMP, both natively and over HTTP/WebSockets. SMTP is also available thanks to a community plugin.

Support for the software is offered through both a thriving community of active contributors and a range of commercial support services available through Pivotal (https://pivotal.io/oss).

Related tags

14241 questions
64
votes
9 answers

"node with name "rabbit" already running", but also "unable to connect to node 'rabbit'"

Rabbitmq server does not start, saying it's already running: $: rabbitmq-server Activating RabbitMQ plugins ... 0 plugins activated: node with name "rabbit" already running on "android-d1af002161676bee" diagnostics: - nodes and their ports on…
Jordan Warbelow-Feldstein
  • 10,510
  • 12
  • 48
  • 79
64
votes
7 answers

How do I stop the RabbitMQ server on localhost

I installed RabbitMQ server on OS X, and started it on command line. Now, it is not obvious that how I should stop it from running? After I did: sudo rabbitmq-server -detached I get: Activating RabbitMQ plugins ... 0 plugins activated: That was…
MLister
  • 10,022
  • 18
  • 64
  • 92
64
votes
3 answers

Is there a performance difference between pooling connections or channels in rabbitmq?

I'm a newbie with Rabbitmq(and programming) so sorry in advance if this is obvious. I am creating a pool to share between threads that are working on a queue but I'm not sure if I should use connections or channels in the pool. I know I need…
Lostsoul
  • 25,013
  • 48
  • 144
  • 239
63
votes
2 answers

RabbitMQ use of immediate and mandatory bits

I am using RabbitMQ server. For publishing messages, I set the immediate field to true and tried sending 50,000 messages. Using rabbitmqctl list_queues, I saw that the number of messages in the queue was zero. Then, I changed the immediate flag to…
Gurpreet Singh
  • 1,326
  • 3
  • 15
  • 21
63
votes
3 answers

RabbitMQ by Example: Multiple Threads, Channels and Queues

I just read RabbitMQ's Java API docs, and found it very informative and straight-forward. The example for how to set up a simple Channel for publishing/consuming is very easy to follow and understand. But it's a very simple/basic example, and it…
user1768830
63
votes
9 answers

How to restart RabbitMQ service

I am getting a strange error while restarting the rabbitmq service and because of that I am unable to restart RabbitMQ service. I got this message from EventViewer and have tried to find solution by googling but no luck..please suggest. RabbitMQ:…
Shax
  • 4,207
  • 10
  • 46
  • 62
62
votes
5 answers

Topic Exchange vs Direct Exchange in RabbitMQ

We've got an application which will be using RabbitMQ and have several different queues for passing messages between tiers. Initially, I was planning to use multiple direct exchanges, with one for each message type, but it looks like having a single…
Mun
  • 14,098
  • 11
  • 59
  • 83
61
votes
2 answers

RabbitMQ difference between exclusive and auto-delete?

The "RabbitMQ in Action" book on page 19 gives these descriptions of exclusive and auto-delete: exclusive - When set to true, your queue becomes private and can only be consumed by your app. This is useful when you need to limit a queue to only…
user782220
  • 10,677
  • 21
  • 72
  • 135
61
votes
9 answers

Check RabbitMQ queue size from client

Does anyone know if there's a way to check the number of messages in a RabbitMQ queue from a client application? I'm using the .NET client library.
Pablote
  • 4,745
  • 9
  • 39
  • 46
60
votes
5 answers

RabbitMQ (beam.smp) and high CPU/memory load issue

I have a debian box running tasks with celery and rabbitmq for about a year. Recently I noticed tasks were not being processed so I logged into the system and noticed that celery could not connect to rabbitmq. I restarted rabbitmq-server and even…
marcin_koss
  • 5,763
  • 10
  • 46
  • 65
60
votes
8 answers

RabbitMQ dead letter exchange never getting messages

I'm trying to setup my first RabbitMQ dead letter exchange, here are the steps I'm using through the web admin interface: Create new DIRECT exchange with the name "dead.letter.test" Create new queue "dead.letter.queue" Bind "dead.letter.queue" to…
jhilden
  • 12,207
  • 5
  • 53
  • 76
59
votes
9 answers

Why can't you look at messages in the Rabbit Queue

If my understanding is correct, you can't actually look at messages in the rabbit queue without taking them out and putting them back in. There's no way to use rabbitmqctl to inspect a queue. In some debugging contexts, knowing what is currently in…
archgoon
  • 1,538
  • 2
  • 14
  • 19
59
votes
5 answers

C# Convert ReadOnlyMemory to byte[]

Given ReadOnlyMemory Struct I want to convert the stream into a string I have the following code: var body = ea.Body; //ea.Body is of Type ReadOnlyMemory var message = Encoding.UTF8.GetString(body); Console.WriteLine(" [x] Received {0}",…
Jebathon
  • 4,310
  • 14
  • 57
  • 108
58
votes
8 answers

RabbitMQ - purge a queue from all of its unacked messages

I have thousands of unacked messages in my dev environment which I can't restart. Is there a way to remove (purge) all messages even if they are unacknowledged?
Bick
  • 17,833
  • 52
  • 146
  • 251
58
votes
14 answers

rabbitmq-server fails to start after hostname has changed for first time

I am using django-celery for my django project. Last day I have changed my computer's hostname (I am using Ubuntu 12.04, edited file '/etc/hostname'), and after next restart django-celery was failing with error Consumer: Connection Error: [Errno…
Jinesh
  • 2,507
  • 2
  • 22
  • 23