Thanks Dominic, That's the way I'm implementing the cross-process module.
One thing difference is, I'm using UDP datagram rather then TCP, because: 1. the service we are working on is lag-sensitive, but accuracy insensitive. 2. domain socket is slow on Xen, learned from using Redis. 3. data of each transmission is very small, < 100bytes. > Also, what kind of messages are they sending? message sent from clients are controlling command write in a custom binary protocol. the service we are building can be seen as to to host a good number of virtual rooms in several processes. And a few clients on different process can interact with each other in the same virtual room. Regards, ty 2012/9/13 Dominic Tarr <[email protected]> > You need to make every "client" a tcp server. > if they live on the same machine, use a unix socket instead of a port > number. > see the docs for "net". > Obviously, each node will need to keep track of every other node it > needs to communicate with. something like http://npm.im/seaport might > be good for that. > > Also, what kind of messages are they sending? > > On Tue, Sep 11, 2012 at 10:21 AM, Yi Tan <[email protected]> wrote: > > Thanks Johnny, > > > > dnode is very inspiring. cluster2 may help us a lot in production! > > > > Regards, > > > > ty > > > > > > > > 2012/9/11 Johnny Honestly <[email protected]> > >> > >> I heard about this cluster manager today directly from the guys at ebay > >> working on ql.io > >> > >> https://github.com/ql-io/cluster2 > >> > >> You can stream buffers from parents to child process using stdin/out > >> > >> If you need sockets try dnode > >> > >> https://github.com/substack/dnode > >> > >> > >> On Monday, September 10, 2012 1:45:12 AM UTC-7, Yi wrote: > >>> > >>> Hi node mates: > >>> > >>> I'm looking for your advice about how to design and implement an > >>> mechanism for real-time socket-based cross clustered-process data > >>> communication and computation. > >>> > >>> [The server layout] > >>> > >>> clientA <--tcp socket--> node service A <--> DataModelA <--> unique > radis > >>> data store > >>> > >>> clientB <--tcp socket--> node service B <--> DataModelB <--> unique > radis > >>> data store > >>> > >>> * node service A and B are cluster on the same server > >>> * 1 data model represent 1 client at the run time > >>> * both node service A and B talk to the same redis data store > >>> > >>> [The function request] > >>> > >>> I need to implement a mechanism, in which: > >>> 1. clients in difference processes can communication with each other > >>> efficiently. > >>> 2. there need to be a centralized place for data computation base on > data > >>> models represents difference clients > >>> > >>> the logic looks like the following diagram: > >>> > >>> clientA <--tcp socket--> node service A > >>> | > >>> socket pipe > >>> | > >>> v > >>> clientB <--tcp socket--> node service B <--> DataModelA and B <--> > unique > >>> radis data store > >>> > >>> Do you know what is the best way to do this, or is there something > >>> already been built > >>> > >>> Many thanks, > >>> > >>> ty > >>> > >> -- > >> 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 > > > > > > -- > > 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 > > -- > 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 > -- 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
