一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息不落地的网管告警处理方法及装置与流程

2022-02-23 01:11:25 来源:中国专利 TAG:


1.本发明涉及通信网络数据处理技术领域,尤其涉及一种消息不落地的网管告警处理方法及装置。


背景技术:

2.随着网络规模的不断扩大,网络体系的日渐复杂,同时通信领域涉及的厂家设备众多,使得综合网管要处理的数据量增大。综合网管系统主要由采集适配器、前端系统页面、后端数据库、前端数据库组成一套完整的体系结构。采集适配器通过厂家网管提供的北向接口提取数据,厂家网管通过各自的北向接口上报数据给采集适配器,以往的模式是将提取到的告警数据加工处理后存入后台数据库,再从后台数据库同步数据到前端数据库,前端页面以轮询的方式从前端数据库获取告警数据展示。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出http请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而http请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。而比较新的技术去做轮询的效果是comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在comet中,普遍采用的长链接,也会消耗服务器资源。定时轮询耗时较长,效率较低。比如以前客户端想知道服务端的处理进度,要不停地使用ajax进行轮询,让浏览器隔个几秒就向服务器发一次请求,这对服务器压力较大。另外一种轮询就是采用long poll的方式,这就跟打电话差不多,没收到消息就一直不挂电话,也就是说,客户端发起连接后,如果没消息,就一直不返回response给客户端,连接阶段一直是阻塞的。


技术实现要素:

3.针对现有技术中存在的问题,本发明实施例提供一种消息不落地的网管告警处理方法及装置。
4.第一方面,本发明实施例提供一种消息不落地的网管告警处理方法,包括:
5.基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;
6.所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;
7.将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;
8.接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。
9.进一步地,将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模
型发送至中间件,包括:
10.创建连接使用的工厂类jms connectionfactory;
11.使用管理对象jms connectionfactory建立连接connection,并启动;
12.使用连接connection建立会话session;
13.使用会话session和管理对象destination创建消息生产者messagesender;
14.使用消息生产者messagesender发送消息。
15.进一步地,还包括:
16.中间件接收以点对点信息传送模型发送的activemq的告警消息;接收步骤为:
17.创建连接使用的工厂类jms connectionfactory;
18.使用管理对象jms connectionfactory建立连接connection,并启动;
19.使用连接connection建立会话session;
20.使用会话session和管理对象destination创建消息接收者messagereceiver;
21.使用消息接收者messagereceiver接收消息。
22.进一步地,还包括:
23.对所述linkedblockingqueue消息队列设置putlock插入锁和takelock取出锁。
24.第二方面,本发明实施例提供了一种消息不落地的网管告警处理装置,包括:
25.获取模块,用于基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;
26.转化模块,用于所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;
27.发送模块,用于将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;
28.接收模块,用于接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。
29.进一步地,所述发送模块,用于:
30.创建连接使用的工厂类jms connectionfactory;
31.使用管理对象jms connectionfactory建立连接connection,并启动;
32.使用连接connection建立会话session;
33.使用会话session和管理对象destination创建消息生产者messagesender;
34.使用消息生产者messagesender发送消息。
35.进一步地,还包括:中间件模块,
36.所述中间件模块用于中间件接收以点对点信息传送模型发送的activemq的告警消息;接收步骤为:
37.创建连接使用的工厂类jms connectionfactory;
38.使用管理对象jms connectionfactory建立连接connection,并启动;
39.使用连接connection建立会话session;
40.使用会话session和管理对象destination创建消息接收者messagereceiver;
41.使用消息接收者messagereceiver接收消息。
42.进一步地,包括:设置模块,
43.所述设置模块,用于对所述linkedblockingqueue消息队列设置putlock插入锁和takelock取出锁。
44.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的消息不落地的网管告警处理方法的步骤。
45.第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的消息不落地的网管告警处理方法的步骤。
46.由上述技术方案可知,本发明实施例提供的消息不落地的网管告警处理方法及装置,通过基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。本发明能够使得告警数据得到及时处理上报,实现网管告警信息的不落地传输。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1为本发明一实施例提供的消息不落地的网管告警处理方法的流程示意图;
49.图2为本发明另一实施例提供的消息不落地的网管告警处理方法的数据流向示意图;
50.图3为本发明一实施例提供的消息不落地的网管告警处理装置的结构示意图;
51.图4为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
52.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面将通过具体的实施例对本发明提供的消息不落地的网管告警处理方法进行详细解释和说明。
53.图1为本发明一实施例提供的消息不落地的网管告警处理方法的流程示意图;如图1所示,该方法包括:
54.步骤101:基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据。
55.步骤102:所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件。
56.步骤103:将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件。
57.步骤104:接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。
58.在本实施例中,需要说明的是,websocket解决了http的这几个难题。当服务器完成协议升级后(http-》websocket),服务端可以主动推送信息给客户端,解决了轮询造成的同步延迟问题。由于websocket只需要一次http握手,服务端就能一直与客户端保持通信,直到关闭连接,这样就解决了服务器需要反复解析http协议,减少了资源的开销。因此,在这种情况下,html5定义了websocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。针对上述数据上报的现状,需要实现一种消息不落地的上报方式来提高时效性,为了更有利于业务的解耦和工程部署结构的分离,也有利于对activemq进行配置定制和优化独立,采用部署的方式使用activemq,即采集适配器提取到告警数据,通过activemq消息队列,将消息发送出去,由中间件对数据进行加工处理,再通过websocket消息发送给前端系统。使得告警数据能得到及时处理上报,实现网管告警消息的不落地传输。
59.在本实施例中,需要说明的是,在原始的告警传输模式中,从采集适配器提取到告警到前端系统页面的展示,需要等待两个定时任务的轮询,且http请求比较消耗资源,使得不能及时的根据告警内容反馈真实的问题。本发明实施例的主要目的是提供一种高性能的消息不落地网管告警处理方法(即消息不落地的网管告警处理方法),能够实时掌握告警情况。
60.为了更好的理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面的实施例。
61.第一,一种消息不落地的网管告警处理方法,包括告警报文的提取,解析,传输、存储、展示。
62.第二,采集适配器从北向接口提取告警数据,转化为通用告警格式,先存储在linkedblockingqueue队列,linkedblockingqueue继承abstractqueue,实现了blockingqueue,serializable接口。内部使用单向链表存储数据。默认初始化容量是integer最大值。插入和取出使用不同的锁,putlock插入锁,takelock取出锁,添加和删除数据的时候可以并行。多cpu情况下可以同一时刻既消费又生产。再借助存储过程关联告警资源数据,存储到采集数据库。
63.第三,同时通过activemq消息队列将通用告警格式的告警以点对点消息传送模型发送出去。apache activemq是apache软件基金会所研发的开放源代码消息中间件,由于activemq是一个纯java程序,因此只需要操作系统支持java虚拟机,activemq便可执行。点对点的消息发送方式主要建立在message queue,sender,reciever上,message queue存贮消息,sender发送消息,receiver接收消息。具体点就是sender client发送message queue,而receiver client从queue中接收消息和发送”消息已接收“到queue,确认消息接收。消息发送客户端和接收客户端没有时间上的依赖,发送客户端可以在任何时刻发送消
息到queue,而不需要知道接收客户端是不是在运行。
64.第四,中间件接收到activemq的告警后,根据用户自定义的规则来过滤告警,将没有过滤的告警存入数据库,然后根据生成规则判断是否要生成级别较高的故障信息存库,同时以websocket方式发送给前端系统页面。websocket是一种在单个tcp连接上进行全双工通信的协议,websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocket api中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。websocket优势在于能较少的控制开销、能保持连接状态、更好的二进制支持、可以支持扩展、更好的压缩效果。
65.第五,中间件将告警的接收,解析处理、发送到前端,入库这一连串的过程组装在一起。
66.第六,流程结构分为告警采集层,告警业务处理层,告警传输层,告警存储层,告警展示层。
67.第七,采集程序开发语言为java,运用spring框架,quartz定时器,c3p0数据连接池,oracle数据库,activemq消息队列,websocket通信协议。
68.第八,高性能的消息不落地的数据流向图如图2所示。
69.由上面技术方案可知,本发明实施例提供的消息不落地的网管告警处理方法,通过基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。本发明能够使得告警数据得到及时处理上报,实现网管告警信息的不落地传输。
70.在上述实施例的基础上,在本实施例中,将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件,包括:
71.创建连接使用的工厂类jms connectionfactory;
72.使用管理对象jms connectionfactory建立连接connection,并启动;
73.使用连接connection建立会话session;
74.使用会话session和管理对象destination创建消息生产者messagesender;
75.使用消息生产者messagesender发送消息。
76.由上面技术方案可知,本发明实施例提供的消息不落地的网管告警处理方法,通过activemq和websocket两种方式上报数据给前端展示,实现了高性能的消息不落地的告警处理方法,应用成效显著,可提高网络运行维护水平和效率,应用于综合网管系统管理多个厂家网管告警数据的情况。
77.在上述实施例的基础上,在本实施例中,还包括:
78.中间件接收以点对点信息传送模型发送的activemq的告警消息;接收步骤为:
79.创建连接使用的工厂类jms connectionfactory;
80.使用管理对象jms connectionfactory建立连接connection,并启动;
81.使用连接connection建立会话session;
82.使用会话session和管理对象destination创建消息接收者messagereceiver;
83.使用消息接收者messagereceiver接收消息。
84.由上面技术方案可知,本发明实施例提供的消息不落地的网管告警处理方法,通过activemq和websocket两种方式上报数据给前端展示,实现了高性能的消息不落地的告警处理方法,应用成效显著,可提高网络运行维护水平和效率,应用于综合网管系统管理多个厂家网管告警数据的情况。
85.在上述实施例的基础上,在本实施例中,还包括:
86.对所述linkedblockingqueue消息队列设置putlock插入锁和takelock取出锁。
87.为了为了更好的理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面的实施例。
88.1、采集适配器用java语言开发,调用厂家的北向接口获取告警数据。
89.2、采集适配器将告警事件转化为自定义的通用告警类。
90.3、将通用告警事件放到linkedblockingqueue消息队列,linkedblockingqueue是一个单向链表实现的阻塞队列,先进先出的顺序。支持多线程并发操作。相比于数组实现的arrayblockingqueue的有界,linkedblockingqueue可认为是无界队列。多用于任务队列。
91.4、定期将队列中的消息转存至普通消息队列中,并按时间和告警类型排序。
92.5、将告警队列的消息循环通过activemq消息发送出去。发送消息的基本步骤:
93.(1)创建连接使用的工厂类jms connectionfactory。
94.(2)使用管理对象jms connectionfactory建立连接connection,并启动。
95.(3)使用连接connection建立会话session。
96.(4)使用会话session和管理对象destination创建消息生产者messagesender。
97.(5)使用消息生产者messagesender发送消息。
98.6、中间件接收到activemq的告警消息。中间件从jms接收消息的步骤:
99.(1)创建连接使用的工厂类jms connectionfactory。
100.(2)使用管理对象jms connectionfactory建立连接connection,并启动。
101.(3)使用连接connection建立会话session。
102.(4)使用会话session和管理对象destination创建消息接收者messagereceiver。
103.(5)使用消息接收者messagereceiver接收消息,需要用setmessagelistener将messagelistener接口绑定到messagereceiver,消息接收者必须实现了messagelistener接口,需要定义onmessage事件方法。
104.7、中间件调用存储过程,存储过程的功能是过滤网管告警,关联资源,根据生成故障规则生成故障,存库。
105.8、中间件将加工好的告警数据和生成的故障数据通过websocket消息发送出去。
106.9、前端页面接收websocket消息显示。
107.本发明实施例提供的消息不落地的网管告警处理方法,具备告警消息的快速传输并展示的能力,activemq的加入使得消息持久化,实现断电或者关机不丢消息;与系统定时轮询的从数据库获取数据模式相比,具备高效性、准确性、及时性。实现在同一平台上对各子网设备的“集中监控、集中维护、集中管理”。实现高性能的网管告警消息不落地的处理。
108.图3为本发明一实施例提供的消息不落地的网管告警处理装置的结构示意图,如图3所示,该装置包括:获取模块201、转化模块202、发送模块203和接收模块204,其中:
109.其中,获取模块201,用于基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;
110.转化模块202,用于所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;
111.发送模块203,用于将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;
112.接收模块204,用于接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。
113.本发明实施例提供的消息不落地的网管告警处理装置具体可以用于执行上述实施例的消息不落地的网管告警处理方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。
114.基于相同的发明构思,本发明实施例提供一种电子设备,参见图4,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;
115.其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。
116.基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,基于java语言开发的采集适配器,调用厂家的北向接口获取告警数据;所述采集适配器将所述告警数据转化为自定义的通用告警格式,形成通用告警格式的通用告警事件;将所述通用告警事件存储至linkedblockingqueue消息队列,并定期将所述linkedblockingqueue消息队列中的消息转存至普通消息队列中以点对点信息传送模型发送至中间件;接收所述中间件反馈的websocket消息,并在前端页面进行websocket消息显示;其中,所述websocket消息包括所述中间件加工好的告警数据和生成的告警数据。
117.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳
动的情况下,即可以理解并实施。
118.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,
119.服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
120.此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
121.此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
122.此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
123.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献