Depending on your budget you could use some sort of HA cluster software below your ip stack, for instance Sun Cluster 3. (see http://www.sun.com/blueprints/1001/scaleclstr.pdf). They have a consept of a Global network interface where several nodes in a cluster share an ip address and connections, if you in addition put your coversational state in a cluster cache as ashish suggest you could possibly be able to maintain connections. At least you can in c on solaris, I guess some custom code would be needed to make it work in mina though.
-- daniel > -----Opprinnelig melding----- > Fra: Ashish [mailto:[email protected]] > Sendt: 20. mars 2009 14:10 > Til: [email protected] > Emne: Re: Clustering support in MINA > > > On Fri, Mar 20, 2009 at 8:26 AM, Sanjeev Sachdev > > <[email protected]> wrote: > >> Could you please tell if MINA can work in a cluster mode? > >> > >> I have developed a server using MINA that communicates with remote > >> devices and stores conversational information in the IoSession > >> object. Can IoSession object work in a cluster mode? > > > > What kind of cluster are you hoping to run MINA in? > > > > For appserver clustering, given that the session indirectly > refer to > > the socket, which would be hard to cluster, I fail to see > how it could > > work. During a failover, the socket would have to be recreated at > > which time a new session would be created. But, IoSession is an > > abstracted interface, so you might be able to create a > session wrapper > > which is clusterable and that could be reused after a failover. > > Agree with Niklas. There is little to be done at networking > layer for clustering > > However, it still leaves a possibility of innovating some > kind of HA, but can't think of it at MINA level, as the > session is bound to a Client at Socket level. > > Some wild thoughts > 1. Have a Filter-chain implementation to cater to HA. > Basically, you write custom implementation to always ensure > that you never loose a message that you may have received. I > thought about it and dropped the idea as it involves writing > a lot of custom code > > 2. Keep MINA at purely for Network IO and move business logic > to a HA layer. Something that most of the container do. Like > Tomcat has Coyote connector, but still you can have HA for > your application. > > 3. Have MINA as Proxy in front of your application, on > similar lines of Apache modjk. > > These are some of the things that I thought at some point of time. > > For your problem domain, you can store the conversation state > in a clustered cache like ehcache, JBosscache etc and > implement some logic in MINA that it can re-establish > connection with device based on the Conversation information. > > thanks > ashish >
