Hi all,
we are studing/testing RabbitMQ in order to use it on a big project.

I'd like to know if it is correct:


1. If I have a mirrored queue, all consumers of this queue are all
connected to the master queue and not to the slaves (slaves are used for
backup if master node fails).
2. When a queue (mirrored or not) is dinamically created by a client
in a cluster enviroment , it is created on the client's node and not in any
node of the cluster (so there is an automatic load balancing of queues in a
cluster)
3. If a client is connected to a mirrored queue and the master of the
queue fails/goes down, a slave is defined as a new master and new
connections go through the new node; but all old clients, that were using
connections to the old master node, have dead channel and RabbitMQ don't
create automatically connection to the new node.

Are these sentences right?

Thanks in advance!
Luke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120112/bc11908e/attachment.htm>

Search Discussions

  • Dave Stevens at Jan 12, 2012 at 4:00 pm
    I believe all of these are at least partially incorrect and/or
    implementation dependent.
    On Jan 12, 4:04?am, luke manner wrote:
    Hi all,
    we are studing/testing RabbitMQ in order to use it on a big project.

    I'd like to know if it is correct:

    ? ?1. If I have a mirrored queue, all consumers of this queue are all
    ? ?connected to the master queue and not to the slaves (slaves are used for
    ? ?backup if master node fails).
    Consumers may be connected to slave nodes as well.
    ? ?2. When a queue (mirrored or not) is ?dinamically ?created ?by a client
    ? ?in a cluster enviroment , it is created on the client's node and not in any
    ? ?node of the cluster (so there is an automatic load balancing of queues in a
    ? ?cluster)
    When declaring an HA (mirrored) queue, it may be mirrored across all
    nodes specified in the queue parameter. In regards to "automatic load
    balancing", if consumers are all connected to 1 out of N nodes in a
    cluster, it is obviously not load balanced.
    ? ?3. If a client is connected to a mirrored queue and the master of the
    ? ?queue fails/goes down, a slave is defined as a new master and new
    ? ?connections go through the new node; but all old clients, that were using
    ? ?connections to the old master node, have dead channel and RabbitMQ don't
    ? ?create automatically connection to the new node.
    In the process of being promoted to master, a slave queue will kick
    off all of it's consumers (but not kill the connection obviously). The
    recreation of these consumers must also be handled. Some higher level
    client libraries support this. Spring Amqp (java/.NET) is one which
    does to a certain degree at least. I believe Akka (java/scala) is also
    able to take a collection of hosts and will attempt to reconnect to a
    node on a different host if connection is lost.
    Are these sentences right?

    Thanks in advance!
    Luke

    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-disc... at lists.rabbitmq.comhttps://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
  • Luke manner at Jan 12, 2012 at 4:26 pm
    Thanks Dave for your reply.

    1. If I have a mirrored queue, all consumers of this queue are all
    connected to the master queue and not to the slaves (slaves are used
    for
    backup if master node fails).
    Consumers may be connected to slave nodes as well.

    You're right, I didn't express myself in the correct way.
    I wanted to say that if I have a mirrored queue and I have a consumer that
    is connected to a slave node, a message is consumed from master queue and
    not from slave queue; is this right?


    2012/1/12 Dave Stevens <daverstevens at gmail.com>
    I believe all of these are at least partially incorrect and/or
    implementation dependent.
    On Jan 12, 4:04 am, luke manner wrote:
    Hi all,
    we are studing/testing RabbitMQ in order to use it on a big project.

    I'd like to know if it is correct:

    1. If I have a mirrored queue, all consumers of this queue are all
    connected to the master queue and not to the slaves (slaves are used for
    backup if master node fails).
    Consumers may be connected to slave nodes as well.
    2. When a queue (mirrored or not) is dinamically created by a client
    in a cluster enviroment , it is created on the client's node and not in any
    node of the cluster (so there is an automatic load balancing of
    queues in a
    cluster)
    When declaring an HA (mirrored) queue, it may be mirrored across all
    nodes specified in the queue parameter. In regards to "automatic load
    balancing", if consumers are all connected to 1 out of N nodes in a
    cluster, it is obviously not load balanced.
    3. If a client is connected to a mirrored queue and the master of the
    queue fails/goes down, a slave is defined as a new master and new
    connections go through the new node; but all old clients, that were using
    connections to the old master node, have dead channel and RabbitMQ don't
    create automatically connection to the new node.
    In the process of being promoted to master, a slave queue will kick
    off all of it's consumers (but not kill the connection obviously). The
    recreation of these consumers must also be handled. Some higher level
    client libraries support this. Spring Amqp (java/.NET) is one which
    does to a certain degree at least. I believe Akka (java/scala) is also
    able to take a collection of hosts and will attempt to reconnect to a
    node on a different host if connection is lost.
    Are these sentences right?

    Thanks in advance!
    Luke

    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-disc... at lists.rabbitmq.comhttps://
    lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
    -------------- next part --------------
    An HTML attachment was scrubbed...
    URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120112/d528be63/attachment.htm>
  • Simon MacMullen at Jan 12, 2012 at 4:28 pm

    On 12/01/12 16:26, luke manner wrote:
    You're right, I didn't express myself in the correct way.
    I wanted to say that if I have a mirrored queue and I have a consumer
    that is connected to a slave node, a message is consumed from master
    queue and not from slave queue; is this right?
    Yes.

    Cheers, Simon

    --
    Simon MacMullen
    RabbitMQ, VMware
  • Dave Stevens at Jan 12, 2012 at 11:18 pm
    Just to clarify, it unfortunately appears that the java Spring AMQP
    1.0.0.Release client does not restart the consumer on slave promotion
    to master as I expected. It does automatically reconnect on
    disconnect, but in the case of slave promotion to master, there is no
    disconnect.
    On Jan 12, 11:00?am, Dave Stevens wrote:
    I believe all of these are at least partially incorrect and/or
    implementation dependent.
    On Jan 12, 4:04?am, luke manner wrote:

    Hi all,
    we are studing/testing RabbitMQ in order to use it on a big project.
    I'd like to know if it is correct:
    ? ?1. If I have a mirrored queue, all consumers of this queue are all
    ? ?connected to the master queue and not to the slaves (slaves are used for
    ? ?backup if master node fails).
    Consumers may be connected to slave nodes as well.
    ? ?2. When a queue (mirrored or not) is ?dinamically ?created ?by a client
    ? ?in a cluster enviroment , it is created on the client's node and not in any
    ? ?node of the cluster (so there is an automatic load balancing of queues in a
    ? ?cluster)
    When declaring an HA (mirrored) queue, it may be mirrored across all
    nodes specified in the queue parameter. In regards to "automatic load
    balancing", if consumers are all connected to 1 out of N nodes in a
    cluster, it is obviously not load balanced.
    ? ?3. If a client is connected to a mirrored queue and the master of the
    ? ?queue fails/goes down, a slave is defined as a new master and new
    ? ?connections go through the new node; but all old clients, that were using
    ? ?connections to the old master node, have dead channel and RabbitMQ don't
    ? ?create automatically connection to the new node.
    In the process of being promoted to master, a slave queue will kick
    off all of it's consumers (but not kill the connection obviously). The
    recreation of these consumers must also be handled. Some higher level
    client libraries support this. Spring Amqp (java/.NET) is one which
    does to a certain degree at least. I believe Akka (java/scala) is also
    able to take a collection of hosts and will attempt to reconnect to a
    node on a different host if connection is lost.


    Are these sentences right?
    Thanks in advance!
    Luke
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-disc... at lists.rabbitmq.comhttps://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-disc... at lists.rabbitmq.comhttps://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprabbitmq-discuss @
categoriesrabbitmq
postedJan 12, '12 at 9:04a
activeJan 12, '12 at 11:18p
posts5
users3
websiterabbitmq.com
irc#rabbitmq

People

Translate

site design / logo © 2021 Grokbase