Hi Justin,

We do something similar with Synapse, here:
https://github.com/airbnb/synapse

Two caveats:
* there is no way to dynamically *add* backends to haproxy without a
restart. Synapse uses the stats socket to put down backends in maintenance
mode and bring them back up when the backend becomes available again, but
every time a backend is added Synapse restarts haproxy
* there's no connector yet for plugging Synapse into consul; this would
need to be written.

--igor


On Thu, Jun 19, 2014 at 6:02 PM, Justin Franks <justin.fra...@lithium.com>
wrote:

>   Hello,
>
> We are using Consul, written by the same guys who wrote Vagrant. Really
> great tool. http://www.consul.io/
>
> Consul is a service registry and discovery and DNS solution among other
> things.
>
> I can create an internal name like 'some.thing.internal' which will
> resolve to a pool of nodes. So when I do a 'dig + short
> some.thing.internal' it will return
>
> IPaddressA
>
> IPaddressB
>
> IPaddressC
>
> etc...
>
> Consul keeps the list of nodes related to a particular URI up to date in
> real-time. It uses health checks and so on and will round robin the traffic
> to all the nodes evenly. But I want HAProxy too.
>
> So I want HAProxy to say, "I see a URI that resolves to N number of IP
> addresses. I will add the addresses to the backend. I will keep polling the
> URI. If the address change I will update the backend."
>
> How can I accomplish this?
>
> What are my options?
>
> A cron job to run 'dig + short some.thing.internal' every minute and send
> that info to HAProxy for backend members?
>
> Unix sockets, ALCs and stick-tables?
>
> I just want the result that I described above done in real-time so HAProxy
> restart not required. I don't care how it is accomplished.
>
> Thanks in advance for any ideas.
>
>
>
>
>
>
>
>
>
> *************************
> Justin Franks
> Lead Operations Engineer
> SaaS, Cloud, Data Centers & Infrastructure
> Lithium Technologies, Inc
> 225 Bush St., 15th Floor
> San Francisco, CA 94104
> tel: +1 415 757 3100 x3219
>

Reply via email to