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(a)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(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hawkular-dev
>