Eureka and rabbitmq

1,334 views
Skip to first unread message

michas

unread,
May 26, 2015, 2:01:41 PM5/26/15
to eureka_...@googlegroups.com
Hi,

I'm new to Eureka and after setting up some examples
with (Java-based) clients + services I'd like to know
how Eureka fits for more complex setups.

I have a couple of (Java-) services which are connected
via a clustered Rabbit-Queue. So each producer/consumer
has to deal with several rabbit-instances.

My first approach would be setting up an Eureka-client as a separate
service on each rabbit-machine so that I could do client-side-
loadbalancing by wrapping rabbit-client with Eureka/Ribbon.

Is this a good approach? If so, how do I handle a crashed
Rabbit-Service while Eureka still sends positive hearbeats?
And if not: What would be a better solution?

Thanks in advance,

michas


Tomasz Bak

unread,
May 27, 2015, 12:08:11 PM5/27/15
to eureka_...@googlegroups.com
I think you want a kind of a service we run for zookeeper cluster. Exhibitor (https://github.com/Netflix/exhibitor) registers with
Eureka server, and monitors its co-located zookeeper node.

--
You received this message because you are subscribed to the Google Groups "eureka_netflix" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eureka_netfli...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

michas

unread,
May 27, 2015, 1:36:13 PM5/27/15
to eureka_...@googlegroups.com
Thanks for your reply!
Although your suggestion may solve my issue I still have doubts
if Eureka in general is a good solution for this kind of use-case (Java + non-Java Services).
Your suggestion implies 2 technologies (Eureka, Zookeeper) doing the same thing.
Is it best (or even good) practice to do it this way or is Eureka maybe not
the best choice for these (heterogenous) scenarios?

Do you have experience (in production) with such setups?

dl...@netflix.com

unread,
May 28, 2015, 3:31:19 AM5/28/15
to eureka_...@googlegroups.com
Hi Michas,

From what you describe, it looks like what you are looking for are solutions to two different problems. In one case, you are looking for a solution to manage rabbit service health states, and possibly tie this in with eureka statuses, and in a second case, you are looking for a solution for service discovery and client-side load balancing. We don't really run rabbitmq, but an analogous system is how we run zookeeper internally (where zookeeper servers == rabbitmq servers in the sense that it's something we need to manage server health states).

For server health, we use Netflix/exhibitor which is essentially a sidecar process that monitors the zk process's health. Our exhibitor service is also integrated with eureka client (see example discussions here https://github.com/Netflix/exhibitor/issues/193) where when the exhibitor detects server healthy/unhealthy for the zookeeper process, it will update the eureka status correspondingly.

For service discovery and client side loadbalancing, we use standard eureka/ribbon.
Reply all
Reply to author
Forward
0 new messages