I can't imagine a circumstance where nginx would block before riak.


@siculars on twitter
http://siculars.posterous.com

Sent from my iPhone

On Aug 17, 2010, at 11:55, TJ Ninneman <t...@twopeasinabucket.com> wrote:

Les,

I've just glanced over the riak design overview and I think I am missing something basic in the failover technique. The docs explain that any node can process any query and that adding nodes will re-balance the storage. My question is, how does the client know which server node to contact initially and what happens if that node is the one that has failed - particularly for the rest interface where you don't have a special client? Do you typically put server nodes on the same host as the clients so they can use a localhost connection, use round robin DNS, put them behind a load balancer or is there some unique way of handling this?

This really depends on your architecture.

You could elect to use a reverse proxy such as Nginx to automatically handle request failover and load balancing. Even as fast and reliable as Nginx is, you still need to be careful not to induce a bottle neck or single point of failure.

More simply, you could create some sort of a simple connection object which manages a pool of connections. In this I don't mean a pool of persistent HTTP keep-alive connections but rather just a simple list of possible servers which can be used one after another. Depending on your app you could simply randomize list on each request or keep the object around globally to round-robin the requests.

TJ
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to