CN106375337A - 一种基于多线程的报文交互方法及装置 - Google Patents
一种基于多线程的报文交互方法及装置 Download PDFInfo
- Publication number
- CN106375337A CN106375337A CN201610871948.3A CN201610871948A CN106375337A CN 106375337 A CN106375337 A CN 106375337A CN 201610871948 A CN201610871948 A CN 201610871948A CN 106375337 A CN106375337 A CN 106375337A
- Authority
- CN
- China
- Prior art keywords
- thread
- list
- message
- record
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于多线程的报文交互方法及装置,应用在管理设备中,所述方法包括:确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值;当所述线程池中包含的线程的数量大于或者等于所述线程阈值时,从所述包含的线程中为设备信息表项确定第一线程,所述设备信息表项为预设的设备信息列表中记录的;通过所述第一线程向基于所述设备信息表项确定的被管理设备发送第一报文;通过第二线程接收所述被管理设备根据所述第一报文返回的第二报文。应用本发明实施例,当被管理设备的数量较大时,管理设备无需建立过多线程,节省了系统资源,提高了系统性能。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于多线程的报文交互方法及装置。
背景技术
随着互联网数据通信技术的高速发展,组网的结构变得越来越复杂,对组网中的网络设备的监控与管理也越来越重要。
现有技术方案中,管理设备采用多线程方式与各个被管理设备之间进行报文交互,管理设备分别与各个被管理设备之间建立对应的线程,当被管理设备数量较大时,管理设备建立的线程过多,消耗了大量系统资源,降低了系统性能。
发明内容
有鉴于此,本发明提供一种基于多线程的报文交互方法及装置,以解决现有技术中管理设备建立的线程过多,大量的系统资源被消耗,系统性能低的问题。
为实现上述目的,本发明提供技术方案如下:
根据本发明的第一方面,提出了一种基于多线程的报文交互方法,应用在管理设备中,所述方法包括:
确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值;
当所述线程池中包含的线程的数量大于或者等于所述线程阈值时,从所述包含的线程中为设备信息表项确定第一线程,所述设备信息表项为预设的设备信息列表中记录的;
通过所述第一线程向基于所述设备信息表项确定的被管理设备发送第一报文;
通过第二线程接收所述被管理设备根据所述第一报文返回的第二报文。
根据本发明的第二方面,提出了一种基于多线程的报文交互装置,包括:
线程阈值比较模块,用于确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值;
第一线程确定模块,用于当所述线程阈值比较模块中所述线程池中包含的线程的数量大于或者等于所述线程阈值时,从所述包含的线程中为设备信息表项确定第一线程,所述设备信息表项为预设的设备信息列表中记录的;
第一报文发送模块,用于通过所述第一线程确定模块中确定的所述第一线程向基于所述设备信息表项确定的被管理设备发送第一报文;
第二报文接收模块,用于通过第二线程接收第二报文,所述第二报文为所述被管理设备根据所述第一报文发送模块发送的所述第一报文返回的。
由以上技术方案可见,当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备从线程池中包含的线程中为设备信息表项确定第一线程。当被管理设备的数量较大时,管理设备无需建立过多线程,节省了系统资源,提高了系统性能。
附图说明
图1是应用本发明实施例基于多线程的报文交互的一个应用场景示意图;
图2是本发明提供的一个基于多线程的报文交互方法的实施例流程图;
图3是本发明提供的另一个基于多线程的报文交互方法的实施例流程图;
图4是本发明提供的再一个基于多线程的报文交互方法的实施例流程图;
图5是本发明提供的一种管理设备的硬件结构图;
图6是本发明提供的一个基于多线程的报文交互装置的实施例框图;
图7是本发明提供的另一个基于多线程的报文交互装置的实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是应用本发明实施例基于多线程的报文交互的一个应用场景示意图,如图1所示,该网络架构图中包括:管理设备11、被管理设备12、被管理设备13、被管理设备14。其中,管理设备11为专门用来进行网络管理的服务器,也可以为安装在网络设备中执行管理功能的软件程序,管理设备11可以通过简单网络管理协议(Simple Network ManagementProtocol,SNMP)对网络节点进行控制和监视;被管理设备12、被管理设备13、被管理设备14可以为安装了SNMP管理软件的被管理设备,被管理设备还可以为路由器、交换机等网络设备,被管理设备12、被管理设备13、被管理设备14用来维护自身的信息数据并将自身的信息数据上传给管理设备11。本领域技术人员可以理解的是,此处管理设备11、被管理设备12、被管理设备13、被管理设备14之间的连接方式仅为示例性说明,其并不能形成对本发明的限制。通常管理设备11根据被管理设备的数量在线程池中设定线程阈值,被管理设备的数量与线程之间具有一对应关系,该对应关系可以为正比关系,被管理设备的数量越多,线程阈值越大。在一实施例中,当线程池中包含的线程数量超出线程阈值时,管理设备11从线程池中包含的线程中为被管理设备12确定一个线程。本发明实施例提出的一种基于多线程的报文交互方法,解决了现有技术中由于管理设备11建立的线程过多,大量的系统资源被消耗,系统性能低的问题。
为对本发明进行进一步说明,提供下列实施例:
图2是本发明提供的一个基于多线程的报文交互方法的实施例流程图,本发明实施例结合图1进行示例性说明,如图2所示,包括如下步骤:
步骤201:确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值。
步骤202:当线程池中包含的线程的数量大于或者等于线程阈值时,从包含的线程中为设备信息表项确定第一线程,设备信息表项为预设的设备信息列表中记录的。
步骤203:通过第一线程向基于设备信息表项确定的被管理设备发送第一报文。
步骤204:通过第二线程接收被管理设备根据第一报文返回的第二报文。
在步骤201中,在一实施例中,线程池用于存放线程,此处线程池的建立为现有技术,故不作详述。管理设备11根据被管理设备的数量在线程池中设定线程阈值,被管理设备的数量与线程之间具有一对应关系,该对应关系可以为正比关系,即被管理设备的数量越多,线程阈值越大。例如,被管理设备的数量为100,线程阈值为10;被管理设备的数量为1000,线程阈值为100。
在步骤202中,在一实施例中,管理设备11接收到预设的设备信息列表中的一条设备信息表项,管理设备11针对该设备信息表项建立一个线程,并将该线程记录在线程池中,当线程池中线程的数量大于或者等于线程阈值时,管理设备11从线程池中包含的线程中为被管理设备12确定一个线程,该确定的线程即为第一线程,第一线程用于发送第一报文,第一报文可以为SNMP请求报文、标签分发协议(Label Distribution Protocol,LDP)-HELLO报文等。例如,线程池中包含线程1、线程2、线程3、线程4、线程5、线程6、线程7、线程8、线程9、线程10。管理设备11需要对被管理设备12建立第11个线程,第11个线程超出了线程阈值10,管理设备11从线程池中包含的线程1、线程2、线程3、线程4、线程5、线程6、线程7、线程8、线程9、线程10中通过轮询的方式进行选择,例如管理设备11为被管理设备12对应的设备信息表项确定由线程1进行处理。
其中,设备信息表项为预设的设备信息列表中记录的,设备信息表项中包括被管理设备的IP地址、端口、协议信息。管理设备11基于设备信息表项生成第一报文,并基于设备信息表项中的被管理设备的IP地址、端口、协议信息确定被管理设备。如下表1所示,为设备信息列表的示例:
表1
序号 | IP地址 | 端口 | 协议信息 |
1 | 192.168.2.01 | 81 | TCP |
2 | 192.168.2.02 | 82 | TCP |
3 | 192.168.2.03 | 83 | TCP |
表1中,例如,序号1对应的192.168.2.01、81、TCP为被管理设备12对应的设备信息表项;序号2对应的192.168.2.02、82、TCP为被管理设备13对应的设备信息表项;序号3对应的192.168.2.03、83、TCP为被管理设备14对应的设备信息表项。例如,管理设备11基于第一条设备信息表项中记录的192.168.2.01、81、TCP生成SNMP请求报文,并基于192.168.2.01、81、TCP确定被管理设备12。
在步骤203中,在一实施例中,管理设备11通过第一线程向被管理设备12发送第一报文。结合步骤202,例如,管理设备11通过线程1向被管理设备12发送SNMP请求报文。
在步骤204中,在一实施例中,第二线程用于管理设备11接收第二报文。其中,第二线程可以与第一线程为同一线程也可以为不同线程;第二报文为被管理设备12根据第一报文返回的,第二报文例如为SNMP响应报文。
通过本发明实施例,当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备从线程池中包含的线程中为设备信息表项确定第一线程。当被管理设备的数量较大时,管理设备无需建立过多线程,节省了系统资源,提高了系统性能。
为对本发明进行进一步说明,提供下列实施例:
图3是本发明提供的另一个基于多线程的报文交互方法的实施例流程图,本发明实施例结合图1、图2进行示例性说明,如图3所示,包括步骤如下:
步骤301:管理设备确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值。
步骤302:当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备采用轮询算法在预设的多个第一任务列表中选择一个列表,将选择的列表确定为第二任务列表,多个第一任务列表中的每个第一任务列表用于记录管理设备的发送任务信息,每个第一任务列表对应线程池中包含的一个线程。
步骤303:管理设备将设备信息表项记录在第二任务列表中,第二任务列表对应的线程为第一线程,设备信息表项为预设的设备信息列表中记录的。
步骤304:管理设备基于设备信息表项建立第一报文。
步骤305:当第一线程处于空闲时,管理设备通过第一线程向基于设备信息表项确定的被管理设备发送第一报文。
步骤306:被管理设备根据第一报文向管理设备返回第二报文。
步骤307:管理设备采用轮询算法在预设的多个第三任务列表中选择一个列表,将选择的列表确定为第四任务列表,多个第三任务列表中的每个第三任务列表用于记录管理设备的接收任务信息,每个第三任务列表对应线程池中包含的一个线程。
步骤308:管理设备将第二报文记录在第四任务列表中,第四任务列表对应的线程为第二线程。
步骤309:管理设备通过第二线程对该第二报文进行处理。
在步骤301中:管理设备11接收到预设的设备信息列表中的一条设备信息表项时,管理设备11针对该设备信息表项建立一个线程,并将该线程记录在线程池中,管理设备11记录线程池中包含的线程的数量。管理设备11将线程池中包含的线程的数量与预设的线程阈值进行比较,判断线程池中包含的线程的数量是否大于或者等于预设的线程阈值。例如,预设的线程阈值为10,当线程池中包含的线程的数量为11时,管理设备11确定线程池中包含的线程的数量11大于预设的线程阈值10。
在步骤302中,管理设备11每建立一个线程,为建立的线程生成一个第一任务列表,每个第一任务列表用于记录管理设备11的发送任务信息,发送任务信息为管理设备11对外发送的待处理任务的信息,发送任务信息例如为SNMP请求报文、LDP-HELLO报文、设备信息表项等。当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备11采用轮询算法在预设的多个第一任务列表中选择一个列表,管理设备11将选择的列表确定为第二任务列表。此处以表2.1、2.2、2.3所示的三个第一任务列表进行示例性说明:
表2.1
线程1 | IP地址 | 端口 | 协议信息 |
线程1 | 192.168.2.01 | 80 | TCP |
线程1 | 192.168.2.04 | 84 | TCP |
线程1 | 192.168.2.07 | 87 | TCP |
表2.2
线程2 | IP地址 | 端口 | 协议信息 |
线程2 | 192.168.2.02 | 82 | TCP |
线程2 | 192.168.2.05 | 85 | TCP |
线程2 | 192.168.2.08 | 88 | TCP |
表2.3
线程3 | IP地址 | 端口 | 协议信息 |
线程3 | 192.168.2.03 | 83 | TCP |
线程3 | 192.168.2.06 | 86 | TCP |
线程3 | 192.168.2.09 | 89 | TCP |
表2.1、表2.2、表2.3分别为线程1、线程2、线程3对应的第一任务列表。例如,表2.1中记录了线程1需要处理的三条设备信息表项:192.168.2.01、81、TCP;192.168.2.04、84、TCP;192.168.2.07、87、TCP。表2.2中记录了线程2需要处理的三条设备信息表项:192.168.2.02、82、TCP;192.168.2.05、85、TCP;192.168.2.08、88、TCP。表2.3中记录了线程3需要处理的三条设备信息表项:192.168.2.03、83、TCP;192.168.2.06、86、TCP;192.168.2.09、89、TCP。例如,管理设备11采用轮询算法在表2.1、表2.2、表2.3中选择表2.1所示的第一任务列表,表2.1所示的第一任务列表即被管理设备11确定为第二任务列表。
在步骤303中,管理设备11将被管理设备12对应的设备信息表项记录在第二任务列表中,第二任务列表对应的线程为第一线程,设备信息表项为预设的设备信息列表中记录的。结合表1及表2.1,例如,管理设备11将表1所示的被管理设备12对应的192.168.2.01、81、TCP记录在表2.1中,表2.1对应的线程为线程1。
在步骤304中,管理设备11基于设备信息表项建立第一报文。例如,管理设备11基于被管理设备12对应的192.168.2.01、81、TCP建立SNMP请求报文。此处SNMP请求报文的建立过程为现有技术,故不作详述。
在步骤305中,当第一线程处于空闲时,管理设备11通过第一线程向基于设备信息表项确定的被管理设备发送第一报文。例如,管理设备11基于192.168.2.01、81、TCP确定的被管理设备12,当线程1空闲时,管理设备11通过线程1向被管理设备12发送SNMP请求报文。
在步骤306中,例如,被管理设备12根据SNMP请求报文向管理设备11返回SNMP响应报文。
在步骤307中,管理设备11每建立一个线程,为建立的线程生成一个第三任务列表,每个第三任务列表用于记录管理设备11的接收任务信息,接收任务信息为管理设备11接收外界发送的待处理任务的信息,接收任务信息例如为SNMP响应报文、LDP通知报文等。当管理设备11接收到一个任务信息时,管理设备11采用轮询算法在预设的多个第三任务列表中选择一个列表,管理设备11将选择的列表确定为第四任务列表。以表3.1、表3.2、表3.3分别为对应线程1、线程2、线程3的三个第三任务列表,以及接收任务信息包括报文A、报文B、报文C、报文D、报文E、报文F、报文G、报文H、报文I为例进行示例性说明:
表3.1
线程1 | 接收任务信息 |
线程1 | 报文A |
线程1 | 报文D |
线程1 | 报文G |
表3.2
线程2 | 接收任务信息 |
线程2 | 报文B |
线程2 | 报文E |
线程2 | 报文H |
表3.3
线程3 | 接收任务信息 |
线程3 | 报文C |
线程3 | 报文F |
线程3 | 报文I |
表3.1中记录了线程1需要处理的三个报文:报文A、报文D、报文G;表3.2中记录了线程2需要处理的三个报文:报文B、报文E、报文H;表3.3中记录了线程3需要处理的三个报文:报文C、报文F、报文I。例如,管理设备11采用轮询算法在表3.1、表3.2、表3.3中选择表3.1所示的第三任务列表,管理设备11将表3.1所示的第三任务列表确定为第四任务列表。
在步骤308中,管理设备11将接收到的第二报文记录在第四任务列表中,第四任务列表对应的线程为第二线程,第二线程可以与第一线程为同一线程也可以为不同线程。结合表3.1,以SNMP响应报文为报文A为例,管理设备11将接收到的报文A记录在表3.1中的第一条表项中,表3.1对应的线程为线程1。
在步骤309中,管理设备11通过第二线程对该第二报文进行处理。例如,管理设备11通过线程1对SNMP响应报文进行处理。线程1可以基于SNMP响应报文中携带的差错状态信息对SNMP响应报文进行相应处理,也可以将SNMP响应报文发送到系统内存,由系统内存统一对SNMP响应报文进行处理。此处SNMP响应报文的处理过程为现有技术,故不作详述。
通过本发明实施例,当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备11从线程池中包含的线程中为设备信息表项确定第一线程。当被管理设备数量较大时,管理设备11无需建立过多线程,节省了系统资源,提高了系统性能。此外,管理设备11接收第二报文时,采用轮询方式在包含的线程中为第二报文确定第二线程,避免管理设备11基于第二报文新建线程,节省了系统资源,提高了系统性能。
图4是本发明提供的再一个基于多线程的报文交互方法的实施例流程图,本发明实施例结合图1、图2、图3进行示例性说明,如图4所示,包括如下步骤:
步骤401:管理设备确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值。
步骤402:当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备从包含的线程中为设备信息表项确定第一线程,设备信息表项为预设的设备信息列表中记录的。
步骤403:管理设备通过第一线程向基于设备信息表项确定的被管理设备发送第一报文。
步骤404:管理设备将第一报文中携带的第一标识记录在预设的状态信息列表中,状态信息列表包括至少一条第一表项,第一表项用于记录异常信息。
步骤405:管理设备记录发送第一报文时的发送时间点。
步骤406:被管理设备根据第一报文向管理设备返回第二报文。
步骤407:管理设备将第二报文携带的第二标识与状态信息列表中的各条第一表项中记录的第三标识逐一进行匹配。
步骤408:当第二标识与状态信息列表中的一条第一表项中记录的第三标识匹配成功时,管理设备将该一条第一表项确定为第二表项,将第二表项中记录的标识确定为第四标识,将第二报文中携带的异常信息记录在第四标识对应的第二表项中。
步骤409:若当前时间点基于发送时间点计算得出超过第一线程记录的预设的响应阈值时,管理设备将预设的状态信息列表中的第一标识对应的响应状态信息进行标记。
此处步骤401-步骤403的描述可以参见图3所示步骤301-步骤305的相关描述,在此不再详述。
在步骤404中,管理设备11将第一报文中携带的第一标识记录在预设的状态信息列表中,状态信息列表包括至少一条第一表项,第一表项用于记录异常信息。其中,第一标识为第一报文中携带的标识,该标识可以区分不同的第一报文,例如,第一标识可以为SNMP请求报文中携带的请求标识符,SNMP请求报文中携带的请求标识符为一个整数值,该请求标识符可以区分不同的SNMP请求报文。SNMP请求报文中携带的请求标识符为线程基于设备信息表项建立SNMP请求报文时所生成的。该请求标识符可使线程识别返回的SNMP响应报文对应的SNMP请求报文;异常信息为第二报文携带的,该异常信息可以通过不同数字、字母或两者的组合对不同异常状态进行区分。例如,异常信息可以为SNMP响应报文携带的差错状态信息。如下表4所示,以第三标识包括501、502、503对状态信息列表进行示例说明:
表4
序号 | 第三标识 | 异常信息 | 响应状态信息 |
1 | 501 | - | - |
2 | 502 | - | - |
3 | 503 | - | - |
表4中,第三标识501、第三标识502、第三标识503分别为管理设备11针对被管理设备12、被管理设备13、被管理设备14生成的SNMP请求报文中携带的标识。例如,管理设备11将针对被管理设备12生成的SNMP请求报文中携带的501记录在预设的状态信息列表中。异常信息和响应状态信息中标记的“-”表示此时并未记录。
在步骤405中,管理设备11记录发送第一报文时的发送时间点。例如,管理设备11记录发送SNMP请求报文的发送时间点为11:08:00。
本领域技术人员可以理解的是,步骤404和步骤405并无时序上的先后关系,也可以先执行步骤405再执行步骤404,还可以同时执行步骤404和步骤405。
在步骤406中,被管理设备12根据第一报文向管理设备11返回第二报文,管理设备11通过第二线程接收该第二报文。例如,被管理设备12根据SNMP请求报文向管理设备11返回SNMP响应报文,管理设备11通过第二线程接收SNMP响应报文。此处第二线程可以参照图3所示步骤307-步骤308得到,也可以由管理设备11新建得到。
在步骤407中,管理设备11将第二报文携带的第二标识与状态信息列表中的各条第一表项中记录的第三标识逐一进行匹配。结合步骤406及表4,例如,管理设备11将被管理设备12返回的SNMP响应报文携带的第二标识501与表4中记录的第三标识501、第三标识502、第三标识503逐一进行匹配。
在步骤408中,当第二标识与状态信息列表中的一条第一表项中记录的第三标识匹配成功时,管理设备11将该一条第一表项确定为第二表项,将第二表项中记录的标识确定为第四标识,将第二报文中携带的异常信息记录在第四标识对应的第二表项中。例如,管理设备11将第二标识501与表4中第一条表项中记录的第三标识501匹配成功,管理设备11将表4中该第一条表项确定为第二表项,将第二表现中记录的501确定为第四标识,管理设备11将SNMP响应报文中携带的“0”记录在第四标识501对应的第二表项中。第三标识502对应的异常信息“4”以及第三标识503对应的异常信息“2”分别为被管理设备13、被管理设备14返回的SNMP响应报文中携带的。以SNMP响应报文携带的第二标识为差错状态信息为例,如表4.1所示:
表4.1
序号 | 第三标识 | 异常信息 | 响应状态信息 |
1 | 501 | 0 | - |
2 | 502 | 4 | - |
3 | 503 | 2 | - |
如下表5所示,为异常信息不同数值代表的含义示例:
表5
表5所为SNMP响应报文中携带的差错状态信息的数值所代表不同异常状态的示例,差错状态信息的不同数值代表的含义为现有技术,此处描述仅便于本领域技术人员更好地理解本实施例,其并不能形成对本发明的限制。结合表5,表4.1中被管理设备12返回的SNMP响应报文中携带的“0”,表示被管理设备12返回的SNMP响应报文一切正常。
在步骤409中,步骤404中的第一表项还用于记录响应状态信息,若当前时间点基于发送时间点计算得出超过第一线程记录的预设的响应阈值时,管理设备11将预设的状态信息列表中的第一标识对应的响应状态信息进行标记。如表6所示:
表6
序号 | 第三标识 | 异常信息 | 响应状态信息 |
1 | 501 | 0 | 1 |
2 | 502 | 4 | - |
3 | 503 | 2 | - |
表6中,响应状态信息用于标记第一报文对应的第二报文的响应是否超时。“-”表示未标记、“1”表示标记为超时。结合步骤405,例如,发送时间点为11:08:00、当前时间点为11:08:40、响应阈值为3秒,管理设备11通过公式11:08:40-11:08:00=00:00:40计算得出00:00:40>00:00:30,SNMP响应报文的响应超时,管理设备11将SNMP请求报文在状态信息列表中的501对应的响应状态信息标记为“1”,该SNMP请求报文被确定为响应异常。当管理设备11需要再次对该SNMP请求报文进行处理时,管理设备11优先处理其他待处理报文,避免该SNMP请求报文出现响应异常时,对其他待处理报文产生时间延迟。
本发明实施例中,管理设备11通过建立状态信息列表,将第二报文的异常信息统一记录在状态信息列表中,便于管理设备11对第二报文进行归类管理;此外,若第二报文的响应超时,管理设备11根据第一标识在状态信息列表中对第一报文对应的响应状态信息进行标记。当管理设备11需要再次对该第一报文进行处理时,管理设备11优先处理其他报文,缩短了系统处理时间。
对应于上述基于多线程的报文交互方法,本发明还提出了图5所示的管理设备的硬件结构图。请参考图5,在硬件层面,该管理设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于多线程的报文交互装置。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图6是本发明提供的一个基于多线程的报文交互的装置的实施例框图,如图6所示,该基于多线程的报文交互装置可以包括:线程阈值比较模块61、第一线程确定模块62、第一报文发送模块63、第二报文接收模块64,其中:
线程阈值比较模块61,用于确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值;
第一线程确定模块62,用于当线程阈值比较模块61中线程池中包含的线程的数量大于或者等于线程阈值时,从包含的线程中为设备信息表项确定第一线程,设备信息表项为预设的设备信息列表中记录的;
第一报文发送模块63,用于通过第一线程确定模块62中确定的第一线程向基于设备信息表项确定的被管理设备发送第一报文;
第二报文接收模块64,用于通过第二线程接收第二报文,第二报文为被管理设备根据第一报文发送模块63发送的第一报文返回的。
图7是本发明提供的另一个基于多线程的报文交互的装置的实施例框图,如图7所示,在上述图6所示实施例的基础上,第一线程确定模块62可包括:
第二任务列表确定单元621,用于采用轮询算法在预设的多个第一任务列表中选择一个列表,将选择的列表确定为第二任务列表,多个第一任务列表中的每个第一任务列表用于记录管理设备的发送任务信息,每个第一任务列表对应线程池中包含的一个线程;
第一线程确定单元622,用于将设备信息表项记录在第二任务列表确定单元621中确定的第二任务列表中,第二任务列表对应的线程为第一线程。
在一实施例中,基于多线程的报文交互装置还包括:
第四任务列表确定模块65,用于采用轮询算法在预设的多个第三任务列表中选择一个列表,将选择的列表确定为第四任务列表,多个第三任务列表中的每个第三任务列表用于记录管理设备的接收任务信息,每个第三任务列表对应线程池中包含的一个线程;
第二线程确定模块66,用于将第二报文接收模块64中接收的第二报文记录在第四任务列表中,第四任务列表对应的线程为第二线程。
在一实施例中,基于多线程的报文交互装置还包括:
第一标识记录模块67,用于将第一报文中携带的第一标识记录在预设的状态信息列表中,状态信息列表包括至少一条第一表项,第一表项用于记录异常信息;
第三标识匹配模块68,用于将第二报文携带的第二标识与状态信息列表中的各条第一表项中记录的第三标识逐一进行匹配;
异常信息记录模块69,用于当第三标识匹配模块68中第二标识与状态信息列表中的一条第一表项中记录的第三标识匹配成功时,将一条第一表项确定为第二表项,将第二表项中记录的标识确定为第四标识,将第二报文中携带的异常信息记录在第四标识对应的第二表项中。
在一实施例中,第一表项还用于记录响应状态信息,基于多线程的报文交互装置还包括:
发送时间点记录模块70,用于记录第一报文发送模块63中发送第一报文时的发送时间点;
响应状态信息标记模块71,用于若当前时间点基于发送时间点记录模块70中记录的发送时间点计算得出超过第一线程记录的预设的响应阈值时,将预设的状态信息列表中的第一标识对应的响应状态信息进行标记。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,当线程池中包含的线程的数量大于或者等于线程阈值时,管理设备从线程池中包含的线程中为设备信息表项确定第一线程。当被管理设备的数量较大时,管理设备无需建立过多线程,节省了系统资源,提高了系统性能。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种基于多线程的报文交互方法,应用在管理设备中,其特征在于,所述方法包括:
确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值;
当所述线程池中包含的线程的数量大于或者等于所述线程阈值时,从所述包含的线程中为设备信息表项确定第一线程,所述设备信息表项为预设的设备信息列表中记录的;
通过所述第一线程向基于所述设备信息表项确定的被管理设备发送第一报文;
通过第二线程接收所述被管理设备根据所述第一报文返回的第二报文。
2.根据权利要求1所述的方法,其特征在于,所述从所述包含的线程中为设备信息表项确定第一线程,包括:
采用轮询算法在预设的多个第一任务列表中选择一个列表,将所述选择的列表确定为第二任务列表,所述多个第一任务列表中的每个第一任务列表用于记录所述管理设备的发送任务信息,所述每个第一任务列表对应所述线程池中包含的一个线程;
将所述设备信息表项记录在所述第二任务列表中,所述第二任务列表对应的线程为所述第一线程。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采用轮询算法在预设的多个第三任务列表中选择一个列表,将所述选择的列表确定为第四任务列表,所述多个第三任务列表中的每个第三任务列表用于记录所述管理设备的接收任务信息,所述每个第三任务列表对应所述线程池中包含的一个线程;
将所述第二报文记录在所述第四任务列表中,所述第四任务列表对应的线程为所述第二线程。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一报文中携带的第一标识记录在预设的状态信息列表中,所述状态信息列表包括至少一条第一表项,所述第一表项用于记录异常信息;
将所述第二报文携带的第二标识与所述状态信息列表中的各条第一表项中记录的第三标识逐一进行匹配;
当所述第二标识与所述状态信息列表中的一条第一表项中记录的第三标识匹配成功时,将所述一条第一表项确定为第二表项,将所述第二表项中记录的标识确定为第四标识,将所述第二报文中携带的异常信息记录在所述第四标识对应的所述第二表项中。
5.根据权利要求4所述的方法,其特征在于,所述第一表项还用于记录响应状态信息,所述方法还包括:
记录发送所述第一报文时的发送时间点;
若当前时间点基于所述发送时间点计算得出超过所述第一线程记录的预设的响应阈值时,将所述预设的状态信息列表中的所述第一标识对应的响应状态信息进行标记。
6.一种基于多线程的报文交互装置,其特征在于,所述装置包括:
线程阈值比较模块,用于确定线程池中包含的线程的数量是否大于或者等于预设的线程阈值;
第一线程确定模块,用于当所述线程阈值比较模块中所述线程池中包含的线程的数量大于或者等于所述线程阈值时,从所述包含的线程中为设备信息表项确定第一线程,所述设备信息表项为预设的设备信息列表中记录的;
第一报文发送模块,用于通过所述第一线程确定模块中确定的所述第一线程向基于所述设备信息表项确定的被管理设备发送第一报文;
第二报文接收模块,用于通过第二线程接收第二报文,所述第二报文为所述被管理设备根据所述第一报文发送模块发送的所述第一报文返回的。
7.根据权利要求6所述的装置,其特征在于,所述第一线程确定模块包括:
第二任务列表确定单元,用于采用轮询算法在预设的多个第一任务列表中选择一个列表,将所述选择的列表确定为第二任务列表,所述多个第一任务列表中的每个第一任务列表用于记录所述管理设备的发送任务信息,所述每个第一任务列表对应所述线程池中包含的一个线程;
第一线程确定单元,用于将所述设备信息表项记录在所述第二任务列表确定单元中确定的所述第二任务列表中,所述第二任务列表对应的线程为所述第一线程。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第四任务列表确定模块,用于采用轮询算法在预设的多个第三任务列表中选择一个列表,将所述选择的列表确定为第四任务列表,所述多个第三任务列表中的每个第三任务列表用于记录所述管理设备的接收任务信息,所述每个第三任务列表对应所述线程池中包含的一个线程;
第二线程确定模块,用于将所述第二报文接收模块中接收的所述第二报文记录在所述第四任务列表中,所述第四任务列表对应的线程为所述第二线程。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一标识记录模块,用于将所述第一报文中携带的第一标识记录在预设的状态信息列表中,所述状态信息列表包括至少一条第一表项,所述第一表项用于记录异常信息;
第三标识匹配模块,用于将所述第二报文携带的第二标识与所述状态信息列表中的各条第一表项中记录的第三标识逐一进行匹配;
异常信息记录模块,用于当所述第三标识匹配模块中所述第二标识与所述状态信息列表中的一条第一表项中记录的第三标识匹配成功时,将所述一条第一表项确定为第二表项,将所述第二表项中记录的标识确定为第四标识,将所述第二报文中携带的异常信息记录在所述第四标识对应的所述第二表项中。
10.根据权利要求9所述的装置,其特征在于,所述第一表项还用于记录响应状态信息,所述装置还包括:
发送时间点记录模块,用于记录所述第一报文发送模块中发送所述第一报文时的发送时间点;
响应状态信息标记模块,用于若当前时间点基于所述发送时间点记录模块中记录的所述发送时间点计算得出超过所述第一线程记录的预设的响应阈值时,将所述预设的状态信息列表中的所述第一标识记录模块记录的所述第一标识对应的响应状态信息进行标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610871948.3A CN106375337B (zh) | 2016-09-30 | 2016-09-30 | 一种基于多线程的报文交互方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610871948.3A CN106375337B (zh) | 2016-09-30 | 2016-09-30 | 一种基于多线程的报文交互方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106375337A true CN106375337A (zh) | 2017-02-01 |
CN106375337B CN106375337B (zh) | 2019-12-06 |
Family
ID=57897006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610871948.3A Active CN106375337B (zh) | 2016-09-30 | 2016-09-30 | 一种基于多线程的报文交互方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106375337B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101001290A (zh) * | 2006-01-09 | 2007-07-18 | 杭州世导科技有限公司 | 一种实现多媒体统一接入的系统 |
US20110219377A1 (en) * | 2010-03-05 | 2011-09-08 | Rohith Thammana Gowda | Dynamic thread pool management |
CN103336684A (zh) * | 2013-07-18 | 2013-10-02 | 上海寰创通信科技股份有限公司 | 一种并发处理ap消息的ac及其处理方法 |
CN104410619A (zh) * | 2014-11-21 | 2015-03-11 | 中国联合网络通信集团有限公司 | 即时通信方法及系统 |
CN105450551A (zh) * | 2015-12-07 | 2016-03-30 | 贵阳朗玛信息技术股份有限公司 | 一种下载直播流的方法及下载服务器 |
-
2016
- 2016-09-30 CN CN201610871948.3A patent/CN106375337B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101001290A (zh) * | 2006-01-09 | 2007-07-18 | 杭州世导科技有限公司 | 一种实现多媒体统一接入的系统 |
US20110219377A1 (en) * | 2010-03-05 | 2011-09-08 | Rohith Thammana Gowda | Dynamic thread pool management |
CN103336684A (zh) * | 2013-07-18 | 2013-10-02 | 上海寰创通信科技股份有限公司 | 一种并发处理ap消息的ac及其处理方法 |
CN104410619A (zh) * | 2014-11-21 | 2015-03-11 | 中国联合网络通信集团有限公司 | 即时通信方法及系统 |
CN105450551A (zh) * | 2015-12-07 | 2016-03-30 | 贵阳朗玛信息技术股份有限公司 | 一种下载直播流的方法及下载服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN106375337B (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9071560B2 (en) | Tagging email and providing tag clouds | |
CN110213068B (zh) | 一种消息中间件的监控方法及相关设备 | |
US7424682B1 (en) | Electronic messages with embedded musical note emoticons | |
CN103890808B (zh) | 用于提供接收确认的对话型短讯服务运作方法 | |
US5093918A (en) | System using independent attribute lists to show status of shared mail object among respective users | |
CN105915650B (zh) | 负载均衡方法和装置 | |
US7831673B1 (en) | Methods and systems for processing offline chat messages | |
EP3796188A1 (en) | Blockchain network transaction processing method, apparatus, device, and storage medium | |
US10069642B2 (en) | Method of autonomic representative selection in local area networks | |
CN110569298B (zh) | 一种数据对接、可视化方法和系统 | |
CN103634224B (zh) | 网络中数据传输的方法和系统 | |
US7444596B1 (en) | Use of template messages to optimize a software messaging system | |
WO2011131262A1 (en) | Controlling message delivery in publish/subscribe messaging | |
US20070112963A1 (en) | Sending routing data based on times that servers joined a cluster | |
WO2016082718A1 (zh) | 一种信息接入处理方法和装置 | |
US20110302250A1 (en) | Thread data aggregation | |
JP6918116B2 (ja) | インスタントメッセージンググループ管理方法および装置 | |
CN108023807A (zh) | 即时通信方法、服务器和消息中间件 | |
CN109495378A (zh) | 检测异常帐号的方法、装置、服务器及存储介质 | |
CN102957594A (zh) | 基于消息队列的消息处理方法、相关设备及系统 | |
US11528232B1 (en) | Apparatus and method for handling real-time tasks with diverse size based on message queue | |
CN106201735A (zh) | 消息传输方法及系统 | |
US20100057855A1 (en) | Tracking subject matter in an e-mail discussion | |
CN103986643B (zh) | 基于浏览器的访问网站对应的群组的方法及装置 | |
CN106502841B (zh) | 数据备份方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |