- 《架构师》2017年3月
- InfoQ中文站
- 1797字
- 2020-06-26 06:05:08
特别专栏 | Column
大容量高并发分布式呼叫中心架构设计
传统呼叫中心集成复杂,成本高,建设周期长。随着互联网以及IT的发展,呼叫中心走向云化,云呼叫中心的需求是分布式部署,用户可以就近快速接入,快速集成;架构的核心需求是:
1.如何支持分布式的网关和分布式坐席;
2.如何支持大容量高并发的业务场景;
3.云部署的呼叫中心如何确保可靠性和安全性。
本文我们将通过对云之讯云呼叫中心架构分析,介绍我们设计云呼叫中心的一些经验。
(一)云分布式呼叫中心及平台架构介绍
1.云呼叫中心的场景
系统说明
· I-CSCF:负责处理与落地网关的呼叫流程与信令管理。
· S-CSCF:负责处理用户侧的信令,包括用户注册、心跳管理和用户侧的呼叫管理。
· Callcenter:负责呼叫过程中的媒体转发、录音、IVR放音等功能。
· CCkernel:负责呼叫中心的排队管理、用户状态等核心功能。
部署说明
· 呼叫中心系统在各地部署POP接入点并通过专线连接。
· 使用呼叫中心的企业用户就近接入分布式POP点,避免语音在Internet传输影响语音质量。
· 企业用户使用的PSTN网关就近接入POP点,以节约长途话费。
设计理念
· 业务与控制分离,信令与媒体分离,提升网络的灵活性和可靠性,通过服务化拆分和微服务的方式,构建分布式大容量的可靠性解决方案。
· 关键业务部件如CCkernel、I-CSCF、S-CSCF等通过主备方式提升可靠性,并支持异地容灾。
· 媒体处理节点Callcenter节点支持分布式集群部署,部署在各地POP点,Callcenter出现故障,I-CSCF和S-CSCF能够自动发现,并通过SIP信令引导呼叫接续到到其它Callcenter节点。
(二)技术挑战与架构设计
基于分布式的呼叫中心设计目标,针对呼叫中心的面临的挑战,我们提供了如下的解决方案。
1.智能路由
由于设计目标需要企业用户就近接入,落地网关也需要就近接入,业务各POP点通过专线连接,就需要实现智能化的选路方案,以确保用户通过最优的路由接入。
· 各企业用户登录中心节点,中心节点根据用户的IP地址判断运营商和位置,指引该用户就近接入POP点,所在POP点出现故障,则指引用户接入备份POP点
· 落地网关通过固定配置就近接入主用POP点,主用POP故障,自动切换到备份POP点
· 各POP点通过专线连接,通过OSPF方式实现自动选路,并监控相关路由,确保最佳选路
2.通话接续速度
通话接续速度是影响用户体验的第一要素,通过架构实现了分布式数据库和内存数据库并进行算法优化,把数据缓存到离Callcenter最近的内存数据,以确保数据查询速度,尽快转接,同时优化路由算法,做到最短选路,在整个呼叫中心内部,最多只需要经过2个节点就可以进入PSTN网络。
3.语音质量
1.路由管理:在用户侧部署监控模块,实施监控到主用POP节点和备份POP节点的丢包和延迟情况,主用POP节点出现网络异常,下一次通话切换到备份POP节点
2.语音编码:根据实施监测的网络情况,以及用户话机和落地网关的编解码能力,动态选择最优编解码方案。
(三)关键技术设计
1.内存数据库Redis设计
整个呼叫过程中,涉及大量的路由策略,每一次通过都需要多次数据库操作,为提升呼叫速度;同时,关键部件如CCkernel、I-CSCF、S-CSCF等部件都通过双机或者集群提升可靠性,为了保证双机、集群切换过程中,呼叫不受影响,我们采用了内存数据库Redis。
1. CCkernel把所有排队、相关组件信息保存在Redis中,CCkernel切换过程,整个用户数据不损失,业务逻辑不受损。
2. I-CSCF和S-CSCF把所有呼叫相关的信息保存在Redis中,I-CSCF和S-CSCF切换,已有呼叫连接的数据均在Redis中,呼叫不会受到影响。
2.微服务路由设计
呼叫中心系统需要支持高并发的大容量呼叫,同时要支持复杂的路由策略,为了提升接续速度,减少部件交互,我们对路由呼叫处理进行分级处理,热点数据缓存在进程内,部分数据存在在本机的缓存内,对于低频访问数据和复杂业务逻辑进行统一管理,根据路由策略,进行分级查询。
(四)系统可靠性设计理念
· 信令和业务处理节点CCkernel、I-CSCF、S-CSCF通过双机实现备份,同时支持异地部署和容灾。
· I-CSCF出现故障,业务可以自动切换到异地的I-CSCF,落地网关通过SIP option监测到故障,切换到异地的I-CSCF。
· S-CSCF出现故障,业务可以自动切换到异地的S-CSCF,通过DNS指引用户切换到异地S-CSCF。
· 媒体处理节点集群部署,I-CSCF和S-CSCF实时监控,通过呼叫信令指引用户切换到备份节点。
(五)安全性
系统安全
· 公网关闭所有非必要服务端口,及时更新版本和补丁。
· 实现完善的认证与鉴权机制,防止非法用户登录。
业务安全
· 通过呼叫中心系统实时监测各用户呼叫情况,动态分析呼叫数据,发现可疑呼叫立刻通知管理人员进行人工介入。
· 录音监控系统:可以按照客户或者某一路呼叫进行录音,录音快速回传给客户进行,人工进行分析。