[Hawkular-dev] REST endpoints are multiplying

John Mazzitelli mazz at redhat.com
Fri Feb 6 10:49:24 EST 2015


> Not sure I understood you correctly, as I have some issues concentrating
> right now.

The thing I'm wondering about is - how do the clients of our components know what the REST URLs are for the different components?

For example, suppose we have a cluster of two h-inventory servers - one is running on host1 and another on host2. They both have a REST endpoint (http://host1/hawkular-inventory and http://host2/hawkular-inventory).

Where do we tell clients to talk to? host1? What if host1 goes down? How do they know about host2. How do we effectively spread the load so all clients don't hit host1's REST endpoint leaving host2's REST server under-utilized?

Now add in the other components - what if we have multiple machines running alerts? Multiple running metrics?

In the case of the bus, it doesn't matter if we run multiple ones of those because there is a failover protocol and a networking of auto-discovered brokers that allow a client to point to a single server and have the brokers and the failover protocol deal with clusters and failover scenarios. The h-bus also has a REST endpoint, too, but then again, any client can point to any bus REST endpoint, send a message to the bus, and that message will get to where it needs to go whether the message listener is living on that same machine as the REST endpoint or another machine.

Aside from the bus then, are we going to ask people to install and configure load balancers in front of these other components? Or do we ask them to somehow configure the clients with all the different REST URLs and somehow balance the load?

Hopefully, that made sense. I'm just wondering how everyone will know where all the REST URLs are going to be and how we support clusters and failover scenarios (other than the bus component).

----- Original Message -----
> Not sure I understood you correctly, as I have some issues concentrating
> right now.
> 
> Usually rest-apis are build around the concept of
> 
> * one well known entry point
> * linking of resources.
> 
> So basically there is e.g.
> 
> GET /hawkular
> 
> which returns
> 
> {
>   {"rel":"metrics", "url":"/metrics",
>    "rel":"alerts","url":/alerts",
>   ...
> }
> and then on e.g. a single resource there is
> 
> {
>   "rel":"alerts", "url":/alerts/1234/"
> }
> 
> and so on.
> 
> Like on a web page, but with links for machines.
> 
> The urls returned can be relative or also absolute. There may be some details
> to solve,but the general
> concept is built into the REST-way already.
> 
> 
> > Am 06.02.2015 um 16:08 schrieb John Mazzitelli <mazz at redhat.com>:
> > 
> > I see all the components implementing REST APIs.
> > 
> > How will that scale if we cluster multiple components? Are we going to ask
> > people to install and configure a load balancer? Is there another way to
> > make client configuration easier? Because as I see it, unless clients are
> > told of all the different endpoints of all the different REST servers, how
> > will they know where to go to talk REST to these components? Even if we
> > have load balancers, they will still need to know "here's the REST URL for
> > alerts, here's the REST URL for metrics, here's the REST URL for
> > inventory."
> > 
> > _______________________________________________
> > hawkular-dev mailing list
> > hawkular-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hawkular-dev
> 
> --
> Reg. Adresse: Red Hat GmbH, Technopark II, Haus C,
> Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
> Handelsregister: Amtsgericht München HRB 153243
> Geschäftsführer: Charles Cachera, Michael Cunningham, Paul Hickey, Charlie
> Peters
> 
> 
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev
>



More information about the hawkular-dev mailing list