I wrote a blog post related to this a few weeks ago exploring what can be done from a deployment & uptime POV regarding node [[ http://blog.evantahler.com/production-deployment-with-node-js-clusters ]]
In a nutshell, you can use the native cluster module to manage a number of workers which handle the processing of requests, can be started/stopped as needed, and can be re-spawned when they die. You can also do 0 down-time deployments by rolling over your workers as there is new code to load in. Cluster workers can share ports and open sockets, and requests will be shared between them. The problem of storing state between failures/deployments is not really a node issue, but if you write to a persistant store (DB, disk, ect), you should be able to recover in the normal way. Another fun addition node adds is that there is a message passing interface within the cluster module between master and slaves, so you might also investigate keeping a replica of any important data in the master's memory space to seed new children with. You might want to look more into this if the "state" data moves too fast for redis or a database. On Thursday, September 20, 2012 7:59:31 AM UTC-7, theCole wrote: > > I have not seen anything like this currently. Would you also want all of > the information from the failed server to fail over as well? > > On Thu, Sep 20, 2012 at 9:15 AM, Dave Horton <da...@dchorton.com<javascript:> > > wrote: > >> Are there any features in node relating to high availability or failover >> of a server? I would like to be able to run a cluster of node servers >> (either physical or virtual) such that if any one dies the others will take >> over processing, including maintaining the state of running applications on >> the downed server. In the simplest case, two servers share a virtual IP >> and if one fails the other takes over the IP and my node applications keep >> running on the other server. Anything like this exist, or in the works? >> Or is there alternative "best practice" on achieving this type of >> reliability? Does v8 have any features to migrate a running execution >> context between servers? >> >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to nod...@googlegroups.com<javascript:> >> To unsubscribe from this group, send email to >> nodejs+un...@googlegroups.com <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> > > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en