[rabbitmq-discuss] Beginner Question.

Michael Klishin mklishin at gopivotal.com
Wed Mar 12 08:44:56 GMT 2014

On 12 March 2014 at 12:39:35, ratheesh kannoth (ratheesh.ksz at gmail.com) wrote:
> > I understand that RabbitMq-C client should be compiled to create  
> a
> dynamic library and can call library api
> from my application. Is this same with MQTT and STOMP ?. They are  
> also dynamic libraries ? and work same as rabbitMq-C client ?

I’m not a C expert but I believe you can compile a static binary
that includes librabbitmq-c or, say, MQTT C client.
> I could see below snippet at https://github.com/alanxz/rabbitmq-c.  
> "You cannot share a socket, an amqp_connection_state_t, or  
> a channel
> between threads using librabbitmq. The librabbitmq library  
> is built
> with event-driven, single-threaded applications in mind,  
> and does not
> yet cater to any of the requirements of pthreaded applications."  
> This is case with any other client ...right ?

Not necessarily: it’s a library design choice.

> http://www.rabbitmq.com/tutorials/amqp-concepts.html  
> discuss about
> clustering , and load balancing using scheduler running on different  
> CPU. These are already implemented in Rabbimq. right ?

I don’t see any mentions of schedulers or multiple CPUs in the article. Load balancing
there means "between consumers on a shared queue”.

Obviously all the features listed in the docs are implemented in RabbitMQ.
While not mentioned in the protocol overview, RabbitMQ happens to run on a runtime
that offers very good multicore scalability as long as you use multiple (say, a few
times more than the # of cores available) queues and not a single giant queue.


Software Engineer, Pivotal/RabbitMQ

More information about the rabbitmq-discuss mailing list