[rabbitmq-discuss] rabbitmq webstomp ha-mode

steve.flitcroft at ivendi.com steve.flitcroft at ivendi.com
Wed Mar 19 13:39:59 GMT 2014


Hi Simon,

Non web socket clients (ie9, stock android, old ios/safari etc) always lost connection. As soon as I restrict the clients without a web socket upgrade hdr to goto the same rmq node then they stay connected.  I can prove this very easily in my current setup with clients connecting to the rmq cluster via haproxy.

Cheers



On 19 Mar 2014, at 13:14, Simon MacMullen <simon at rabbitmq.com> wrote:

> On 19/03/14 11:04, Steve Flitcroft wrote:
>> Having trouble getting the queues that are created via sockjs & webstomp
>> being replicated across nodes.
>> 
>> I have a policy set for any queues that start with amq to be replicated.
>> 
>> You can see this here
>> 
>> http://gyazo.com/b0e3fbac0d1a1d0baabc25c5f43499f0
>> 
>> the amq.gen queue created by webstomp does not replicate to the other
>> node, the queue I created called amqsteve does.
> 
> The amq.gen queue is declared as exclusive. From http://www.rabbitmq.com/ha.html:
> 
>  Exclusive queues will be deleted when the connection that declared
>  them is closed. For this reason, it is not useful for an exclusive
>  queue to be mirrored (or durable for that matter) since when the node
>  hosting it goes down, the connection will close and the queue will
>  need to be deleted anyway.
> 
>  For this reason, exclusive queues are never mirrored (even if they
>  match a policy stating that they should be). They are also never
>  durable (even if declared as such).
> 
>> The result of this is that any non websocket browsers have to be routed
>> to exactly the same node otherwise they get a 404 on the xhr_send method
>> and lose connection.
> 
> Uh, that's not the case; you can connect to any node to publish to a non-mirrored queue, it just gets routed inside the cluster.
> 
> Cheers, Simon
> 
> -- 
> Simon MacMullen
> RabbitMQ, Pivotal



More information about the rabbitmq-discuss mailing list