Results 1 to 4 of 4

Thread: Wowza 4.1 nDVR with Load Balancer 4.0

  1. #1
    Join Date
    Aug 2013
    Posts
    19

    Default Wowza 4.1 nDVR with Load Balancer 4.0

    Hello,

    We are trying to upgrade our 8 Wowza 3 servers to Wowza 4, and I am working out any bugs in our development environment to make sure it goes well. I was able to setup Wowza 4.1 with nDVR and Load Balancer 4.0 without any problems. But I have a few questions about it.

    1) When I use nDVR and Load Balancer with the Apple HLS (M3U8) redirect method.

    If I point my client at this for redirection:
    http://[load-balancer-ip-address]:1935/redirect/[application-name]/[stream-name]?scheme=m3u8

    It correctly redirects to this:
    http://[load-balanced-server-ip-address]:1935/[application-name]/[stream-name]/playlist.m3u8

    But, since we are using nDVR (which works correctly on it's own), I need it to redirect to this, yes?:
    http://[load-balanced-server-ip-address]:1935/[application-name]/[stream-name]/playlist.m3u8?DVR

    I have tried adding the DVR query at the end like this, but it doesn't work.
    http://[load-balancer-ip-address]:1935/redirect/[application-name]/[stream-name]?scheme=m3u8?DVR

    Is there a way to use both of these together?

    2) I would like to have a backup Load Balancer.

    Is there a way to specify a second Load Balancer in case primary fails? For our setup, each site has 2 Wowza servers. Each server has these roles:

    Server1
    liveorigin (primary)
    liveedge (points to primary|backup)
    Load Balancer Server (primary)
    Load Balancer Client

    Server2
    liveorigin (backup)
    liveedge (points to primary|backup)
    Load Balancer Server (backup)
    Load Balancer Client

    The way I am thinking about doing it is using a virtual ip that both Load Balancer Clients will point to. So, when the primary server fails, the backup server will take the VIP, and thus become the Load Balancer Server. I remember with the Wowza 3 load balancer had a way to add a backup Load Balancer Server. Any ideas?

    As always, thanks for your help!

    Jordan
    Last edited by jordanrumph; 10-10-2014 at 08:52 AM.

  2. #2
    Join Date
    Jun 2012
    Posts
    723

    Default

    Hi,

    For the question #1, you should use following URL format:
    http://[load-balancer-ip-address]:1935/redirect/[application-name]/[stream-name]?scheme=m3u8&DVR
    I didn't test the scenario you described in your #2 question, but I don't see a reason why it shouldn't work. I guess you will use a tool similar to "UltraMonkey" to check if a server is up or not and based on that assign the VIP to the active server.

    Zoran

  3. #3
    Join Date
    Aug 2013
    Posts
    19

    Default

    Hi Zoran,

    Thanks for that information. Your solution worked fine.

    After a bit of testing with our setup, however, we would prefer for the client to get the least loaded server once and save the information. We have an IPTV setup with a web front end that the client connects to. Each time they change the channel, they get redirected to the stream URL. This method would make them check with the load banancer each time, which seem undesirable for us. Because of that, I started to see if I could imitate the way the old load balancer worked. You query the Load Balancing Server, and you get an IP address of the Least Loaded Edge in return. In the WowzaDynamicLoadBalancingAddon_UsersGuide, I was trying to use the setup under 'Host-specific information'. It seemed like it was working well.

    We are using this to query the server from the client:
    http://[load-balancer-ip-address]:1935/redirect/?request=server
    In response, we get back the IP and port of the primary server. When clients start connecting, however, we noticed that edge1 gets, by far, the majority of the connections. As in edge1=150 edge2=40. Am I missing something?

    Here are the options I have in our Server.xml on each server:
             
             <Property>
                <Name>loadbalanceType</Name>
                <Value>Server,Client</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceKey</Name>
                <Value>[secret key]</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceClientName</Name>
                <Value>[hostname of machine this xml is on]</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceServerIP</Name>
                <Value>[virtual IP of cluster]</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceServerPort</Name>
                <Value>1935</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceDecisionOrder</Name>
                <Value>Connection</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceBandwidthEnable</Name>
                <Value>Off</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceBandwidthLimit</Name>
                <Value>0</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceConnectionEnable</Name>
                <Value>On</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceConnectionLimit</Name>
                <Value>0</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceIgnoreClients</Name>
                <Value>FMLE</Value>
                <Type>String</Type>
             </Property>
             <Property>
                <Name>loadbalanceAllowRemoteClientShutdown</Name>
                <Value>On</Value>
                <Type>String</Type>
             </Property>
    Any help would be great! I know I am just missing something simple. Thanks!

    Jordan

  4. #4
    Join Date
    Aug 2013
    Posts
    19

    Default

    Hi everyone. Any update on this? Again, what we are looking for is for the loadbalancer to split the connections based only on connection for decision order. Right now, only one server seems to be getting the load although both of them show up in :1935redirect/Ioadbalancerinfo. When we go to the primary load balancer server with:
    http://172.20.24.12:1935/redirect/?request=server
    we get an IP and port, but no matter how many connections we add to that server, we always get the same IP, not the least loaded server.

    Also, I noticed that I posted this in the Wowza 3 forums and it should probably go in the Wowza 4. Before I re-post, could I just get the thread moved?

    Thanks for your help!

    Jordan

Similar Threads

  1. nDVR configuration with external Load Balancer and redundancy
    By tonylr88 in forum AddOn: Wowza nDVR
    Replies: 3
    Last Post: 05-15-2014, 02:37 PM
  2. Load balancer for wowza 4
    By gregfr in forum Live Streaming and Encoder Discussion
    Replies: 3
    Last Post: 03-19-2014, 08:23 AM
  3. Using ec2 load balancer vs wowza load balancer and the best instances for me.
    By cham24 in forum Wowza Media Server 3 for Amazon EC2 Discussion
    Replies: 4
    Last Post: 11-04-2013, 02:18 PM
  4. Flowplayer and Wowza load balancer
    By steveitl in forum General Forum
    Replies: 4
    Last Post: 07-29-2013, 01:13 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •