Skip to content
AlejandroF edited this page Feb 23, 2018 · 2 revisions

Icecast Load Balancer

Draft by Alejandro Ferrari Date: 2013/01/11

The Icecast Load Balancer can redirect clients based on country, bandwidth and connection counts. This maintains bandwidth usage in the correct geographic locations and on servers that are the least loaded.

This module is based into this following aspects:

  • Collection and aggregation of icecast server statistics in the background mode
  • Support of various icecast server locations: they may be hosted different Data Centers, cities or even countries.
  • Excluding or including particular icecast servers, for instance, to enable maintenance or troubleshooting without restart.
  • Forced collection of statistics from the edge servers at peak loads: this is essential when the situation changes rapidly and the server may be overloaded for dozens of seconds
  • Traffic sharing with external CDNs in case of peak or high load on all home servers: this could enable significant savings on CDN services
  • API Access Control
  • Security Access Control

The basic functionality:

  • Choosing the most effective server to process a given user request
  • "Dropping" peak traffic in excess of the capacity of native infrastructure, to CDN and cloud infrastructures (instead of the overall audio delivery degradation)
  • Dynamic audio platform reconfiguring on-the-fly
  • Manual traffic control
  • Identifying infrastructure issues (broken edge - by timeout)
  • Real-time statistics

Load Balancing Options:

  • Bandwidth based load balancing
  • Bandwidth usage across the whole server with a resolution in kbps.
  • Connection base load balancing :
  • Connections across the whole server taken into account.

Control Options:

  • Load Balancer Clients:
  • Specify URL and/or port for client redirection allowing private addressing if required
  • Return IP/Port/Type as XML or JSON for integration elsewhere
  • Soft shutdown of load balancer clients :
  • Basic Web interface for removing clients.
  • Allow connections to gracefully drop without the need to shutdown the server.

Statistics:

  • Per LoadBalancer
  • The number of requests to the balancer per second
  • The number of listeners per each Relay and totally on the platform
  • The total traffic from each Relay and from the platform as a whole

Per Relay Server

  • Each server reports to LoadBalancer, bandwidth, connections and countries that are currently active

Client Support

  • HTTP (302) redirect Support (iOS,SilverLight,HTML5)
  • XML output support
  • JSON output support
  • M3U output support
  • SMIL output support