[rabbitmq-discuss] Disk node vs ram node

Alexandru Scvortov alexandru at rabbitmq.com
Fri Aug 6 00:07:03 BST 2010


> #2. I mean that if I send a message that is meant for Q1, where Q1 was originally on node A but now is down because node A is down, will the queue be created on the other nodes B,C? It looks like your answer is no, just to confirm? I am using the 1.7.2 Java client. Is there a way to set up the cluster such that a queue (like Q1 in our case) will be created(automatically) on other nodes (such as node B and node C) if node A goes down? What happens when I make either (node B or node C) or both (node B and node C) disk nodes? 

There's no automatic way to create missing queues inside a cluster in
RabbitMQ, as far as I know.

Whether a node is disc or ram refers to where the broker metadata
(queues, exchanges, bindings) is kept.  Persistent messages are always
stored on disk.  When a ram node goes down, it looses all its metadata.
If it's in a cluster, it will just connect to some other node and
recover the information.  If the entire cluster goes down (say, power
outage), the metadata can only be recovered if at least one node was
disc.  In general, there's not much sense in having a lot of disc nodes.
One or two should be enough.  Ram nodes are faster.

> #3. Not sure if I should do anything before hand, but I ran the command you provided and got this output:
> $ erl -sname mgmtsh -remsh rabbit at localhost
> Erlang R13B03 (erts-5.7.4) [source] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]
> 
> *** ERROR: Shell process terminated! (^G to start new job) ***
> {error_logger,{{2010,8,5},{14,52,59}},"~s~n",["Error in process <0.33.0> on node 'mgmtsh at ebony' with exit value: {badarg,[{erlang,list_to_existing_atom,[\"rabbit at ubuntu\"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}\n"]}
> 
> =ERROR REPORT==== 5-Aug-2010::14:52:59 ===
> Error in process <0.33.0> on node 'mgmtsh at ebony' with exit value: {badarg,[{erlang,list_to_existing_atom,["rabbit at ubuntu"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}
> 
> FYI: I'm running Ubuntu and installed rabbitMQ 1.7.2 with sudo apt-get install rabbitmq-server. 

I assumed the rabbit at localhost was your node.  Try rabbit at ebony. 
 


More information about the rabbitmq-discuss mailing list