Re: [abacus] Eureka vs gorouter

Jean-Sebastien Delfino

Hey Hristo,

Eureka helps us as an optional registry for monitoring the performance of
each of our apps with a Hystrix [1] dashboard. We're not using it for
routing the flow of usage events across our apps or load balancing or
anything like the CF Go router does.

We found Hystrix pretty useful to better understand the performance
characteristics of the Abacus apps under load (latency, timeouts, error
rates etc). There are several ways to set up Hystrix to monitor Cloud apps,
but Eureka comes handy when you don't know their IP addresses ahead of
time. The usual setup is then to use Eureka + Turbine + Hystrix (as
described in [2]). You get your apps to register with Eureka, set up
Turbine to get their IPs from Eureka, and serve an aggregated performance
data stream to your Hystrix dashboard for all your apps.

That's what we've been experimenting with, and I believe that Assk
(@sasrin) has started to document the beginning of that monitoring setup as
well in doc/ [3]. BTW this is all optional, as we only register
the apps if you've set up a Eureka env variable.


P.S. On a different topic, speaking of the Go router... it actually gets in
the way sometimes. For example, say I want to monitor, poke at, or test a
specific instance of app X running on CF, or each individual instance of
app X... AFAIK I can't do that in front of the Go router as it's not
letting me open HTTP connections to a specific instance of my app (unless I
play around with sticky sessions but that's really just a hack). So to get
around that I often need to struggle to deploy our monitors, debuggers,
HTTP perf tools etc inside CF, behind that Go router... I will probably
raise that issue to the CF community in a different non-Abacus thread... as
I've been finding that pretty inconvenient.


- Jean-Sebastien

On Tue, Nov 10, 2015 at 7:54 AM, Hristo Iliev <hsiliev(a)> wrote:


Recently abacus introduced Eureka client and stub. Looking at the high
level description of what Eureka does it seems it has almost the same
responsibilities as gorouter.

What is the reason to have another loadbalancing layer? Can you elaborate
on why it was introduced, what problems it solves and why can't gorouter be
used for the same?

Hristo Iliev

Join to automatically receive all group messages.