[icecast-dev] load balancing

Enrico Minack enrico.minack at informatik.tu-chemnitz.de
Tue Feb 10 04:47:27 PST 2004



> > One more detail about Icecast2 that I'd like to know is whether there is
any
> > load-balancing feature implemented or about to be implement? ...
> I haven't heard or seen of this, nor do I think load balencing as you
> describe it could be done seamlessly without modifying the media player.
I made some tests and it turned out that Winamp, mpg123 and even MS Media
Player are capable of handling HTTP-Location responses properly. Therefore
it might be possible to implement an load balancing feature without having
changes on client side.

This is what I thought of:

client requirements:
- handling HTTP 302 response status together with HTTP-Location attribute
properly

erver requirements:
- Slave - telling the Master how many clients are connected
- Master - using Slave information to fulfill load balancing algortihm

And this is how it works:
Every Slave sends its load data (how many clients connected and the defined
maximum of clients) to the Master (propably included in the
master-update-interval procedure). Therefore, the Master knows which Slaves
are connected and working, and which has the lowest load. The next client
will be forwarded to this Slave using the HTTP 302 status together with a
HTTP-Location attribute:


---
HTTP/1.0 302 Found
Location: http://SLAVEIP:SLAVEPORT/MOUNTPOINT
---

Thus, the client is forwarded to a Slave and we got a centrally controlled
load balancing.

Advantages:
- Slaves can be added dynamically without posting them in mirror-lists
- Slaves will be used for load balancing instantly

<p>What do you think?

Enrico M.

--- >8 ----
List archives:  http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.




More information about the Icecast-dev mailing list