CN112637265B - 一种设备管理方法、装置及存储介质 - Google Patents
一种设备管理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112637265B CN112637265B CN202011339375.2A CN202011339375A CN112637265B CN 112637265 B CN112637265 B CN 112637265B CN 202011339375 A CN202011339375 A CN 202011339375A CN 112637265 B CN112637265 B CN 112637265B
- Authority
- CN
- China
- Prior art keywords
- component
- connection
- northbound
- equipment
- service request
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种设备管理方法、装置及存储介质,用于解决控制器主动连接管理模式下不支持跨NAT管理及故障恢复时间长的技术问题。本公开在控制器中部署有北向组件和连接组件,北向组件与连接组件通过分布式发布订阅消息中间件进行消息交互,连接组件由负载均衡性提供虚IP实现设备管理的负载均衡,可实现设备主动连接控制器集群,控制器自动记录设备信息及连接组件与设备的对应关系,控制器无需人为设置设备信息及与Master节点的对应关系,实现控制器集群负载均衡地对设备进行管理,具扩展性好,故障恢复快等特性。
Description
技术领域
本公开涉及网络通信技术领域,尤其涉及一种设备管理方法、装置及存储介质。
背景技术
软件定义网络(Software Defined Network,SDN)是主流的大型网络管理控制方案。在SDN场景下,一台硬件服务器或虚机,安装好具备网络管理控制功能的软件,称为一个控制器,在下文中也会称之为控制器节点、或简称Node、节点等,请参考具体上下文进行理解。多个SDN控制器节点组成控制器集群方式,统一管理和配置成百上千台设备,代替原来的人工登陆设备进行配置的方式。多个节点组成集群的技术有很多,此处不做展开描述。
控制器集群中,如果控制器集群采用传统的主备模型,则所有的压力都会集中在其中一个控制器节点上(称为控制器主Leader节点),不利于控制器管理的设备规模横向扩展。因此需要一种负载均衡的机制,将设备的管理能力分散在集群中的各个控制器节点上,当有来自北向的Rest/UI请求时,控制器在主Leader节点上计算出本次请求涉及的设备,然后分别将请求分发给各设备的管理控制器节点(称为Master节点),各控制器节点分别实现与设备的交互。
Rest请求是指来自第三方软件如云管理平台等,以HTTP/HTTPS方式向控制器发送的业务请求,比如”创建虚拟路由器vrouter”请求。UI请求是指用户通过浏览器,操作控制器的软件UI界面,发给控制器的业务请求,比如”创建vrouter”请求。
直接控制某个或某些设备的控制器称为这些设备的Master节点,例如设备1由控制器1直接控制,则控制器1为设备1的Master节点;假设设备2和设备3都由控制器2直接控制,则称控制器2为设备2和设备3的Master节点。
Kafka是一种高吞吐量的分布式发布订阅消息***,可以看做为一种消息中间件。Kafka定义了消息的生产者和消费者角色,生产者和消费者通过Topic实现消息交互。假设有两个独立运行的程序,程序1和程序2,以及一个独立部署的kafka程序。三者可以分别以独立进程或独立微服务方式运行,可以在相同的物理服务器上,也可以在不同的物理服务器上,只要各自之间能够具备独立的通信IP地址和通信端口,即可实现通信。程序1和程序2进行通信时,可以分别具备“生产者”和“消费者”的角色。若程序1希望向程序2发送若干请求,并且收到程序2的若干应答,则可以按照如下步骤进行:
步骤a1.在Kafka中创建两个Topic(Topic是kafka中的概念,表示一类消息的集合),Request Topic表示请求消息,Response Topic表示应答消息;
步骤a2.程序1将请求写入Request Topic,程序2侦听Request Topic,然后可以消费程序1生产的请求消息,处理完请求消息后,将应答消息写入Response Topic;
步骤a3.程序1侦听Response Topic,即可消费程序2生产的应答消息,一次通信结束。
除了上述简单的使用模型外,Kafka还提供了一种分区机制,即每个Topic可以创建多个不同的分区,生产者可以指定消息写入Topic的哪个分区,消费者也可以指定侦听Topic的哪个分区。
目前,控制器集群对设备的管理采用主动录入式管理模型,按照如下步骤实现负载均衡管理:
(1)在控制器集群提供的UI界面上,用户录入受控制器管理的设备,比如Dev1、Dev2、Dev3、Dev4;
(2)控制器主Leader节点通过特定算法(如随机UUID哈希法等),为每个设备分配Master节点;
(3)设备的Master节点主动和设备建立连接,对设备进行管理。
北向Rest/UI请求到来,控制器主Leader节点算出请求涉及的设备,根据自己记录的设备Master节点分配信息,将请求分发给指定的Master节点,Master节点通过已经与设备的连接,和设备进行交互。
采用上述主动录入式管理模型,需要用户人为设置受控制器管理的设备信息,需要控制器主动连接设备,无法支持设备主动连接控制器的负载均衡管理模型(如Websocket)。控制器主动连接的管理模型要求每个设备必须提供独立的IP控制器连接,不支持设备跨NAT管理,此外,控制器集群需要响应控制器节点故障、设备到Master的连接故障等事件,如果产生故障,控制器需要动态计算调整设备的新Master节点,然后再为设备建立新连接,业务恢复时间长。
发明内容
有鉴于此,本公开提供一种设备管理方法、装置及存储介质,用于解决控制器主动连接管理模式下不支持跨NAT管理及故障恢复时间长的技术问题。
基于本公开一实施例,本公开提供了一种设备管理方法,该方法应用于控制器集群中的控制器,所述控制器集群的一个或多个控制器中部署有北向组件和/或连接组件,该方法包括:
连接组件通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件之间的连接,所述北向组件中记录有设备序列号与连接组件分区号之间的对应关系;
北向组件接收到业务请求后,确定出业务请求所涉及的设备,根据设备序列号与连接组件分区号的对应关系,通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件;
连接组件根据自身的分区号从分布式发布订阅消息中间件中读取业务请求,与所述业务请求中的设备序列号对应的设备进行交互;
当设备应答所述业务请求时,连接组件通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件。
根据本公开一优选实施例,所述连接组件通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件之间的连接的方法为:
连接组件接收设备通过负载均衡器主动发起的连接请求,通过分布式发布订阅消息中间件向位于控制器的北向组件上报连接建立事件,事件中携带连接组件的分区号及所述设备序列号;
北向组件接收到连接建立事件后,通过分布式发布订阅消息中间件建立与连接组件之间的连接,并记录所述设备序列号与连接组件分区号之间的对应关系。
根据本公开另一实施例,所述连接组件通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件之间的连接的方法为:
北向组件根据预先配置的设备信息,使用预设的分配算法为设备分配连接组件,得到设备序列号与连接组件分区号之间的对应关系;
北向组件通过分布式发布订阅消息中间件向设备序列号对应的连接组件发送连接建立事件,连接建立事件中携带北向组件的分区号及设备序列号;
连接组件接收到北向组件的连接建立事件后,根据设备序列号通过负载均衡器主动向设备发起连接请求。
进一步地,所述北向组件通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件的方法为:
所述北向组件根据设备序列号找到对应的连接组件分区号,将业务请求写入分布式发布订阅消息中间件请求主题Request Topic中连接组件分区号对应的分区以使连接组件读取所述业务请求,所述业务请求中携带北向组件分区号;
所述连接组件通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件的方法为:
所述连接组件根据业务请求中北向组件分区号将应答响应写入分布式发布订阅消息中间件响应主题Request Topic中北向组件分区号对应的分区以使北向组件读取所述应答响应。
进一步地,所述方法还包括:当设备感知到管理该设备的控制器出现故障或该控制器与设备之间的链路产生故障时,设备主动通过所述负载均衡器暴露的虚IP再次向控制器集群发起连接请求从而与其它健康控制器上的连接组件和北向组件建立连接。
根据本公开一实施例,本公开还提供一种设备管理装置,该装置应用于控制器集群中的控制器,所述装置包括北向组件和/或连接组件:
连接组件,用于通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件之间的连接;连接组件根据自身的分区号从分布式发布订阅消息中间件中读取业务请求,与所述业务请求中的设备序列号对应的设备进行交互;当设备应答所述业务请求时,通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件;
北向组件,用于记录设备序列号与连接组件分区号之间的对应关系;当接收到业务请求后,确定出业务请求所涉及的设备,根据设备序列号与连接组件分区号的对应关系,通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件。
根据本公开一优选实施例,所述连接组件接收设备通过负载均衡器主动发起的连接请求,通过分布式发布订阅消息中间件向位于控制器的北向组件上报连接建立事件,事件中携带连接组件的分区号及所述设备序列号;
所述北向组件接收到连接建立事件后,通过分布式发布订阅消息中间件建立与连接组件之间的连接,并记录所述设备序列号与连接组件分区号之间的对应关系。
根据本公开另一实施例,所述北向组件根据预先配置的设备信息,使用预设的分配算法为设备分配连接组件,得到设备序列号与连接组件分区号之间的对应关系;
所述北向组件通过分布式发布订阅消息中间件向设备序列号对应的连接组件发送连接建立事件,连接建立事件中携带北向组件的分区号及设备序列号;
所述连接组件接收到北向组件的连接建立事件后,根据设备序列号通过负载均衡器主动向设备发起连接请求。
进一步地,所述北向组件根据设备序列号找到对应的连接组件分区号,将业务请求写入分布式发布订阅消息中间件请求主题Request Topic中连接组件分区号对应的分区以使连接组件读取所述业务请求,所述业务请求中携带北向组件分区号;
所述连接组件根据业务请求中北向组件分区号将应答响应写入分布式发布订阅消息中间件响应主题Request Topic中北向组件分区号对应的分区以使北向组件读取所述应答响应。
本公开在控制器中部署有北向组件和连接组件,北向组件与连接组件通过分布式发布订阅消息中间件进行消息交互,连接组件由负载均衡性提供虚IP实现设备管理的负载均衡,可实现设备主动连接控制器集群,控制器自动记录设备信息及连接组件与设备的对应关系,控制器无需人为设置设备信息及与Master节点的对应关系,实现控制器集群负载均衡地对设备进行管理,具扩展性好,故障恢复快等特性。
附图说明
为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。
图1为本公开一实施例提供的设备管理框架结构示意图;
图2为本公开一实施例提供一种设备管理方法的步骤流程图;
图3为本公开一实施例提供的一种设备管理装置结构示意图;
图4为本公开一实施例提供的一种控制器结构示意图。
具体实施方式
在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本公开中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开目的在于提供一种支持设备主动连接控制器,并实现控制器负载均衡地对设备进行管理和控制的方法及装置,以提升设备管理的灵活性、提高业务恢复速度。图1为本公开一实施例提供的设备管理框架结构示意图,在该框架结构中,控制器集群中包括多个控制器节点(简称控制器),本公开不限制控制器的部署形式,可以为独立的物理主机、虚拟机等。
在本公开的设备管理***的框架结构中,控制器上安装的软件包-也可称为组件/插件/软件模块,从逻辑上划分为北向组件和连接组件。北向组件用于直接处理来自用户或上层软件的业务请求,例如Rest/UI请求。连接组件用于管理与设备的连接。在北向组件与连接组件之间部署分布式发布订阅消息中间件(简称消息中间件),例如Kafka,用于实现北向组件与连接组件之间的消息交互。
图1中以3台控制器节点为例,实际部署的控制器节点个数不做限制。
在一个控制器集群的多个控制器节点上,可以启动1个或多个北向组件。例如,可以在控制1上启动北向组件实例(不限进程方式或微服务方式),控制器2、控制器3上不启动。也可以在每个控制器上都启动一个或多个北向组件。
北向组件可以采用单点、备份或负载分担模式来处理来自北向的业务请求(指用户UI业务请求或上层软件的Rest业务请求),本公开不做限制。
在一个控制器集群的多个控制器节点上,可以启动1个或多个连接组件,连接组件的数量可以根据业务负载情况动态扩展和收缩。例如初始状态下可以在控制器1、控制器2各部署一个连接组件,控制器3上不部署,当管理的设备数量增多时,在控制器3上扩展一个连接组件,当设备数量减少时,收缩掉某个控制器上的连接组件,通过动态扩展/收缩连接组件实例数量来智能化适应网络及业务的需求。具体扩展收缩方式本公开不做限制,例如,在微服务架构下可采用Kubernetes(简称K8S)调度按需增加或减少连接组件实例个数。
分布式发布订阅消息中间件,例如Kafka,可采用独立的服务器部署方式,也可复用控制器节点的服务器,本公开不做限制。
本公开实施例中的多个连接组件通过负载均衡器实现设备在多个连接组件之间的均衡,多个连接组件统一使用由负载均衡器提供的虚拟IP,通过负载均衡器对外暴露IP地址。本公开不限制使用的具体负载均衡器类型;每个连接组件需要分配唯一的分区号。
本公开一实施例中,采用K8S微服务架构部署连接组件,为每个连接组件分配POD,在连接组件启动时为连接组件指定POD编号,将POD编号作为每个连接组件在Kafka中的Topic中的分区号。其中,Pod用于承载连接组件的运行。POD是K8S中能够创建和部署的最小单元,Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。
在本公开另一实施例中,采用外部的缓存服务器,如Redis,通过加锁竞争的方式为每个连接组件分配唯一的分区号。
本公开不限制连接组件的部署方式和分区号分配方式,例如,连接组件采用微服务或进程方式部署,分区号采用POD编号或Redis分配方式等。
图2为本公开一实施例提供一种设备管理方法的步骤流程图,该方法基于上述设备管理框架结构,应用于控制器集群中的控制器,所述控制器集群的一个或多个控制器中部署有北向组件,一个或多个控制器中部署有连接组件,该方法包括:
步骤210.连接组件通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件之间的连接,所述北向组件中记录有设备序列号与连接组件分区号之间的对应关系;
本公开一实施中,采用设备主动向控制器发起连接请求的方式建立与控制器中的连接组件和北向组件之间的连接,具体方式如下:
步骤A211.连接组件接收设备通过负载均衡器主动发起的连接请求,通过分布式发布订阅消息中间件向位于控制器的北向组件上报连接建立事件,事件中携带连接组件的分区号及所述设备序列号;
步骤A212北向组件接收到连接建立事件后,通过分布式发布订阅消息中间件建立与连接组件之间的连接,并记录所述设备序列号与连接组件分区号之间的对应关系;
例如,连接组件通过kafka上报连接建立事件给北向组件,事件中携带自己的分区号,然后每个连接组件以自己的分区号侦听Kafak的Event Topic消息中的对应分区。北向组件接收到连接建立事件后根据设备序列号与连接组件分区号的对应关系,将连接建立事件的响应发送的哦Event Topic中连接组件分组号对应的分区中,连接组件通过侦听自身分区号对应的分区获得北向组件的响应,从而建立起与北向组件的业务连接。本公开中提到的所有Topic均可通过手动或软件自动的方式创建,本公开不做赘述。
本公开另一实施中,采用控制器主动向设备发起连接请求的方式建立控制器与设备之间的连接,具体方式如下:
步骤B211.北向组件根据预先配置的设备信息,使用预设的分配算法为设备分配连接组件,得到设备序列号与连接组件分区号之间的对应关系;
步骤B212.北向组件通过分布式发布订阅消息中间件向设备序列号对应的连接组件发送连接建立事件,连接建立事件中携带北向组件的分区号及设备序列号;
步骤A213.连接组件接收到北向组件的连接建立事件后,根据设备序列号通过负载均衡器主动向设备发起连接请求。
步骤220.北向组件接收到业务请求后,确定出业务请求所涉及的设备,根据设备序列号与连接组件分区号的对应关系,通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件;
本公开一实施中,北向组件收到Rest/UI业务请求,通过计算确定出此业务请求涉及的设备,将业务请求分发给对应的连接组件,分发时根据设备序列号找到对应的连接组件分区号,写入Kafka的Request Topic中连接组件分区号对应的分区;同时业务请求消息中携带北向组件自身的分区号(编号唯一,分配方式与连接组件类似),然后北向组件侦听Response Topic中的分区号(北向组件分区号)。
步骤230.连接组件根据自身的分区号从分布式发布订阅消息中间件中读取业务请求,与所述业务请求中的设备序列号对应的设备进行交互;
该步骤中,连接组件侦听消息中间件Request Topic(请求主题)中自身的分区号对应的分区,当收到来自北向组件的业务请求时,从业务请求中获取设备序列号,与设备进行交互。
步骤240.当设备应答所述业务请求时,连接组件通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件。
该步骤中,当收到设备向连接组件应答时,连接组件根据对应业务请求中的北向组件分区号,将应答消息写入消息中间件Response Topic(应答主题)中北向组件分区号对应的分区,北向组件监听到自身分区号对应的应答主题分区中有应答消息后,对业务请求作出应答。
本公开一实施例中,当设备感知到管理该设备的控制器出现故障或该控制器与设备之间的链路产生故障时,设备主动通过所述负载均衡器暴露的虚IP再次向控制器集群发起连接请求从而与其它健康控制器上的连接组件和北向组件建立连接。
本公开实施例,能够在配置网络地址转换(Network Address Translation,NAT)组网环境下实现设备主动连接控制器集群,实现控制器集群负载均衡地对设备进行管理,而且该管理框架具有很好的可扩展性,可横向扩展控制器集群及控制前集群能够管理的设备数目。基于本公开实施例中的管理框架的,当一个连接出现故障(链路故障、控制器节点故障等),设备可以主动感知到链路问题,迅速主动向别的健康节点发起连接,控制器不需要进行额外处理即可实现故障的收敛,提高了业务可靠性和故障收敛时间。
本公开技术方案可以兼容支持原有的控制器主动连接设备的管理模型。例如,用户在控制器上录入受控制器管理的设备信息,比如Dev1、Dev2、Dev3、Dev4等,控制器通过特定算法(如随机UUID哈希法等),为每个设备分配连接组件,连接组件主动与设备发起连接,后续处理步骤与“设备主动连接控制器”模型相同。
应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机***通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本公开描述的过程的操作,除非本公开另外指示或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机***的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本公开所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计算机本身。
图3为本公开一实施例提供的一种设备管理装置结构示意图,该装置中的各功能模块可以采用软件模块形式实现,也可以采用硬件单元方式实现。该装置应用于控制器集群中的控制器,所述装置包括北向组件和/或连接组件。该设备管理装置300包括:北向组件310、连接组件320。
连接组件320,用于通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件310之间的连接;根据自身的分区号从分布式发布订阅消息中间件中读取业务请求,与所述业务请求中的设备序列号对应的设备进行交互;当设备应答所述业务请求时,通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件;
北向组件310,用于记录设备序列号与连接组件分区号之间的对应关系;当接收到业务请求后,确定出业务请求所涉及的设备,根据设备序列号与连接组件分区号的对应关系,通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件320。
根据本公开一优选实施例,所述连接组件320接收设备通过负载均衡器主动发起的连接请求,通过分布式发布订阅消息中间件向位于控制器的北向组件310上报连接建立事件,事件中携带连接组件的分区号及所述设备序列号;
北向组件310接收到连接建立事件后,通过分布式发布订阅消息中间件建立与连接组件320之间的连接,并记录设备序列号与连接组件分区号之间的对应关系。
根据本公开另一实施例,所述北向组件320根据预先配置的设备信息,使用预设的分配算法为设备分配连接组件,得到设备序列号与连接组件分区号之间的对应关系;
北向组件310通过分布式发布订阅消息中间件向设备序列号对应的连接组件320发送连接建立事件,连接建立事件中携带北向组件的分区号及设备序列号;
连接组件320接收到北向组件310的连接建立事件后,根据设备序列号通过负载均衡器主动向设备发起连接请求。
进一步地,北向组件320根据设备序列号找到对应的连接组件分区号,将业务请求写入分布式发布订阅消息中间件请求主题Request Topic中连接组件分区号对应的分区以使连接组件320读取所述业务请求,所述业务请求中携带北向组件分区号;
连接组件320根据业务请求中北向组件分区号将应答响应写入分布式发布订阅消息中间件响应主题Request Topic中北向组件分区号对应的分区以使北向组件310读取所述应答响应。
图4为本公开一实施例提供的一种控制器结构示意图,该控制器400包括:诸如中央处理单元(CPU)的处理器410、内部总线420、网络接口440以及计算机可读存储介质430。其中,处理器410与计算机可读存储介质430可以通过内部总线420相互通信。计算机可读存储介质430内可存储本公开提供的用于实施前述本公开提供的设备管理方法的计算机程序,当计算机程序被处理器410执行时即可实现本公开提供的设备管理方法的各步骤功能。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volat i le Memory,NVM),例如至少一个磁盘存储器。另外,机器可读存储介质1202还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。本公开实施例提供的设备与本公开实施例提供的方法出于相同的技术构思,具有与其采用、运行或实现的方法相同的有益效果。
以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种设备管理方法,其特征在于,该方法应用于控制器集群中的控制器,所述控制器集群的一个或多个控制器中部署有北向组件和/或连接组件,该方法包括:
连接组件接收设备通过负载均衡器主动发起的连接请求,通过分布式发布订阅消息中间件向位于控制器的北向组件上报连接建立事件,事件中携带连接组件的分区号及所述设备序列号;
北向组件接收到连接建立事件后,通过分布式发布订阅消息中间件建立与连接组件之间的连接,并记录所述设备序列号与连接组件分区号之间的对应关系;
北向组件接收到业务请求后,确定出业务请求所涉及的设备,根据设备序列号与连接组件分区号的对应关系,通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件;
连接组件根据自身的分区号从分布式发布订阅消息中间件中读取业务请求,与所述业务请求中的设备序列号对应的设备进行交互;
当设备应答所述业务请求时,连接组件通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件。
2.根据权利要求1所述的方法,其特征在于,所述连接组件通过负载均衡器建立与设备之间的连接,通过分布式发布订阅消息中间件建立与北向组件之间的连接的方法为:
北向组件根据预先配置的设备信息,使用预设的分配算法为设备分配连接组件,得到设备序列号与连接组件分区号之间的对应关系;
北向组件通过分布式发布订阅消息中间件向设备序列号对应的连接组件发送连接建立事件,连接建立事件中携带北向组件的分区号及设备序列号;
连接组件接收到北向组件的连接建立事件后,根据设备序列号通过负载均衡器主动向设备发起连接请求。
3.根据权利要求1所述的方法,其特征在于,所述北向组件通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件的方法为:
所述北向组件根据设备序列号找到对应的连接组件分区号,将业务请求写入分布式发布订阅消息中间件请求主题Request Topic中连接组件分区号对应的分区以使连接组件读取所述业务请求,所述业务请求中携带北向组件分区号;
所述连接组件通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件的方法为:
所述连接组件根据业务请求中北向组件分区号将应答响应写入分布式发布订阅消息中间件响应主题Request Topic中北向组件分区号对应的分区以使北向组件读取所述应答响应。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当设备感知到管理该设备的控制器出现故障或该控制器与设备之间的链路产生故障时,设备主动通过所述负载均衡器暴露的虚IP再次向控制器集群发起连接请求从而与其它健康控制器上的连接组件和北向组件建立连接。
5.一种设备管理装置,其特征在于,该装置应用于控制器集群中的控制器,所述装置包括北向组件和/或连接组件:
连接组件,用于接收设备通过负载均衡器主动发起的连接请求,通过分布式发布订阅消息中间件向位于控制器的北向组件上报连接建立事件,事件中携带连接组件的分区号及设备序列号;还用于连接组件根据自身的分区号从分布式发布订阅消息中间件中读取业务请求,与所述业务请求中的设备序列号对应的设备进行交互;当设备应答所述业务请求时,通过分布式发布订阅消息中间件将应答响应发送给对应的北向组件;
北向组件,用于在接收到连接建立事件后,通过分布式发布订阅消息中间件建立与连接组件之间的连接,并记录所述设备序列号与连接组件分区号之间的对应关系;还用于当接收到业务请求后,确定出业务请求所涉及的设备,根据设备序列号与连接组件分区号的对应关系,通过分布式发布订阅消息中间件将业务请求发送给连接组件分区号对应的连接组件。
6.根据权利要求5所述的装置,其特征在于,
所述北向组件根据预先配置的设备信息,使用预设的分配算法为设备分配连接组件,得到设备序列号与连接组件分区号之间的对应关系;
所述北向组件通过分布式发布订阅消息中间件向设备序列号对应的连接组件发送连接建立事件,连接建立事件中携带北向组件的分区号及设备序列号;
所述连接组件接收到北向组件的连接建立事件后,根据设备序列号通过负载均衡器主动向设备发起连接请求。
7.根据权利要求5所述的装置,其特征在于,
所述北向组件根据设备序列号找到对应的连接组件分区号,将业务请求写入分布式发布订阅消息中间件请求主题Request Topic中连接组件分区号对应的分区以使连接组件读取所述业务请求,所述业务请求中携带北向组件分区号;
所述连接组件根据业务请求中北向组件分区号将应答响应写入分布式发布订阅消息中间件响应主题Request Topic中北向组件分区号对应的分区以使北向组件读取所述应答响应。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339375.2A CN112637265B (zh) | 2020-11-25 | 2020-11-25 | 一种设备管理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339375.2A CN112637265B (zh) | 2020-11-25 | 2020-11-25 | 一种设备管理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637265A CN112637265A (zh) | 2021-04-09 |
CN112637265B true CN112637265B (zh) | 2022-07-12 |
Family
ID=75303968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011339375.2A Active CN112637265B (zh) | 2020-11-25 | 2020-11-25 | 一种设备管理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637265B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572815B (zh) * | 2021-06-25 | 2023-07-07 | 广州大学 | 一种跨异构平台的通信技术方法、***及介质 |
CN117376662B (zh) * | 2023-12-08 | 2024-02-09 | 杭州领信数科信息技术有限公司 | 一种集群式视频安全边界交换方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631134A (zh) * | 2008-07-14 | 2010-01-20 | 李�真 | 用于分布式计算环境的网络消息交换服务管理器 |
CN101848236A (zh) * | 2010-05-06 | 2010-09-29 | 北京邮电大学 | 具有分布式网络架构的实时数据分发***及其工作方法 |
CN103581307A (zh) * | 2013-10-17 | 2014-02-12 | 北京邮电大学 | 一种基于集群的发布/订阅***及其可靠性保障方法 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅***及其工作方法 |
CN106411972A (zh) * | 2015-07-29 | 2017-02-15 | 中国科学院沈阳自动化研究所 | 一种基于Openflow协议的实时数据分发***和方法 |
CN106953901A (zh) * | 2017-03-10 | 2017-07-14 | 重庆邮电大学 | 一种提高消息传递性能的集群通信***及其方法 |
CN110069335A (zh) * | 2019-05-07 | 2019-07-30 | 江苏满运软件科技有限公司 | 任务处理***、方法、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112016004286T5 (de) * | 2015-09-23 | 2018-06-21 | Google Llc | Systeme und Verfahren zur Lastverteilung in einem verteilten Paketkernsystem eines durch Software definierten Netzes |
-
2020
- 2020-11-25 CN CN202011339375.2A patent/CN112637265B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631134A (zh) * | 2008-07-14 | 2010-01-20 | 李�真 | 用于分布式计算环境的网络消息交换服务管理器 |
CN101848236A (zh) * | 2010-05-06 | 2010-09-29 | 北京邮电大学 | 具有分布式网络架构的实时数据分发***及其工作方法 |
CN103581307A (zh) * | 2013-10-17 | 2014-02-12 | 北京邮电大学 | 一种基于集群的发布/订阅***及其可靠性保障方法 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅***及其工作方法 |
CN106411972A (zh) * | 2015-07-29 | 2017-02-15 | 中国科学院沈阳自动化研究所 | 一种基于Openflow协议的实时数据分发***和方法 |
CN106953901A (zh) * | 2017-03-10 | 2017-07-14 | 重庆邮电大学 | 一种提高消息传递性能的集群通信***及其方法 |
CN110069335A (zh) * | 2019-05-07 | 2019-07-30 | 江苏满运软件科技有限公司 | 任务处理***、方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112637265A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102604082B1 (ko) | 멀티 클러스터 인그레스 | |
US10581674B2 (en) | Method and apparatus for expanding high-availability server cluster | |
JP6224846B2 (ja) | プロバイダ定義インターフェイスを介したクライアント構内リソース制御 | |
EP3353952B1 (en) | Managing groups of servers | |
US9942158B2 (en) | Data traffic policy management system | |
WO2022206229A1 (zh) | 数据处理方法、装置、设备和存储介质 | |
US20190339955A1 (en) | Function Portability for Services Hubs using a Function Checkpoint | |
US9690670B1 (en) | Systems and methods for doing agentless backup in scale-out fashion | |
US10205775B2 (en) | Server selection in a highly available network | |
CN112165532A (zh) | 节点访问方法、装置、设备及计算机可读存储介质 | |
CN111880902A (zh) | 一种pod创建方法、装置、设备及可读存储介质 | |
US11201930B2 (en) | Scalable message passing architecture in a cloud environment | |
CN112637265B (zh) | 一种设备管理方法、装置及存储介质 | |
CN110716787A (zh) | 容器地址设置方法、设备和计算机可读存储介质 | |
CN110764963A (zh) | 一种服务异常处理方法、装置及设备 | |
US10237235B1 (en) | System for network address translation | |
US11108673B2 (en) | Extensible, decentralized health checking of cloud service components and capabilities | |
CN115378944B (zh) | 一种网络***及服务网格配置方法、存储介质和电子设备 | |
CN114938394B (zh) | 跨集群网络控制方法、装置、设备及存储介质 | |
US9106676B1 (en) | Grid-based server messaging infrastructure | |
EP3703342B1 (en) | Dynamic load balancing in network centric process control systems | |
CN112968976A (zh) | 外网访问控制***、方法、装置、设备及存储介质 | |
JP2015162029A (ja) | サーバ | |
CN114615268B (zh) | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 | |
CN109510864B (zh) | 一种缓存请求的转发方法、传输方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |