stompgem / stomp

A ruby gem for sending and receiving messages from a Stomp protocol compliant message queue. Includes: failover logic, ssl support.
http://stomp.github.com
Apache License 2.0
152 stars 80 forks source link

Support for rebalancing? #112

Closed hanej closed 8 years ago

hanej commented 9 years ago

Does this gem support the failover options from the broker like updateClusterClients, updateClusterClients, and updateClusterClients? We're using version 1.3.2 with mCollective and are noticing that the clients never rebalance.

gmallard commented 9 years ago

Short answer: no.

Those look like broker specific options. The gem attempts in all most all cases to be broker agnostic.

What broker are you using?

Please define "rebalance".

On 07/24/2015 12:19 PM, Jason Hane wrote:

Does this gem support the failover options from the broker like updateClusterClients, updateClusterClients, and updateClusterClients? We're using version 1.3.2 with mCollective and are noticing that the clients never rebalance.

— Reply to this email directly or view it on GitHub https://github.com/stompgem/stomp/issues/112.

hanej commented 9 years ago

I was looking to be able to use the "broker side options for failover" in ActiveMQ as seen on http://activemq.apache.org/failover-transport-reference.html. This gem is used in mCollective and as far as I can tell is the only thing responsible the connections to ActiveMQ. We have a few thousand nodes and was looking to better balance them out across the brokers.

gmallard commented 9 years ago

When a hashed login us used, with reliable => true, the gem provides a failover logic and semantics.

Ar you aware of that ? That functionality is not broker specific, but is very close to what AMQ provides.

See the README.

hanej commented 8 years ago

It looks like the mCollective activemq.rb uses a reliable connection. I was more looking to ensure that 90% of clients don't get loaded onto the same broker and instead get fanned out somewhat evenly across the pool. I understand you can't put broker specific features into this package. This belongs on the mCollective side. Thanks!

gmallard commented 8 years ago

Apologies for the late questions, but I got curious.

Are you using the mcollective-client gem ?

If so, is that what triggered posting of this issue?

Regards, Guy

On 04/20/2016 05:00 PM, Jason Hane wrote:

It looks like the mCollective activemq.rb uses a reliable connection. I was more looking to ensure that 90% of clients don't get loaded onto the same broker and instead get fanned out somewhat evenly across the pool. I understand you can't put broker specific features into this package. This belongs on the mCollective side. Thanks!

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/stompgem/stomp/issues/112#issuecomment-212604378

hanej commented 8 years ago

Yes we are. It doesn't have support for rebalancing but it wouldn't be hard to add it in.

gmallard commented 8 years ago

I guessed that you were.

I installed version 2.8.4 of that gem so I could look at the source code a bit.

It seems to that the MCollective::Connector::Rabbitmq#connect method attempts to provide/wrap all of the fail-over options that the stomp gem provides.

It is not clear to me that the mentioned method actually does provide all that is currently supported by the stomp gem.

I would think that the maintainers of the mcollective-client gem need to take a look at that.

I'll also take this opportunity to say the maintainers need to think about support of all STOMP Protocol levels. It appears to me that the mcollective client gem supports only protocol levels 1.0 and 1.1. The 1.2 protocol was published a few years back, and the stomp gem fully supports it.

Best of luck in your efforts.

Regards, Guy

hanej commented 8 years ago

The mcollective-client gem is pretty lacking. I'm going to see if I can enhance the ActiveMQ portion a bit and get it merged back in. It should also be more customizable than what it is.

On Apr 20, 2016, at 10:19 PM, Guy M. Allard notifications@github.com wrote:

I guessed that you were.

I installed version 2.8.4 of that gem so I could look at the source code a bit.

It seems to that the MCollective::Connector::Rabbitmq#connect method attempts to provide/wrap all of the fail-over options that the stomp gem provides.

It is not clear to me that the mentioned method actually does provide all that is currently supported by the stomp gem.

I would think that the maintainers of the mcollective-client gem need to take a look at that.

I'll also take this opportunity to say the maintainers need to think about support of all STOMP Protocol levels. It appears to me that the mcollective client gem supports only protocol levels 1.0 and 1.1. The 1.2 protocol was published a few years back, and the stomp gem fully supports it.

Best of luck in your efforts.

Regards, Guy

― You are receiving this because you modified the open/close state. Reply to this email directly or view it on GitHub