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
5
votes
2 answers

Celery Closes Unexpectedly After Longer Inactivity

So I am using a RabbitMQ + Celery to create a simple RPC architecture. I have one RabbitMQ message broker and one remote worker which runs Celery deamon. There is a third server which exposes a thin RESTful API. When it receives HTTP request, it…
Richard Knop
  • 81,041
  • 149
  • 392
  • 552
5
votes
1 answer

List queues RabbitMQ using Ruby Bunny gem

Wasn't able to find any documentation on listing the names of the queues and their message counts on the RabbitMQ Bunny docs. I have been able to extract the names and counts using this commandline result if my rabbitmq-server is on the same server…
naveed
  • 251
  • 3
  • 12
5
votes
1 answer

XA transactions and message bus

In our new project we would like to achieve transactions that involve jpa (mysql) and a message bus (rabbitmq) We started building our infrastructure with spring data using mysql and rabbitmq (via spring amqp module). Since rabbitMq is not…
Urbanleg
  • 6,252
  • 16
  • 76
  • 139
5
votes
2 answers

Ridiculously slow simultaneous publish/consume rate with RabbitMQ

I'm evaluating RabbitMQ and while the general impression (of AMQP as such, and also RabbitMQ) is positive, I'm not very impressed by the result. I'm attempting to publish and consume messages simultaneously and have achieved very poor message rates.…
Manjabes
  • 1,884
  • 3
  • 17
  • 34
5
votes
0 answers

Getting historic data in RabbitMQ

I have to make a report for number of messages published to RabbitMQ and number of messages consumed by RabbitMQ in 1 day of use. I am able to get the snapshot of statistic at some interval by using REST API provided with RabbitMQ . How can I get…
Learner
  • 221
  • 2
  • 10
5
votes
3 answers

requeue a sweatshop job in RabbitMQ

I am working on a Rails application where customer refunds are handed to a Sweatshop worker. If a refund fails (because we cannot reach the payment processor at that time) I want to requeue the job. class RefundWorker < Sweatshop::Worker def…
Nicholas C
  • 1,103
  • 1
  • 7
  • 14
5
votes
3 answers

Why or when should I use messages queues such as RabbitMQ, ZeroMQ in Erlang?

Hello awesome Erlang community! I'm making a little project that contains a Client and a Backend. (Complicated.. right?) :) I'm making it in erlang. The client and backend will be two separate processes and I'm wondering if I would need to (or…
Robbie
  • 620
  • 1
  • 5
  • 17
5
votes
1 answer

Celery configure separate connection for producer and consumer

We have an application setup on heroku, which uses celery to run background jobs. The celery app uses RabbitMQ as the broker. We used heroku’s RabbitMQ Bigwig add-on as AMQP message broker. This add-on specifies two separate url one optimized for…
Joel James
  • 3,870
  • 9
  • 32
  • 47
5
votes
2 answers

Manage RabbitMQ consumers

I am planning to write a log processing application using RabbitMQ, Symfony2 and the RabbitMqBundle. The tool I am working on has to be highly available and must process millions of entries per day, so it's important that the consumers are always up…
Tibor
  • 651
  • 1
  • 8
  • 18
5
votes
1 answer

RabbitMQ: fanout from queue (not from exchange)

Is there any way in RabbitMQ to have multiple consumers get the same message from the same queue? I need to send the same message to anyone who's listening but also ensure that someone deals with it. Basically, I need the fanout functionality of an…
wolverdude
  • 1,583
  • 1
  • 13
  • 20
5
votes
1 answer

Celery task state depends on CELERY_TASK_RESULT_EXPIRES

From what I have seen, the task state depends entirely on the value set for CELERY_TASK_RESULT_EXPIRES - if I check the task state within this interval after the task has finished executing, the state returned by: AsyncResult(task_id).state is…
Clara
  • 2,935
  • 6
  • 34
  • 49
5
votes
4 answers

docker rabbitmq hostname issue

I am build an image using Dockerfile, and I would like to add users to RabbitMQ right after installation. The problem is that during build hostname of the docker container is different from when I run the resultant image. RabbitMQ loses that user;…
yun_man_ger
  • 243
  • 1
  • 3
  • 10
5
votes
3 answers

Tweaking celery for high performance

I'm trying to send ~400 HTTP GET requests and collect the results. I'm running from django. My solution was to use celery with gevent. To start the celery tasks I call get_reports : def get_reports(self, clients, *args, **kw): sub_tasks = [] …
lev
  • 3,986
  • 4
  • 33
  • 46
5
votes
3 answers

Dead Lettered Message Not Being Consumed in RabbitMQ and Node Using AMQP.Node

I want to receive a message after a certain amount of time in one of my workers. I decided to go with Node and RabbitMQ after discovering so-called dead letter exchanges. The message seems to get send to the queue in DeadExchange, but the consumer…
martijndeh
  • 361
  • 3
  • 11
5
votes
2 answers

Set max number of messages in the queue

I'm wondering is it possible to set the max number of messages in the queue? Let's say I want to have no more than 100 msgs in queue Foo, is it possible to do?
Vor
  • 33,215
  • 43
  • 135
  • 193