← Back to team overview

openstack team mailing list archive

Re: High Available queues in rabbitmq

 

Oh, so without the need to put an IP floating between hosts.
Good job, thanks for helping

Best

Alessandro

Il giorno 24/lug/2012, alle ore 17:49, Eugene Kirpichov ha scritto:

> Hi Alessandro,
> 
> My patch is about removing the need for pacemaker (and it's pacemaker
> that I denoted with the term "TCP load balancer").
> 
> I didn't submit the patch yesterday because I underestimated the
> effort to write unit tests for it and found a few issues on the way. I
> hope I'll finish today.
> 
> On Tue, Jul 24, 2012 at 12:00 AM, Alessandro Tagliapietra
> <tagliapietra.alessandro@xxxxxxxxx> wrote:
>> Sorry for the delay, i was out from work.
>> Awesome work Eugene, I don't need the patch instantly as i'm still building the infrastructure.
>> Will it will take alot of time to go in Ubuntu repositories?
>> 
>> Why you said you need load balancing? You can use only the master node and in case the rabbitmq-server dies, switch the ip to the new master with pacemaker, that's how I would do.
>> 
>> Best Regards
>> 
>> Alessadro
>> 
>> 
>> Il giorno 23/lug/2012, alle ore 21:49, Eugene Kirpichov ha scritto:
>> 
>>> +openstack-dev@
>>> 
>>> To openstack-dev: this is a discussion of an upcoming patch about
>>> native RabbitMQ H/A support in nova. I'll post the patch for
>>> codereview today.
>>> 
>>> On Mon, Jul 23, 2012 at 12:46 PM, Eugene Kirpichov <ekirpichov@xxxxxxxxx> wrote:
>>>> Yup, that's basically the same thing that Jay suggested :) Obvious in
>>>> retrospect...
>>>> 
>>>> On Mon, Jul 23, 2012 at 12:42 PM, Oleg Gelbukh <ogelbukh@xxxxxxxxxxxx> wrote:
>>>>> Eugene,
>>>>> 
>>>>> I suggest just add option 'rabbit_servers' that will override
>>>>> 'rabbit_host'/'rabbit_port' pair, if present. This won't break anything, in
>>>>> my understanding.
>>>>> 
>>>>> --
>>>>> Best regards,
>>>>> Oleg Gelbukh
>>>>> Mirantis, Inc.
>>>>> 
>>>>> 
>>>>> On Mon, Jul 23, 2012 at 10:58 PM, Eugene Kirpichov <ekirpichov@xxxxxxxxx>
>>>>> wrote:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I'm working on a RabbitMQ H/A patch right now.
>>>>>> 
>>>>>> It actually involves more than just using H/A queues (unless you're
>>>>>> willing to add a TCP load balancer on top of your RMQ cluster).
>>>>>> You also need to add support for multiple RabbitMQ's directly to nova.
>>>>>> This is not hard at all, and I have the patch ready and tested in
>>>>>> production.
>>>>>> 
>>>>>> Alessandro, if you need this urgently, I can send you the patch right
>>>>>> now before the discussion codereview for inclusion in core nova.
>>>>>> 
>>>>>> The only problem is, it breaks backward compatibility a bit: my patch
>>>>>> assumes you have a flag "rabbit_addresses" which should look like
>>>>>> "rmq-host1:5672,rmq-host2:5672" instead of the prior rabbit_host and
>>>>>> rabbit_port flags.
>>>>>> 
>>>>>> Guys, can you advise on a way to do this without being ugly and
>>>>>> without breaking compatibility?
>>>>>> Maybe have "rabbit_host", "rabbit_port" be ListOpt's? But that sounds
>>>>>> weird, as their names are in singular.
>>>>>> Maybe have "rabbit_host", "rabbit_port" and also "rabbit_host2",
>>>>>> "rabbit_port2" (assuming we only have clusters of 2 nodes)?
>>>>>> Something else?
>>>>>> 
>>>>>> On Mon, Jul 23, 2012 at 11:27 AM, Jay Pipes <jaypipes@xxxxxxxxx> wrote:
>>>>>>> On 07/23/2012 09:02 AM, Alessandro Tagliapietra wrote:
>>>>>>>> Hi guys,
>>>>>>>> 
>>>>>>>> just an idea, i'm deploying Openstack trying to make it HA.
>>>>>>>> The missing thing is rabbitmq, which can be easily started in
>>>>>>>> active/active mode, but it needs to declare the queues adding an
>>>>>>>> x-ha-policy entry.
>>>>>>>> http://www.rabbitmq.com/ha.html
>>>>>>>> It would be nice to add a config entry to be able to declare the queues
>>>>>>>> in that way.
>>>>>>>> If someone know where to edit the openstack code, else i'll try to do
>>>>>>>> that in the next weeks maybe.
>>>>>>> 
>>>>>>> 
>>>>>>> https://github.com/openstack/openstack-common/blob/master/openstack/common/rpc/impl_kombu.py
>>>>>>> 
>>>>>>> You'll need to add the config options there and the queue is declared
>>>>>>> here with the options supplied to the ConsumerBase constructor:
>>>>>>> 
>>>>>>> 
>>>>>>> https://github.com/openstack/openstack-common/blob/master/openstack/common/rpc/impl_kombu.py#L114
>>>>>>> 
>>>>>>> Best,
>>>>>>> -jay
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Mailing list: https://launchpad.net/~openstack
>>>>>>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>>>>>>> Unsubscribe : https://launchpad.net/~openstack
>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Eugene Kirpichov
>>>>>> http://www.linkedin.com/in/eugenekirpichov
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Mailing list: https://launchpad.net/~openstack
>>>>>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>>>>>> Unsubscribe : https://launchpad.net/~openstack
>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Eugene Kirpichov
>>>> http://www.linkedin.com/in/eugenekirpichov
>>> 
>>> 
>>> 
>>> --
>>> Eugene Kirpichov
>>> http://www.linkedin.com/in/eugenekirpichov
>>> 
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help   : https://help.launchpad.net/ListHelp
>> 
> 
> 
> 
> -- 
> Eugene Kirpichov
> http://www.linkedin.com/in/eugenekirpichov



Follow ups

References