Dynamic Load Balancing Redirect

Hi team, hope you’re all well. I’m using Wowza Streaming Engine and AWS EC2 and I’m attempting to achieve load balancing.

I’ve downloaded the “Dynamic Load Balancing AddOn” PDF (https://www.wowza.com/docs/how-to-get-dynamic-load-balancing-addon) and after following the guide I still feel like I’m missing large gaps of knowledge necessary to feel confident in any implementation.

I have a single origin server and a single edge server. Following the PDF guide, I’ve deployed the appropriate files included in the download to the /lib folder and updated both the Server.xml file on the origin and on the edge server. I’ve updated the VHost.xml file on the server as per the guide and the Application.xml of the origin application (for RTMP redirection). If I use the Wowza GoCoder to broadcast a stream to the origin server I can successfully consume it via the edge server by using any of the appropriate URLs (HTTP/RTMP) directly. I have used VLC player, JW Player and the example players provided by Wowza in the Engine Manager interface to prove all of this works.

Now I’m attempting to utilise the redirection functionality so that I can provide a single URL to a player and Wowza can determine and return the stream URL from the appropriate edge server. I’m yet to get this to work in VLC Player, JW Player or the example players provided by Wowza and I’m not sure how or why.

1. Using the example players provided by Wowza, how can I test that the RTMP redirect is working?

I had originally followed the article titled “How to configure a live stream repeater” (https://www.wowza.com/docs/how-to-configure-a-live-stream-repeater) prior to following the load balancer PDF. In that article the origin and edge servers are given the (descriptive) names “liveorigin” and “liveedge” respectively. In the load balancer PDF it states that during the redirect process the initial URL takes the basic form…

[protocol]://[load-balancer-ip-address]:1935/redirect/[application-name]/[stream- name]?scheme=[http-transmission-scheme]

…whilst the destination URL takes the following basic form…

[protocol]://[load-balanced-server-ip-address]:1935/[application-name]/[stream-name]?[manifest]

2. Does the origin and edge serve application have to have the same name in order for the load balance redirect to work?

When I navigate to the load balance info endpoint (http://52.208.153.126:1935/loadbalancerInfo) on the origin server the table shows no connected clients. Is this expected until a connection is made? Or should this show all of the edge servers all of the time? I’m testing this setup using a Wowza Developer license deployed on both origin and edge servers and I came across the following forum post titled “rtmp redirect not working on LB4 on JW Player (latest version)” (rtmp redirect not working on LB4 on JW Player (latest version)) in which the poster complains about the development license affecting things.

3. Should the /loadbalancerInfo page display edge connection all of the time or do they automatically connect and appear at the relevant moment?

4. What are the limitations of using the developer licenses for testing the load balancing process?

Looking forward to hearing from you :slight_smile:

Hi,

You should see all registered clients listed when going to http://[WOWZA-IP]:1935/loadbalancerInfo. If that’s not the case then check that all clients have a listener running (com.wowza.wms.plugin.loadbalancer.general.LoadBalancerServer) and is configured correctly. If it’s still not working then I’d suggest zipping up your /conf and /logs from both servers and open a support ticket

Regards,

Paul

That was the issue, thanks Paul.

It should also be noted, for anyone that stumbles across this thread, that the developer licenses result in client automatically disconnecting themselves after 10 minutes. This does NOT happen on paid licenses.