[jdev] Re: [jadmin] Re: One million concurrent user
Jon Phillips
jon at rejon.org
Sun Jan 30 23:19:32 CST 2005
Richard Dobson wrote:
>> Were I designing it, I'd have a login server, which validates you and
>> then hands you a new place to connect to, for your actual sustained
>> connection. All data is shared between the servers (or rather,
>> replicated between them; SQL is your friiiiiend), and you just get
>> handed off to whatever actual messaging server has the least load at
>> the time you connect.
>
>
> Yup although for a truely scalable solution you wouldnt want to rely on
> a single sql server, you would want the servers to replicate the routing
> data themselves and store that data in memory for maximum speed and to
> help keep the load of your sql servers.
So you are saying have a server that routes individual IM connections to other
jabber servers and store the route info in the sql db. Then, how to make the sql
servers redundant? I don't have tons of experience in this area, but am willing
to work towards it and/or provide code to solve scalability issues if we can
lead towards some needed improvements.
>> In theory, this would allow for a lot of scalability; getting loaded
>> down, just add another server into the cluster and voila, it
>> automatically starts sharing the load.
>
>
> Yup exactly.
>
>> Of course, that's harder to do under XMPP since I don't believe we have
>> any proposed extensions to validate login via one server and connect on
>> another, much less split incoming messages out across different actual
>> servers in a cluster.
>
>
> There isnt a token style login mechanism that you describe but
> connections can be redirected to another server, i.e. redirect
> connections to a server under lower load. Also there is nothing in the
> protocol that causes problems with splitting incoming messages out over
> multiple servers in a cluster, and it doesnt need any specific protocol
> to be developed for it to work, its simply a server design and
> architecture issue.
>
That is one of the options I am considering is to have a main jabber login
server that then keeps track of the load of the other jabber servers and then
routes connections to the other jabber servers and records which current jabber
server a user is on in mysql.
Thus, could have jabber01.blah.com, jabber02.blah.com and just record that in
the mysql db as the current server route...but wait, that would mess up the
rosters...ugh...still thinking about solutions.
As I said before, this company I'm doing this work for is in support of me
adding code to open source solutions to contribute back to the community, so I
hope that that can be the best solution.
Jon
>
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mail.jabber.org/mailman/listinfo/jdev
>
>
--
Jon Phillips
USA PH 510.499.0894
jon at rejon.org
http://www.rejon.org
Inkscape (http://inkscape.org)
Open Clip Art Library (www.openclipart.org)
CVS Book (http://cvsbook.ucsd.edu)
Scale Journal (http://scale.ucsd.edu)
More information about the JDev
mailing list