I have Wowza set up successfully re-streaming an Icecast server over RTMP.
My service has occasional peaks of high activity and I want to employ a second EC2 instance during these periods. Before I started with Wowza, I successfully employed haproxy to balance a master/slave pair of Icecast servers, streaming MP3 over HTTP.
Is there anything to stop me performing the same feat with RTMP? I am thinking of setting up haproxy to proxy raw TCP data on port 1935, with each new connection going to an alternate instance of Wowza. (Both Wowza instances will be re-streaming a single Icecast server).
Does anybody have any experience with this? Or is there a better solution?
If anybody foresees any problems with this then I’d really appreciate learning about them now
JW Player and Flowplayer have built-in support for the “redirect” application that you can set up on the Load Balancer. Or if you need to adapt to a custom player, there is sample client in the package, or you can refer to the Flex version LiveVideoStreaming example player (clientFlex)
HA proxy is most likely not going to work. RTMPT works in such a way as that each connection is unique. Also RTMPT is not very efficient. So it is best to use RTMP where you can and only fail over to RTMP when needed.
I hate to bring up an old thread… but I recently just fronted a Wowza server with haproxy… and it seems to work really well so far. Granted I’ve not run it through the “ringer”… but so far it seems promising.
Proxying the raw tcp data to Wowza is working nicely. Both RTMP and RTMPT work great.
I’m telling Wowza to listen on port 1936 and then using haproxy to handle the incoming protocol.
So after some quick streaming tests… it again is surprisingly positive. I don’t see bytes flowing through the stats page of haproxy right away… and it’s not until the stream ends that they’re reported.
I tested it working with multiple sessions to make sure it properly counts them and it does. Things are looking better and better.
I’m going to build out a larger block of Wowza servers and give it a test. Would be nice to manage all the servers from one place and have nice reporting on it as well.