-Re: High availability backend services via zookeeper or TCP load balancer
There is Apache Helix which provides you higher level primitives like node,
partition, replica and allows you to specify a custom state machine.
Discovery comes automatically with it.
It hides ZK completely from you. And you only need to handle the state
transition rest of the requirement is specification to the system. Also it
has the features like health check where each node can periodically report
the error counts(or any other metrics), and helix can either alert you if
it reaches the threshold or even disable that node.
Helix is basically built as a orchestration engine and it uses zookeeper to
store its state and there is no SPOF. It also makes it very easy to
operate your cluster and encourages cleaner design in your system.
Encourage you to take a look at it and see what kind of system you are
building, if it is a simple system where all it needs is service discovery
then helix is probably too heavy. But if you envision your system to become
more than what it is today, Helix might help you get there faster.
On Wed, Feb 27, 2013 at 1:43 AM, howard chen <[EMAIL PROTECTED]> wrote:
> On Wed, Feb 27, 2013 at 2:35 AM, Camille Fournier <[EMAIL PROTECTED]
> > You can definitely use ZK for this, as Jordan said. I would really
> > whether writing client-side code to do this vs using something that is
> > really designed for writing load balancers (like haproxy) wouldn't be a
> > better way to do it however. It doesn't sound like you are creating
> > long-lived connections between these clients and services, and instead
> > want to send a request to an ip address that corresponds to the LB for
> > request. Your client-side code is probably going to be buggier and the
> > setup/maintenance more complex than if you use a simple load balancer. If
> > you're already using ZK for a lot of other things and it is really baked
> > to all your clients, maybe this is the easiest thing to do, but I
> > use ZK just for this purpose.
> Yes, our connection is long lived (similar to web socket).
> We don't have any ZK deployment as of today, but sound like the ZK's core
> feature such as subscribe to notification is really interesting.
> Of course, one of our concern is as ZK is quite low level for this kind of
> usage, i.e. service discovery and fail over, so we would need to modify our
> client to support this workflow (or by integrating framework like Neflix's
> Are there any popular choice besides the Neflix's curator?
> Thanks for all the input