[发明专利]一种JBM系统的消息处理方法及装置有效
申请号: | 201210257118.3 | 申请日: | 2012-07-23 |
公开(公告)号: | CN102857406A | 公开(公告)日: | 2013-01-02 |
发明(设计)人: | 贺治国;樊鑫 | 申请(专利权)人: | 大唐移动通信设备有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 赵娟 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 jbm 系统 消息 处理 方法 装置 | ||
技术领域
本申请涉及企业消息系统的技术领域,特别是涉及一种JBM系统的消息处理方法及装置。
背景技术
JBM是一个高性能的异步消息收发系统,它完整的实现了JMS(Java Message Service(J2EE消息服务规范)规范,为Java程序提供了一种创建、发送、接收和读取企业消息系统中消息的通用方法)规范,是一个基于JBOSS应用服务器的企业级高性能消息系统。JBM系统中发送消息的应用程序把消息发到JBM系统中目的地(destination),即“队列(queue)”或者“主题(topic)”,而不需要担心消息接收应用程序是否启动或运行。相反,消息接收方也不担心发送方的状态,消息接收方和发送方只和JBM系统目的地交互。
JBM在OMC(操作维护中心,负责网元的配置、操作维护等管理,并接收网元上报的告警消息)系统中担负着消息接收和转发重要的角色,其稳定性直接影响OMC系统的性能指标。
参考图1所示的JBM消息处理流程图,JBM系统启动成功之后,所有目的地(Destination)注册到邮局(PostOffice)中并对外发布。当发送方(Producer)或者接收方(Consumer)与JBM建立连接(Connection)时,首先要确定各自交互的目的地(Destination)。发送方把消息发送到邮局,邮局查询所有应该消费该目的地消息的客户端,然后把消息转发到每个客户端,转发之前邮局先把消息放入消费队列等待客户端消费。客户端消费一条消息,队列就释放一条消息,正常情况下队列容量可以满足消息的缓冲需要,但当客户端接收消息比较慢时,队列此已达到最大容量,消息被持久化到物理的数据库中。随着客户端不断的接收消息,当队列有空闲容量时,JBM从数据库加载被持久化的消息放入队列,然后从数据库中删除这些消息。
JBM是JMS API(JMS厂商提供的标准接口,有时称为面向消息的中间件系统)的完整实现,它在上层其实是一套消息的缓冲、分发的管理系统,JBM转发消息需要借助一套网络通讯协议或者组件,这个组件便是JBossRemoting组件(一种实现了异步或者同步远程方法调用、数据传输的网络通讯组件)。
参考图2所示的JBossRemoting数据传输与心跳示意图,JBossRemoting客户端与服务端数据传输采用Socket(套接字)协议,在传输过程中数据进行加解密操作;而客户端与服务端之间的连接(Connection)心跳采用了JAVA的远程调用协议(RMI协议)。
JBM需要借助JBossRemoting的心跳维持与接收方的连接(Connection)状态把消息发送到接收方。换言之,JBM判断自己与客户端(Consumer)之间连接正常的唯一条件就是JBossRemoting的心跳正常。然而,由于JBossRemoting客户端与服务端数据传输采用Socket协议,而客户端与服务端之间的连接(Connection)心跳则采用了RMI协议,并且所述Socket协议与RMI协议对网络质量有不同要求,这种差异将会造成由于Socket连接异常导致客户端与服务端之间的数据传输断开时,客户端与服务端之间的连接心跳依然正常的情况。在这种情况下,由于JBossRemoting心跳正常,JBM系统依然认为自己与客户端连接正常,依然正常转发消息,但此时消息已经无法通过Socket发送出去,从而积压在JBM消息队列和持久化数据库中,从而形成了大量消息积压的现象。
因此,如何及时清理消息积压,保证JBM系统运行的稳定性就是本领域技术人员所要解决的技术问题。
发明内容
本申请所要解决的技术问题是提供一种JBM系统的消息处理方法,用以确定从消息系统中消费消息较慢的慢客户端,及时清理慢客户端的消息积压,从而保证JBM系统运行的稳定性。
相应的,本申请还提供了一种JBM系统的消息处理装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请公开了一种JBM系统的消息处理方法,包括:
获取JBM系统当前连接的客户端;
在所述客户端中查找慢客户端;
断开JBM系统与所述慢客户端的连接。
优选地,所述获取JBM系统当前连接的客户端的步骤包括:
启动监测线程;
由所述监测线程获取JBM系统的活跃连接信息,并将所述JBM系统的活跃连接信息存储于内存数据结构Map中;其中,所述活跃连接信息为与JBM系统的心跳连接正常的客户端的信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐移动通信设备有限公司,未经大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210257118.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种LTE信号测试实训平台装置
- 下一篇:开式液压系统和工程机械