Load balancing Jitsi meeting

Hi Team,

We are trying to load balance Jitsi meeting with HAProxy as various tutorials used HAproxy in demo. Jitsi meeting is running in docker.

The basic challenge of sending a conference room to static server should work with below config.
balance url_param room
option httpchk
hash-type consistent

But I dont know what to do about the udp port 10000 of JVB. As HAProxy does not support loadbalancing of UDP traffic.
The conference run for few seconds and then disconnects. The same issue appears in our initial testing when all ports were not open from Firewall(After opening all ports, conference runs fine)

So, how we can manage udp traffic from HAProxy. Is there any other alternative to it.

Hi Team,

It will be helpful if someone can answer above. Also to run Multiple JVB, I have designed below approach in docker. I am testing same. While if someone can tell if the approach is optimum or not, that will be good.

AFAIK, you don’t need a load balancing layer for this use case. Jitsi knows how to distribute the traffic to the videobridges and solves the load balancing issue.

And what is the bandwidth of your external side? Is it higher than a videobridge can manage?

Hi Emrah,

Thanks for your reply.

Yes for JVB shards, load balancing is not required, but if we have two setups of Jitsi(Each having separate Jisti-meet and JVB shards), then I think LB is must and not able to figure out how to manage to route the voice/video UDP packets to the instance where room is created.

(I referred this link:https://meetrix.io/blog/xmpp/jitsi_haproxy_configure.html for HAProxy config, but it does not talk about how to route the UDP (Voice video packets.).

And for setting up second JVB container, my concern was if we can use different port mappings for JVBs(Because Jitsi may have to tell the end user to send traffic on 10001 instead of 10000 if conference scheduled on JVB2). So if just registering JVB in prosody does the Job(considering that all the external container port mapping are know to Jitsi), then it will be simple.

For the bandwidth, we are in discussion and will try to follow the rule n*30Mbits. So for 5 user, approx 150Mbits(18-19 Mbps upload and download). I will have to create setup for 200 users as of now.
I dont know if JVB has its own limit of handling traffic management thats why considering to setup with at least two JVBs.

If I don’t miss anything, you don’t need to manage UDP traffic in this case too. When the clients go to the right Jitsi server through HAProxy, then Jitsi will redirect the clients to the right videobridges which are in its shard. It should be enought to not duplicate the UDP ports for the videobridges.

Hi Emrah,

Thanks again for your revert. Now I start getting some clarity.

So we need to put LB for web container only on 443.

And the UDP should reach directly to our instances based on different ports of JVBs.

Will this be the correct approach?

I think so

Thank you very much Emrah.