FreeSWITCH和OpenSIPs均衡负载的方式
在目前的FreeSWITCH和OpenSIPS实现均衡负载的手段主要通过load_balancer和dispatcher的方式来实现。当然,这两种方式各有其优缺点,在实现均衡负载时,用户需要根据自己的业务要求来配置所实现的方式。
视频完整内容:
因为load_balancer 是stateful 模式,所以可以实现session的很多业务控制,而dispatcher是相对粗放式的一种调度方式,它是stateless的模式,所以有时候对呼叫的管理可能会“失控”,也就是说,它仅负责调度,至于最后呼叫是否接通,它不会负责处理。
因为,在具体的业务中,大部分的PBX呼叫仍然需要对呼叫流程实现完整的管理,所以在负载处理中,本实验使用的是load_balancer的方式,同时结合了OpenSIPS中的FreeSWITCH模块,从FreeSWITCH推送资源到OpenSIPS处理中心,OpenSIPS根据系统资源,CPU状态,心跳等等事件来对呼叫进行智能分配。
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105138134.jpg)
Load_balancer和dispatcher的优缺点
在上面的叙述中,笔者已经简单介绍过两种方式的优缺点。这里我们再做一些进一步的介绍。Dispatcher 是一种Stateless 的mode,当然这样的模式可以轻松实现大并发的处理,但是不会对呼叫执行任何控制,没有特定的限制。
所以这种模式是一种相对松散型的管理模式。而Load_balancer来说,它是stateful的mode,这种模式可以支持SIP回话中的一些数据管理。它也可以实现大并发处理,并且可以对其回话资源进行管理,例如通道,语音,视频等等。如果仅从呼叫数量上来实现均衡负载,也不能真正解决每个FreeSWITCH负载的及时调度,例如如果一个FreeSWITCH正在进行编码转换时,机器的处理能力就会大打折扣。这时,我们需要真正的相关数据来提醒OpenSIPS。
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105201260.jpg)
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105214416.jpg)
OpeSIPS 2.3 以上版本支持了FreeSWITCH模块
这个对FreeSWITCH来说绝对是一个好消息,通过ESL接口可以轻松调用FreeSWITCH数据,然后通过订阅方式轻松传递获取的数据到相应的模块中。
在此视频介绍中,开发人员使用的是Load_balancer 来实现均衡负载,当然开发人员也提到了这种方式的优势,比如降低了CPU的压力,实现了低呼叫延迟(PDD)。
注意,这里开发人员比仅仅讨论了基于语音呼叫,同时也讨论了电话会议呼叫和视频会议的呼叫处理方式。事实上,在电话会议或者视频会议呼叫时,用户需要更多注意会议呼叫处理的不同,必须需要添加更多的处理策略来调度视频会议或语音电话会议。因为,毕竟后两种呼叫的用户可能是完全不同的两种用户。
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105348392.jpg)
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105406687.jpg)
集成InfluxDB实现实时数据读取
在OpenSIPS侧,开发人员使用了InfluxDB实现对其数据进行实时分析,从OpenSIPS获取的数据,通过cfg 配置文件中的Timer Route的方式把相关实时数据轻松写入数据库。
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105423328.jpg)
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105432990.jpg)
Grafana 实现非常漂亮的动态图形化显示方式
Grafana 是一款非常卓越的实时动态图形化界面系统,支持多种方式的数据接口,它同时也支持了InfluxDB。用户可以轻松通过界面选择SQL 查询语句来实时显示所需要的数据。在图例中,PDD为黄色的部分表示是低延迟的PDD,这个机器使用的是FreeSWITCH的模块。
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105513421.jpg)
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105528562.jpg)
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105557611.jpg)
实例文档下载
根据视频会议人员介绍,OpenSIPS开发人员会把主要的配置文件和其他相关文件上传到官方网站,大家需要下载这些cfg配置文件来运行OpenSIPS和FreeSWITCH。
![](http://www.ctiforum.com/uploadfile/2017/0904/20170904105617647.jpg)
以上是开发者会议的整个视频内容的介绍,更多关于此均衡负载解决方案的内容,请大家关注官方网站获取完整的cfg文件来实现或模拟自己的环境。
获得更多有价值的技术文档和相关动态,请关注微信公众号:asterisk-cn,技术论坛:www.issabel.cn/forum。