[SR-Users] Load Balancing

Daniel-Constantin Mierla miconda at gmail.com
Wed Dec 28 14:00:58 CET 2011


Hello,

adding more info here.

I guess the dispatcher from the forked project didn't evolve from the 
moment of the fork if they added a different module, so I assume it is 
more or less dispatcher as it was in kamailio 1.4.

Meanwhile in kamailio (as we are at version 3.2.1), dispatcher got lot 
of new features, including calls load distribution, algorithm 10:

http://kamailio.org/docs/modules/stable/modules_k/dispatcher.html#id2498405

Call load distribution counts the number of active calls per destination 
address, dispatcher selecting the least loaded. It uses script functions 
to manage the load (see the readme), since dispatcher can work event in 
stateless mode (so no tm or dialog modules are needed for such feature), 
thus is very lightweight, which is really important for scalable load 
balancing implementation.

Among new features since dispatcher for kamailio 1.4:
- weight based load balancing
- priority based gateway selection
- refactored keepalive mechanism for detecting when a gateway is down/up
- execution of event_route blocks in config when a gateway is down/up
- management through RPC commands

Cheers,
Daniel

On 12/28/11 1:43 PM, Alex Balashov wrote:
> On 12/28/2011 07:21 AM, Ronald Kiel wrote:
>
>> I understand Kamailio has the Dispatcher-module for load-balancing.
>>  OpenSIPS has both a Dispatcher-module and a LB-module, which seems
>> to offer improved functionality. Is there also something like the
>> LB-module in Kamailio?
>
> No, there's nothing in Kamailio that implements what the LB module 
> does, exactly.  However, I wouldn't call the LB module 'improved' 
> functionality;  it extends a particular subset of 'dispatcher' in a 
> specific way, nothing more.
>
> Furthermore, with Kamailio it is relatively trivial to come up with 
> your own load-aware routing process in route script.  I think that's 
> one reason it doesn't get wrapped in a module.  If you want to 
> periodically poll some outside source for load information, define a 
> periodic 'rtimer' process that can go out and do that:
>
>    http://www.kamailio.org/docs/modules/3.2.x/modules_k/rtimer.html
>
> Store the results in 'htable' or some other data structure, and then 
> check it when routing calls.  And that's all there is to it.  :-)  Now 
> you can implement skills-based routing or anything else esoteric, 
> because the algorithm is 100% yours to override.
>
> -- Alex
>

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda




More information about the sr-users mailing list