本发明涉及一种基于cap呼叫信令的无状态化设计方法。
背景技术:
1、无状态化就是冗余部署的多个服务模块,功能完全对等,请求到任一服务模块的处理结果都一样。这些服务模块不存储业务的关联信息,只会根据每次请求携带的数据进行相应的业务处理。业务相关的信息都存放在统一的地方,比如redis、缓存中间件等。
2、不断涌现的新型it技术正逐渐渗入到电信运营商行业,加之电信运营商业务升级换代,运营商网络架构解耦化,云化,容器化是其网络的演进方向。无状态化设计使电信业务解耦、服务上云、实现高并发、高可靠性、高可维护性、负载均衡、动态扩缩容等成为可能。
3、因此为了适应电信运营商云化演进,实现服务模块无状态化设计是一个亟需解决的重要课题。
技术实现思路
1、针对现有技术中存在的问题,本发明的目的在于提供一种基于cap呼叫信令的无状态化设计方法。
2、所述的一种基于cap呼叫信令的无状态化设计方法,其特征在于无状态化是对其有状态化进行脱敏,允许同一通呼叫信令在不同处理模块执行;呼叫流程无状态化设计方法如下:
3、1)多个cap呼叫信令处理模块之间通过分布式锁实现对同一通呼叫消息有序的进行操作,保证数据一致性;分布式锁根据cap初使idp消息生成的唯一事务id,当前处理idp消息的cap呼叫信令处理模块id组合生成,分布式锁保存在redis集群中,同时为分布式锁设置获取超时时间;
4、2)cap呼叫信令处理模块收到任意一条呼叫信令消息时,判断是呼叫初始idp消息,解析呼叫信令消息获取主被叫号码、imsi、呼叫时间,同时生成此通呼叫的分布式锁,一起存入redis集群中;判断是呼叫过程中消息时,先从redis集群中成功获取到此通呼叫对应的分布式锁后,再从redis集群中获取此通呼叫信息,解析呼叫信令消息获取当前呼叫状态信息、摘机时间、呼叫时长,更新呼叫信息并保存到redis集群中,同时释放分布式锁;判断是呼叫结束消息时,先从redis集群中成功获取到此通呼叫对应的分布式锁后,再从redis集群中获取此通呼叫信息,解析呼叫信令消息后,结合redis集群中的呼叫信息生成呼叫话单,最后删除redis集群中的呼叫信息和分布式锁。
5、所述的一种基于cap呼叫信令的无状态化设计方法,其特征在于:
6、所述 cap呼叫信令处理模块:处理cap呼叫信令消息;通过集群跟redis对接,获取呼叫关联信息;
7、所述redis集群:三主三备集群模式部署,保存呼叫事件信息,提供呼叫关联信息供cap呼叫信令处理模块使用。
8、所述的基于cap呼叫信令的无状态化设计方法,其特征在于所述cap呼叫信令处理模块无状态化流程如下:cap呼叫信令处理模块处理信令消息包括idp、rrbe、ac、fci、continue、connect、erb、acr、etc、ari、pac、dfc、pcr、rc、tc_end,解析并提取消息中呼叫状态和呼叫信息;redis集群方式部署,保存每一通呼叫的关联信息;多个cap呼叫信令处理模块跟redis集群连接,呼叫信令消息随机发到任意cap呼叫信令处理模块,cap呼叫信令处理模块从redis中获取这通呼叫关联信息,处理消息完成后,更新redis中的呼叫关联信息。
9、本发明通过分布式锁和redis集群实现了cap呼叫过程中信令交互的无状态化,实现cap呼叫功能,实现cap呼叫信令模块异常情况下的业务无损,同时解决cap呼叫信令模块单点故障问题,性能瓶颈问题,支持呼叫业务流量负载均衡,cap呼叫信令模块动态扩缩容、无损升级,为电信运营商服务无状态化、容器化部署提供了一种思路。
1.一种基于cap呼叫信令的无状态化设计方法,其特征在于无状态化是对其有状态化进行脱敏,允许同一通呼叫信令在不同处理模块执行;呼叫流程无状态化设计方法如下:
2.根据权利要求1所述的一种基于cap呼叫信令的无状态化设计方法,其特征在于:
3.根据权利要求1所述的基于cap呼叫信令的无状态化设计方法,其特征在于所述cap呼叫信令处理模块无状态化流程如下:cap呼叫信令处理模块处理信令消息包括idp、rrbe、ac、fci、continue、connect、erb、acr、etc、ari、pac、dfc、pcr、rc、tc_end,解析并提取消息中呼叫状态和呼叫信息;redis集群方式部署,保存每一通呼叫的关联信息;多个cap呼叫信令处理模块跟redis集群连接,呼叫信令消息随机发到任意cap呼叫信令处理模块,cap呼叫信令处理模块从redis中获取这通呼叫关联信息,处理消息完成后,更新redis中的呼叫关联信息。