高并发消息事件的处理系统及其方法
文献发布时间:2023-06-19 11:22:42
技术领域
本发明涉及一种基于freeswitch高并发消息事件的处理系统及其方法。
背景技术
目前,呼叫中心类型项目,业务后台和freeswitch交互大多采用ESL(EventSocket Library)进行连接,当业务量巨大时,socket通道交互量较大,事件消息接收延迟,有时出现接收的事件消息顺序错误。
Event Socket Library协议,由于协议采用单独socket通道连接,当freeswitch消息量过大的时候,会生成较多的事件消息,然后一起推给业务后台,从而使得业务后台执行对应操作时卡顿耗时,有时还会出现前后消息顺序错误。
发明内容
本发明的目的是克服现有技术存在的不足,提供一种高并发消息事件的处理系统及其方法。
本发明的目的通过以下技术方案来实现:
高并发消息事件的处理系统,特点是:包含连接MQ模块、AMQP消息模块、消息绑定模块和处理模块,所述连接MQ模块,用于连接MQ服务器,包含freeswitch和业务端连接,将freeswitch和业务端连接到MQ服务器,准备消息队列绑定;
AMQP消息模块,读取freeswitch通话事件日志,并封装为标准AMQP协议消息传给消息绑定模块;
消息绑定模块,用于处理业务端新建消息队列,为一基础的AMQP标准协议,将业务端新建的队列绑定到freeswitch对应的exchange;通过MQ服务器信道接收freeswitch事件消息,并将消息转给处理模块;
处理模块,根据业务处理具体的消息。
进一步地,上述的高并发消息事件的处理系统,其中,连接MQ模块业务端及freeswitch均连接到同一MQ服务器。
进一步地,上述的高并发消息事件的处理系统,其中,所述AMQP消息模块将freeswitch通话事件通过AMQP协议封装,存放在MQ消息中,发送给MQ服务器中对应exchange。
本发明高并发消息事件的处理方法,包括以下步骤:
1)freeswitch和业务后台以AMQP协议形式连接到第三方MQ服务器;
2)freeswitch将事件消息吞吐到MQ服务器队列;
3)业务后台绑定到freeswitch所存储消息的队列;
4)根据业务后台性能建立消费者消费队列。
更进一步地,上述的高并发消息事件的处理方法,其中,所述步骤1),按照标准AMQP协议业务后台和freeswitch连接到第三方MQ服务器,通过MQ服务器进行消息事件的分发传递。
更进一步地,上述的高并发消息事件的处理方法,其中,所述步骤2),freeswitch通过AMQP消息模块,将对话事件消息推送到对应MQ服务器的exchange中。
更进一步地,上述的高并发消息事件的处理方法,其中,所述步骤3),业务后台新建消息队列并绑定到freeswitch对应消息所在的exchange。
更进一步地,上述的高并发消息事件的处理方法,其中,所述步骤4),业务后台新建消费者进程快速处理队列中的对话事件消息。
更进一步地,上述的高并发消息事件的处理方法,其中,freeswitch和业务后台通过AMQP协议连接到MQ服务器,然后freeswitch通过AMQP消息模块将产生的通话事件消息传递到MQ服务器对应的exchange中;业务后台连接到MQ服务器,新建消息队列并绑定到freeswitch存放消息的exchange,新建消费者进程监听消息队列,并执行相应的动作。
更进一步地,上述的高并发消息事件的处理方法,其中,业务后台直接与MQ消息服务器连接;freeswitch通过AMQP消息模块将时间消息传递到MQ服务器队列;业务后台建立对应的队列通道;业务后台根据消费能力和业务要求建立对应消费者;
Freeswitch中AMQP消息模块连接MQ服务器;Freeswitch中AMQP消息模块将事件消息发送到MQ服务器的exchange中;JAVA程序连接MQ服务器;JAVA程序新建一个队列;JAVA程序绑定队列到对应exchange;JAVA程序新建消费者进程处理队列中相关消息。
本发明与现有技术相比具有显著的优点和有益效果,具体体现在以下方面:
本发明采用AMQP协议连接freeswitch和业务后台双方,具有稳定和高性能等优点;其架构简洁,易于嵌入旧系统升级修改;通过MQ服务器传递消息,能够承受更高负载压力。便于测试人员直接在MQ服务器的管理页面,查看系统消息吞吐率和消息消费速度等相关性能信息。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明具体实施方式了解。本发明的目的和其他优点可通过在所写的说明书中所特别指出的结构来实现和获得。
附图说明
图1:本发明系统的模块架构示意图;
图2:本发明方法的流程示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现详细说明具体实施方案。
如图1所示,本发明基于freeswitch高并发消息事件的处理系统,包含连接MQ模块1、AMQP消息模块2、消息绑定模块3和处理模块4,所述连接MQ模块1,用于连接MQ服务器,包含freeswitch和业务端连接,将freeswitch和业务端连接到MQ服务器,准备消息队列绑定;连接MQ模块1业务端及freeswitch均连接到同一MQ服务器;
AMQP消息模块2,读取freeswitch通话事件日志,并封装为标准AMQP协议消息传给消息绑定模块3;AMQP消息模块2将freeswitch通话事件通过AMQP协议封装,存放在MQ消息中,发送给MQ服务器中对应exchange;
消息绑定模块3,用于处理业务端新建消息队列,为一基础的AMQP标准协议,将业务端新建的队列绑定到freeswitch对应的exchange;通过MQ服务器信道接收freeswitch事件消息,并将消息转给处理模块4;
处理模块4,根据业务处理具体的消息。
freeswitch和业务后台通过AMQP协议连接到MQ服务器,然后freeswitch通过AMQP消息模块将产生的通话事件消息传递到MQ服务器对应的exchange中;业务后台连接到MQ服务器,新建消息队列并绑定到freeswitch存放消息的exchange,新建消费者进程监听消息队列,并执行相应的动作。
如图2所示,本发明基于freeswitch高并发消息事件的处理方法,具体步骤如下:
1)freeswitch和业务后台以AMQP协议形式连接到第三方MQ服务器;按照标准AMQP协议业务后台和freeswitch连接到第三方MQ服务器,通过MQ服务器进行消息事件的分发传递;
2)freeswitch将事件消息吞吐到MQ服务器队列;freeswitch通过AMQP消息模块2,将对话事件消息推送到对应MQ服务器的exchange中;
3)业务后台绑定到freeswitch所存储消息的队列;业务后台新建消息队列并绑定到freeswitch对应消息所在的exchange;
4)根据业务后台性能建立消费者消费队列;业务后台新建消费者进程快速处理队列中的对话事件消息。
业务后台直接与MQ消息服务器连接;freeswitch通过AMQP消息模块将时间消息传递到MQ服务器队列;业务后台建立对应的队列通道;业务后台根据消费能力和业务要求建立对应消费者;
Freeswitch中AMQP消息模块连接MQ服务器;Freeswitch中AMQP消息模块将事件消息发送到MQ服务器的exchange中;JAVA程序连接MQ服务器;JAVA程序新建一个队列;JAVA程序绑定队列到对应exchange;JAVA程序新建消费者进程处理队列中相关消息。
综上所述,本发明采用AMQP协议连接freeswitch和业务后台双方,具有稳定和高性能等优点;其架构简洁,易于嵌入旧系统升级修改;通过MQ服务器传递消息,能够承受更高负载压力。便于测试人员直接在MQ服务器的管理页面,查看系统消息吞吐率和消息消费速度等相关性能信息。
需要说明的是:以上所述仅为本发明的优选实施方式,并非用以限定本发明的权利范围;同时以上的描述,对于相关技术领域的专门人士应可明了及实施,因此其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在申请专利范围中。
- 高并发消息事件的处理系统及其方法
- 网络配置事件通知消息的处理方法、转换装置和处理系统