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
1 answer

Asynchronous message queues and processing like Amazon Simple Queue service in django

There are many activities on an application that need things like: Send email, Post to twitter thumbnail an image, into several sizes call a cron to find connected relationships A good way to do these tasks is to write into an asynchronous queue…
lprsd
  • 84,407
  • 47
  • 135
  • 168
5
votes
1 answer

RabbitMQ and DB transactions

Does RabbitMQ support a scenario where a received message acknowledgement is sent on the DB transaction commit? Currently we send ack after DB transaction commit. If service fails inbetween, we'll get data duplication - service will get the same…
Kimi
  • 13,621
  • 9
  • 55
  • 84
5
votes
1 answer

Waiting for all rabbitmq responses on a fanout exchange?

I've configured a rabbitmq fanout exchange called "ex_foo" for a RPC workload. When clients connect to the server, they create their own non-durable RPC receive queue and connect to it with a BasicConsumer. The apps listen for messages/commands and…
xconspirisist
  • 1,451
  • 2
  • 13
  • 26
5
votes
1 answer

How to tolerate RabbitMQ restarts in Langohr?

We have Clojure code which reads from a Rabbit queue. We would like to tolerate the case where the RabbitMQ server is down briefly, e.g. in the case of a restart (sudo service rabbitmq-server restart). There appears to be some provision for…
JohnJ
  • 4,753
  • 2
  • 28
  • 40
5
votes
2 answers

Execution of Rabbit message listener failed, and no ErrorHandler has been set. Failed to invoke target method with argument type = [class [B],

I am using spring amqp rabbitmq, and sending messages using Message message = MessageBuilder .withBody(item.toString().getBytes()) .setReplyTo("importReply") .setCorrelationId(item.toString().getBytes()).build(); My message handler is public class…
vishal
  • 3,993
  • 14
  • 59
  • 102
5
votes
0 answers

Listen RabbitMQ queue in Flask view

I have a view in which i send one message (request id) to workers. Then i need to listen result queue and return response only when i received a response msg (The response must contain this msg). How do i do it correctly? This is my code: def…
user2293072
  • 766
  • 6
  • 9
5
votes
3 answers

How to use celery to get messages from a rabbit-mq server?

The celery docs suggest that Rabbit-MQ must act like a middleman, where it is used as a messaging platform. In my infrastructure, Rabbit-MQ is the primary server that serves me with some data every second. Now, whenever the data is served, I want…
Hick
  • 35,524
  • 46
  • 151
  • 243
5
votes
1 answer

Getting "pika.exceptions.ConnectionClosed" error while using rabbitmq in python

I am using "hello world" tutorial in :http://www.rabbitmq.com/tutorials/tutorial-two-python.html . worker.py looks like this import pika import time connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost')) channel…
sau
  • 1,316
  • 4
  • 16
  • 37
5
votes
2 answers

PHP Client can't connect to RabbitMQ server on localhost

OS: CentOS 6.4 I am trying to connect to the RabitMQ server using the php client as follows, $connection = new AMQPConnection('10.1.150.109', 5672, 'guest', 'guest'); $channel = $connection->channel(); But when I ran the script from the browser, it…
Tharanga
  • 115
  • 2
  • 2
  • 7
5
votes
2 answers

Limiting a queue over time

I'm using an API that is limited for usage, let's say: no more than 10 calls per second, and no more than 5000 calls per day. I am handling this calls in a beanstalkd queue process job. How can I limit the processing of this jobs, having in mind the…
catalinux
  • 1,462
  • 14
  • 26
5
votes
2 answers

Multiple consumers & producers connected to a message queue, Is that possible in AMQP?

I'd like to create a farm of processes that are able to OCR text. I've thought about using a single queue of messages which is read by multiple OCR processes. I would like to ensure that: each message in queue is eventually processed the work is…
Piotr Czapla
  • 25,734
  • 24
  • 99
  • 122
5
votes
1 answer

Celery: selectively clearing queue from Python tasks

Sometimes I have a situation where Celery queue builds up on accidental unnecessary tasks, clogging down the server. E.g. the code shoots up 20 000 tasks instead of 1. How one can inspect what Python tasks Celery queue contains and then get…
Mikko Ohtamaa
  • 82,057
  • 50
  • 264
  • 435
5
votes
2 answers

AMQP V1.0 Client for .NET

I am looking into using a product such as RabbitMQ or ActiveMQ. I see that there is, to a certain extent, a level of support in these products for AMQP v1.0. However, I am struggling to find a client for using AMQP 1.0 with .NET. So far the only…
user3219261
  • 51
  • 1
  • 2
5
votes
1 answer

How to fix python invalid syntax on triple quotation """

I encountered an error on codegen.py when trying to build rabbitmq server using make. I'm using 64 bit Windows 7, Python33, erl5.10.3, cygwin and GNU Make 4.0 for i686-pc-cygwin. I read that triple quotes are accepted in python. How do I fix…
Joshua
  • 1,709
  • 2
  • 24
  • 38
5
votes
1 answer

How to enable server side heartbeat for RabbitMQ?

I'm using web-stomp plugin + SockJS/Stomp.js on PhoneGap and observed that under circumstances (probably related to network), traffic can stop without triggering a connection error. To solve this problem, I thought that I may use heart beat so I…
Joshua
  • 1,709
  • 2
  • 24
  • 38