I think you're asking about two things: load balancing and replication of state between instance. These are separate problems.
Nginx and http proxy will help you with load balancing and the configuration of sticky sessions etc. This allows you to horizontally scale your front-end servers. However, replication of state between your application servers, that's more tricky. You need to think about what state needs replicating, how often, and what happens if the system has a temporary network split. As Dominic says above, a lot of these problems become easier if you can architect your system to support eventual consistency (i.e. not every server will always be exactly the same, but that they will converge on the same state). Ideally your nodes should be able to deal with events arriving out of order. In order to share this state, you'll need to open a communication channel between the two node.js processes (raw TCP might be enough, personally I would use Zeromq, but that's an implementation detail) USER1 -----> GAME1 <-----> GAME2 <----- USER2 Hope that helps, Charles On 5 July 2012 08:53, hd nguyen <[email protected]> wrote: > I think it turns out too detail when discussing about code/business > processing here. > > > To imagine easier, please look at below diagram: > > As you can see, we have 2 users access to the same game hosted in 2 nodejs > servers. Client communicates to server through web socket protocol, example > user1 joins game and stick with server1, user2 joins and stick with > server2, of course through proxy server as load balancer. 2 users on the > same scene of game, assume user1 attacks user2, so user2 must see user1's > action and vice versa. > > So nginx or node http proxy can help us on this situation transparently > with as less effort as possible? Or any different solution to get over it? > > -- 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
