CN115002193A - 多路远程服务选取方法、设备、存储介质及装置 - Google Patents
多路远程服务选取方法、设备、存储介质及装置 Download PDFInfo
- Publication number
- CN115002193A CN115002193A CN202210452169.5A CN202210452169A CN115002193A CN 115002193 A CN115002193 A CN 115002193A CN 202210452169 A CN202210452169 A CN 202210452169A CN 115002193 A CN115002193 A CN 115002193A
- Authority
- CN
- China
- Prior art keywords
- services
- service
- preset
- remote
- result
- 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.)
- Pending
Links
- 238000010187 selection method Methods 0.000 title claims description 21
- 238000001514 detection method Methods 0.000 claims abstract description 174
- 230000000694 effects Effects 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000000903 blocking effect Effects 0.000 claims description 40
- 230000004083 survival effect Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 230000000295 complement effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 239000000523 sample Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000014155 detection of activity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多路远程服务选取方法、设备、存储介质及装置,本发明通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据预设冗余数量确定待补齐服务数量;依次探测初选远程服务对应的备选远程服务;根据探测结果从备选远程服务中选取目标远程服务,直至目标远程服务的数量满足待补齐服务数量。本发明通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据待补齐服务数量从备选远程服务中选取目标远程服务,相较于现有技术中中无法过滤出现故障的服务,从而导致数据的传递不完整,本发明实现了在将数据传递到多个服务之前利用协程进行服务探活并过滤掉不可用服务的方法,能尽可能确保数据的完整传递。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种多路远程服务选取方法、设备、存储介质及装置。
背景技术
目前在数据需要进行多远程服务通信的场景中,客户端应用会向多个服务进行通信传递数据,但是如果当其中某个服务出现故障无法提供服务时,会导致数据的传递不完整,及后续的业务由于数据的不完整会出现故障。因此,现有技术中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种多路远程服务选取方法、设备、存储介质及装置,旨在解决现有技术中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷。
为实现上述目的,本发明提供一种多路远程服务选取方法,所述多路远程服务选取方法包括以下步骤:
向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;
根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量;
依次探测所述初选远程服务对应的备选远程服务;
根据探测结果从所述备选远程服务中选取目标远程服务,直至所述目标远程服务的数量满足所述待补齐服务数量。
可选地,所述向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果的步骤,包括:
从预设服务器列表中提取预设冗余数量的初选远程服务,并根据预设协程执行函数向预设冗余数量的初选远程服务发送探活指令;
基于预设管道接收所述探活指令对应的返回结果,并根据所述返回结果和所述初选远程服务对应的连接地址生成探活结果。
可选地,所述基于预设管道接收所述探活指令对应的返回结果的步骤,包括:
根据所述预设管道配置的预设阻塞计数器对所述预设管道中的返回结果进行监听,获取阻塞次数;
根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果。
可选地,所述根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果的步骤,包括:
在所述阻塞次数未达到所述探活指令对应的返回结果数量时,不解除阻塞,直至阻塞次数达到所述返回结果数量;
在所述阻塞次数达到所述探活指令对应的返回结果数量时,解除阻塞并接收所述探活指令对应的返回结果。
可选地,所述根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量的步骤,包括:
通过预设查询协议对所述探活结果中探测成功的服务数组进行查询,根据查询结果确定可用服务数量;
根据所述可用服务数量和所述预设冗余数量进行对比,根据对比结果确定是否需要补齐服务;
在需要补齐服务时,根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量。
可选地,所述根据所述可用服务数量和所述预设冗余数量进行对比,根据对比结果确定是否需要补齐服务的步骤,包括:
在所述可用服务数量小于所述预设冗余数量时,确定需要补齐服务;
在所述可用服务数量不小于所述预设冗余数量时,确定不需要补齐服务。
可选地,所述依次探测所述初选远程服务对应的备选远程服务的步骤,包括:
在需要补齐服务时,根据所述初选远程服务从所述预设服务器列表中确定备选远程服务;
向所述备选远程服务同步发送探活指令,依次探测所述备选远程服务,并通过所述预设管道接收所述探活指令对应的探测结果。
此外,为实现上述目的,本发明还提出一种多路远程服务选取设备,所述多路远程服务选取设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多路远程服务选取程序,所述多路远程服务选取程序配置为实现如上文所述的多路远程服务选取的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有多路远程服务选取程序,所述多路远程服务选取程序被处理器执行时实现如上文所述的多路远程服务选取方法的步骤。
此外,为实现上述目的,本发明还提出一种多路远程服务选取装置,所述多路远程服务选取装置包括:
服务探活模块,用于向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;
数量确定模块,用于根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量;
所述服务探活模块,还用于依次探测所述初选远程服务对应的备选远程服务;
服务选取模块,用于根据探测结果从所述备选远程服务中选取目标远程服务,直至所述目标远程服务的数量满足所述待补齐服务数量。
本发明通过向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;根据探活结果确定可用服务数量,并根据预设冗余数量和可用服务数量确定待补齐服务数量;依次探测初选远程服务对应的备选远程服务;根据探测结果从备选远程服务中选取目标远程服务,直至目标远程服务的数量满足待补齐服务数量。本发明在需要进行多远程服务通信的场景下通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据待补齐服务数量从备选远程服务中选取目标远程服务,相较于现有技术中中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷,本发明实现了在进行将数据传递到多个服务之前利用协程进行服务探活并过滤掉不可用服务的方法,能尽可能确保数据的完整传递。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的多路远程服务选取设备的结构示意图;
图2为本发明多路远程服务选取方法第一实施例的流程示意图;
图3为本发明多路远程服务选取方法第二实施例的流程示意图;
图4为本发明多路远程服务选取方法第三实施例的流程示意图;
图5为本发明多路远程服务选取装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的多路远程服务选取设备结构示意图。
如图1所示,该多路远程服务选取设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对多路远程服务选取设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及多路远程服务选取程序。
在图1所示的多路远程服务选取设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述多路远程服务选取设备通过处理器1001调用存储器1005中存储的多路远程服务选取程序,并执行本发明实施例提供的多路远程服务选取方法。
基于上述硬件结构,提出本发明多路远程服务选取方法的实施例。
参照图2,图2为本发明多路远程服务选取方法第一实施例的流程示意图,提出本发明多路远程服务选取方法第一实施例。
在本实施例中,所述多路远程服务选取方法包括以下步骤:
步骤S10:向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果。
需说明的是,本实施例的执行主体可以是具有多路远程服务选取功能的设备,比如电脑、笔记本、手机以及计算机等,本实施例对此不加以限制,本实施例中具有多路远程服务选取功能的设备适用于在数据需要进行多远程服务通信的场景中进行快速探活,本实施例以计算机作为执行主体对本实施例以及下述实施例进行说明。
可理解的是,预设冗余数量可以是预先设置的最小数据传递的服务器冗余数量。初选远程服务可以是指在首次探测时通过服务器接收数据的远程访问服务。所述远程访问服务可以是计算机向多个服务器进行通信传递数据时产生的远程访问服务。所述探活指令可以是客户端(如:计算机)通过预设冗余数量对应的协程向服务器发送的用于验证服务器是否存在故障的指令。探活结果可以是服务器接收到探活指令时返回的查询结果,所述查询结果可以是探活成功和探活失败两种探活结果。
应理解的是,计算机作为客户端对所有存储服务器进行配置。例如:Golang中使用YAML进行配置,配置文件中包括存储服务器列表和最小数据传递冗余数量。
具体实现中,在客户端应用的配置文件中配置所有的远程服务器IP及通信端口,和最小需要发送的预设冗余数。例如:现有五台远程服务器用于接收数据,最小数据传递的冗余数量为3(配置其中三台服务器用于接收数据),如:
remote_services:#配置5台服务用于接收数据
-192.168.10.2:9004
-192.168.10.3:9004
-192.168.10.4:9004
-192.168.10.5:9004
-192.168.10.6:9004
min_remote_trans:3#配置最小数据传递的冗余数量。
步骤S20:根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量。
需说明的是,可用服务数量可以是指通过启动预设冗余数量的协程对配置中预设冗余数量的服务器按照预设顺序进行探活后确定的可用于接收数据的服务数量。
可理解的是,为了避免对初选远程服务中存在不可用服务,即其中某个服务出现故障无法提供服务时,会导致数据的传递不完整,及后续的业务由于数据的不完整会出现故障。通过预设冗余数量与可用服务数量进行对比确定是否需要探活新的服务器完成服务,因此根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量。
具体实现中,在需要进行多远程服务通信的场景下快速探活的方案,使用协程对多个应用服务发送探活指令进行可用性探测,首次探测时会按最小冗余数量使用协程进行探测,在探测中如果出现不可用服务,根据预设冗余数量和可用服务数量确定待补齐服务数量,并在协程结束后根据待补齐服务数量对剩下的所有服务器按序进行探测。
步骤S30:依次探测所述初选远程服务对应的备选远程服务。
需说明的是,备选远程服务是指在预先构建的服务器列表中提出初选远程服务余下的远程服务。
步骤S40:根据探测结果从所述备选远程服务中选取目标远程服务,直至所述目标远程服务的数量满足所述待补齐服务数量。
需说明的是,目标远程服务是指在探测结果中存在不可用服务时,依次探测备选远程服务,根据探测结果中探测成功的服务数组确定备选远程服务中可用的远程服务,并根据目标远程服务数量满足待补齐服务数量。
本实施例通过向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;根据探活结果确定可用服务数量,并根据预设冗余数量和可用服务数量确定待补齐服务数量;依次探测初选远程服务对应的备选远程服务;根据探测结果从备选远程服务中选取目标远程服务,直至目标远程服务的数量满足待补齐服务数量。本实施例在需要进行多远程服务通信的场景下通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据待补齐服务数量从备选远程服务中选取目标远程服务,相较于现有技术中中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷,本实施例实现了在进行将数据传递到多个服务之前利用协程进行服务探活并过滤掉不可用服务的方法,能尽可能确保数据的完整传递。
参照图3,图3为本发明多路远程服务选取方法第二实施例的流程示意图,基于本发明的第一实施例提出本发明多路远程服务选取方法第二实施例。
在本实施例中,所述步骤S10,包括:
步骤S101:从预设服务器列表中提取预设冗余数量的初选远程服务,并根据预设协程执行函数向预设冗余数量的初选远程服务发送探活指令。
需说明的是,预设服务器列表是指预先构建的用于接收数据的服务器列表,所述服务器列表可以是指从所有存储服务器中进行选取配置需要的服务器生成的列表,所述服务器列表包括初选服务器列表和备选服务器列表,所述预设协程执行函数可以是预先设置的用于启动协程发送探活指令到远程服务器进行探活的执行函数。例如:探活指令为Socket指令,将发送Socket指令到远程服务器进行探测的协程执行函数,协程执行函数定义为surveyServer。
步骤S102:基于预设管道接收所述探活指令对应的返回结果,并根据所述返回结果和所述初选远程服务对应的连接地址生成探活结果。
需说明的是,预设管道是预先设置的用于接收协程的返回结果的管道,其中所述管道中通过设置sync.WaitGroup函数进行阻塞,从而避免漏检。
可理解的是,初选远程服务对应的连接地址是指初选远程服务对应的服务器地址,格式设置为ip:port,而返回结果中包含服务器根据协程中的探活指令进行探活生成的结果,若在探活过程中没有发生异常时,将返回结果设置为正确的结果,反之设置错误的结果,并将所有协程返回的结果传入预设管道中。
具体实现中,定义探测结果结构体,其中探测结果结构体包括服务器IP及探测结果,探测结果结构体定义为SurveyResult,如:
定义发送Socket指令到远程服务器进行探测的协程执行函数,定义为surveyServer,如:
进一步地,所述基于预设管道接收所述探活指令对应的返回结果的步骤,包括:根据所述预设管道配置的预设阻塞计数器对所述预设管道中的返回结果进行监听,获取阻塞次数;根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果。
需说明的是,预设管道用于接收协程的返回结果,并使用sync.WaitGroup进行阻塞。在探测结果未返回时,程序需进行等待,当有所有协程获取到探测结果后,则解除阻塞。预设阻塞计数器是预先设置的GO语言等待组类型中用于计数的部分,其中在sync.WaitGroup(等待组)类型中,每个sync.WaitGroup值在内部维护着一个计数,此计数可以设为0,对于一个可寻址的sync.WaitGroup值wg,可以使用方法调用wg.Add(delta)来改变值wg维护的计数,即在本申请中通过调用wg.Add(delta)来改变值wg维护的计数,从而确定阻塞次数,而本申请中等待组内部拥有一个计数器,计数器的值可以通过上述方法调用实现计数器的增加和减少。当我们添加了N个并发任务进行工作时,就将等待组的计数器值增加N。每个任务完成时,这个值减1。同时,在另外一个goroutine中等待这个等待组的计数器值为0时,表示所有任务已经完成,即将阻塞解除。
可理解的是,若阻塞次数与返回结果数量相同时,解除阻塞,即当有所有协程获取到探测结果后,则解除阻塞。若阻塞次数与返回结果数量不同时,程序需要等待,直至阻塞次数与返回结果数量相同。
具体实现中,在使用协程进行发送前,需定义一个匿名函数对管道进行监听,协程中无论探测结果是正确都会将结果写入管道。如果监听结果都是成功,则不需要继续进行探测。匿名函数使用协程进行监听,否则开始监听后程序会监听阻塞,无法开启协程发送探测指令(探活指令),如:
进一步地,所述根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果的步骤,包括:在所述阻塞次数未达到所述探活指令对应的返回结果数量时,不解除阻塞,直至阻塞次数达到所述返回结果数量;在所述阻塞次数达到所述探活指令对应的返回结果数量时,解除阻塞并接收所述探活指令对应的返回结果。
具体实现中,在客户端应用的配置文件中配置所有的远程服务器IP及通信端口,和最小需要发送探活指令(探测指令)的服务器冗余数。当进行探测时,按最小冗余数量启动协程,每个协程对应配置中相应顺序的服务器发送查询指令0x07,在启动协程之前建立一个管道监听查询结果,所有协程获取到返回结果后将结果数据传入管道中(无论成功或失败),管道监听函数中获取到所有返回结果后关闭管道,这样可以保证在和单服务探测相同的时间内探测多个服务并获取到探测结果,如果探测成功的数量与设置的最小冗余数量一致,则表示探测成功,否则,继续从配置中按顺序逐个进行探测,直到探测成功。协程进行的探测为异步发送探测指令,协程结束后为同步发送探测指令。
本实施例通过从预设服务器列表中提取预设冗余数量的初选远程服务,并根据预设协程执行函数向预设冗余数量的初选远程服务发送探活指令;基于预设管道接收所述探活指令对应的返回结果,并根据所述返回结果和所述初选远程服务对应的连接地址生成探活结果,根据探活结果确定可用服务数量,并根据预设冗余数量和可用服务数量确定待补齐服务数量;依次探测初选远程服务对应的备选远程服务;根据探测结果从备选远程服务中选取目标远程服务,直至目标远程服务的数量满足待补齐服务数量。本实施例在需要进行多远程服务通信的场景下通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据待补齐服务数量从备选远程服务中选取目标远程服务,相较于现有技术中中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷,本实施例实现了在进行将数据传递到多个服务之前利用协程进行服务探活并过滤掉不可用服务的方法,能尽可能确保数据的完整传递。
参照图4,图4为本发明多路远程服务选取方法第三实施例的流程示意图,基于本发明的第一实施例提出本发明多路远程服务选取方法第三实施例。
在本实施例中,所述步骤S20包括:
步骤S201:通过预设查询协议对所述探活结果中探测成功的服务数组进行查询,根据查询结果确定可用服务数量。
需说明的是,预设查询协议是预先设置的用于对探活结果中探测成功的服务数组和探测失败的服务数组进行查询的协议,所述协议与协程数量所对应。
可理解的是,查询结果可以是指通过预设查询协议启动所有存储服务器相同数量的协程进行查询,获得的结果,其中查询结果中包括探测成功和探测失败的结果,并根据探测成功的服务数组确定可用服务数量。
步骤S202:根据所述可用服务数量和所述预设冗余数量进行对比,根据对比结果确定是否需要补齐服务。
需说明的是,对比结果包括可用服务数量小于预设冗余数量和可用服务数量不小于预设冗余数量两种结果。
进一步地,所述步骤S202包括:在所述可用服务数量小于所述预设冗余数量时,确定需要补齐服务;在所述可用服务数量不小于所述预设冗余数量时,确定不需要补齐服务。
步骤S203:在需要补齐服务时,根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量。
在本实施例中,所述步骤S30包括:
步骤S301:在需要补齐服务时,根据所述初选远程服务从所述预设服务器列表中确定备选远程服务。
需说明的是,在上述实施例中,从所有配置的服务器列表中按顺序取出最小冗余数据传递数量的初选服务的服务器,取出的结果定义为arriveServerList[]RemoteServer,其它备选服务的服务器则放入一个列表中,定义为bakServerList[]RemoteServer。如:
//从配置中取出最小冗余数量的服务器
arriveServerList=remoteServerList[:minRemoteTrans]
//从配置中取备用服务器
bakServerList=remoteServerList[minRemoteTrans:]。
步骤S302:向所述备选远程服务同步发送探活指令,依次探测所述备选远程服务,并通过所述预设管道接收所述探活指令对应的探测结果。
需说明的是,当探测失败的服务数组中存在数据时,则表示按预设最小冗余量取出的服务器列表中存在不可用的服务,则按顺序逐个探测剩余的备选服务器,当取得第一个探测成功的结果时,停止探测,并将此服务放入探测成功数组中,否则将服务放入探测失败的服务数组中。如:
所有探测成功的服务器都存放在sucSurveyServer中,探活结束后应以sucSurveyServer数组继续进行下一步处理。
具体实现中,使用协程对多个应用服务发送探活指令进行可用性探测,首次探测时会按最小冗余数量使用协程进行探测,在探测中如果出现不可用服务,则在协程结束后顺序对剩下的所有服务器按序进行探测,直到探测出可用服务的数量能补齐最小冗余数量时则结束整个探测,在探测过程中收集不可用服务的信息,探测结束后发送邮件进行报警。本方案在最大程度保障探测效率的同时极大提升服务的稳定性。
本实施例通过向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;根据探活结果确定可用服务数量,并根据预设冗余数量和可用服务数量确定待补齐服务数量;依次探测初选远程服务对应的备选远程服务;根据探测结果从备选远程服务中选取目标远程服务,直至目标远程服务的数量满足待补齐服务数量。本实施例在需要进行多远程服务通信的场景下通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据待补齐服务数量从备选远程服务中选取目标远程服务,相较于现有技术中中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷,本实施例实现了在进行将数据传递到多个服务之前利用协程进行服务探活并过滤掉不可用服务的方法,能尽可能确保数据的完整传递。
此外,为实现上述目的,本发明还提出一种多路远程服务选取设备,所述多路远程服务选取设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多路远程服务选取程序,所述多路远程服务选取程序配置为实现如上文所述的多路远程服务选取的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有多路远程服务选取程序,所述多路远程服务选取程序被处理器执行时实现如上文所述的多路远程服务选取方法的步骤。
参照图5,图5为本发明多路远程服务选取装置第一实施例的结构框图。
如图5所示,本发明实施例提出的多路远程服务选取装置包括:
服务探活模块10,用于向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;
数量确定模块20,用于根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量;
所述服务探活模块10,还用于依次探测所述初选远程服务对应的备选远程服务;
服务选取模块30,用于根据探测结果从所述备选远程服务中选取目标远程服务,直至所述目标远程服务的数量满足所述待补齐服务数量。
本实施例通过向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;根据探活结果确定可用服务数量,并根据预设冗余数量和可用服务数量确定待补齐服务数量;依次探测初选远程服务对应的备选远程服务;根据探测结果从备选远程服务中选取目标远程服务,直至目标远程服务的数量满足待补齐服务数量。本实施例在需要进行多远程服务通信的场景下通过向预设冗余数量的初选远程服务发送探活指令确定可用服务数量,并根据待补齐服务数量从备选远程服务中选取目标远程服务,相较于现有技术中中无法过滤出现故障的服务,从而导致数据的传递不完整,进而导致出现故障的缺陷,本实施例实现了在进行将数据传递到多个服务之前利用协程进行服务探活并过滤掉不可用服务的方法,能尽可能确保数据的完整传递。
进一步地,所述服务探活模块10还用于从预设服务器列表中提取预设冗余数量的初选远程服务,并根据预设协程执行函数向预设冗余数量的初选远程服务发送探活指令;基于预设管道接收所述探活指令对应的返回结果,并根据所述返回结果和所述初选远程服务对应的连接地址生成探活结果。
进一步地,所述服务探活模块10还用于根据所述预设管道配置的预设阻塞计数器对所述预设管道中的返回结果进行监听,获取阻塞次数;根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果。
进一步地,所述服务探活模块10还用于在所述阻塞次数未达到所述探活指令对应的返回结果数量时,不解除阻塞,直至阻塞次数达到所述返回结果数量;在所述阻塞次数达到所述探活指令对应的返回结果数量时,解除阻塞并接收所述探活指令对应的返回结果。
进一步地,所述数量确定模块20还用于通过预设查询协议对所述探活结果中探测成功的服务数组进行查询,根据查询结果确定可用服务数量;根据所述可用服务数量和所述预设冗余数量进行对比,根据对比结果确定是否需要补齐服务;在需要补齐服务时,根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量。
进一步地,所述数量确定模块20还用于在所述可用服务数量小于所述预设冗余数量时,确定需要补齐服务;在所述可用服务数量不小于所述预设冗余数量时,确定不需要补齐服务。
进一步地,所述服务探活模块10还用于在需要补齐服务时,根据所述初选远程服务从所述预设服务器列表中确定备选远程服务;向所述备选远程服务同步发送探活指令,依次探测所述备选远程服务,并通过所述预设管道接收所述探活指令对应的探测结果。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的多路远程服务选取方法,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种多路远程服务选取方法,其特征在于,所述多路远程服务选取方法包括以下步骤:
向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;
根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量;
依次探测所述初选远程服务对应的备选远程服务;
根据探测结果从所述备选远程服务中选取目标远程服务,直至所述目标远程服务的数量满足所述待补齐服务数量。
2.如权利要求1所述的多路远程服务选取方法,其特征在于,所述向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果的步骤,包括:
从预设服务器列表中提取预设冗余数量的初选远程服务,并根据预设协程执行函数向预设冗余数量的初选远程服务发送探活指令;
基于预设管道接收所述探活指令对应的返回结果,并根据所述返回结果和所述初选远程服务对应的连接地址生成探活结果。
3.如权利要求2所述的多路远程服务选取方法,其特征在于,所述基于预设管道接收所述探活指令对应的返回结果的步骤,包括:
根据所述预设管道配置的预设阻塞计数器对所述预设管道中的返回结果进行监听,获取阻塞次数;
根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果。
4.如权利要求3所述的多路远程服务选取方法,其特征在于,所述根据所述阻塞次数和所述返回结果判断是否解除阻塞,根据判断结果进行阻塞解除并接收所述探活指令对应的返回结果的步骤,包括:
在所述阻塞次数未达到所述探活指令对应的返回结果数量时,不解除阻塞,直至阻塞次数达到所述返回结果数量;
在所述阻塞次数达到所述探活指令对应的返回结果数量时,解除阻塞并接收所述探活指令对应的返回结果。
5.如权利要求1-4中任一项所述的多路远程服务选取方法,其特征在于,所述根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量的步骤,包括:
通过预设查询协议对所述探活结果中探测成功的服务数组进行查询,根据查询结果确定可用服务数量;
根据所述可用服务数量和所述预设冗余数量进行对比,根据对比结果确定是否需要补齐服务;
在需要补齐服务时,根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量。
6.如权利要求5所述的多路远程服务选取方法,其特征在于,所述根据所述可用服务数量和所述预设冗余数量进行对比,根据对比结果确定是否需要补齐服务的步骤,包括:
在所述可用服务数量小于所述预设冗余数量时,确定需要补齐服务;
在所述可用服务数量不小于所述预设冗余数量时,确定不需要补齐服务。
7.如权利要求6所述的多路远程服务选取方法,其特征在于,所述依次探测所述初选远程服务对应的备选远程服务的步骤,包括:
在需要补齐服务时,根据所述初选远程服务从所述预设服务器列表中确定备选远程服务;
向所述备选远程服务同步发送探活指令,依次探测所述备选远程服务,并通过所述预设管道接收所述探活指令对应的探测结果。
8.一种多路远程服务选取设备,其特征在于,所述多路远程服务选取设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多路远程服务选取程序,所述多路远程服务选取程序被所述处理器执行时实现如权利要求1至7中任一项所述的多路远程服务选取方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有多路远程服务选取程序,所述多路远程服务选取程序被处理器执行时实现如权利要求1至7中任一项所述的多路远程服务选取方法的步骤。
10.一种多路远程服务选取装置,其特征在于,所述多路远程服务选取装置包括:
服务探活模块,用于向预设冗余数量的初选远程服务发送探活指令,并接收所述探活指令对应的探活结果;
数量确定模块,用于根据所述探活结果确定可用服务数量,并根据所述预设冗余数量和所述可用服务数量确定待补齐服务数量;
所述服务探活模块,还用于依次探测所述初选远程服务对应的备选远程服务;
服务选取模块,用于根据探测结果从所述备选远程服务中选取目标远程服务,直至所述目标远程服务的数量满足所述待补齐服务数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210452169.5A CN115002193A (zh) | 2022-04-27 | 2022-04-27 | 多路远程服务选取方法、设备、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210452169.5A CN115002193A (zh) | 2022-04-27 | 2022-04-27 | 多路远程服务选取方法、设备、存储介质及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115002193A true CN115002193A (zh) | 2022-09-02 |
Family
ID=83025617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210452169.5A Pending CN115002193A (zh) | 2022-04-27 | 2022-04-27 | 多路远程服务选取方法、设备、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002193A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685501A (zh) * | 2013-12-06 | 2014-03-26 | 北京奇虎科技有限公司 | 数据处理方法、装置和系统 |
CN107800551A (zh) * | 2016-08-31 | 2018-03-13 | 北京优朋普乐科技有限公司 | Redis集群系统及其提高可靠性的方法、客户端 |
CN109819497A (zh) * | 2019-02-27 | 2019-05-28 | 中国联合网络通信集团有限公司 | 一种簇头选择方法及装置 |
CN110532114A (zh) * | 2019-09-04 | 2019-12-03 | 浪潮云信息技术有限公司 | 基于消息队列的定时任务管理系统及分配方法 |
CN112764968A (zh) * | 2020-12-29 | 2021-05-07 | 杭州海康威视系统技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN112866004A (zh) * | 2018-08-23 | 2021-05-28 | 华为技术有限公司 | 控制面设备的切换方法、装置及转控分离系统 |
CN114024877A (zh) * | 2021-10-29 | 2022-02-08 | 恒安嘉新(北京)科技股份公司 | 主机存活探测方法、装置、计算机设备和存储介质 |
-
2022
- 2022-04-27 CN CN202210452169.5A patent/CN115002193A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685501A (zh) * | 2013-12-06 | 2014-03-26 | 北京奇虎科技有限公司 | 数据处理方法、装置和系统 |
CN107800551A (zh) * | 2016-08-31 | 2018-03-13 | 北京优朋普乐科技有限公司 | Redis集群系统及其提高可靠性的方法、客户端 |
CN112866004A (zh) * | 2018-08-23 | 2021-05-28 | 华为技术有限公司 | 控制面设备的切换方法、装置及转控分离系统 |
CN109819497A (zh) * | 2019-02-27 | 2019-05-28 | 中国联合网络通信集团有限公司 | 一种簇头选择方法及装置 |
CN110532114A (zh) * | 2019-09-04 | 2019-12-03 | 浪潮云信息技术有限公司 | 基于消息队列的定时任务管理系统及分配方法 |
CN112764968A (zh) * | 2020-12-29 | 2021-05-07 | 杭州海康威视系统技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114024877A (zh) * | 2021-10-29 | 2022-02-08 | 恒安嘉新(北京)科技股份公司 | 主机存活探测方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108470298B (zh) | 资源数值转移的方法、装置和系统 | |
CN103562890B (zh) | 在发布/订阅消息系统中管理消息订阅的方法和系统 | |
CN101595668A (zh) | 建立协调定时网络中的服务器之间的逻辑路径的方法和系统 | |
CN112463144B (zh) | 分布式存储的命令行服务方法、系统、终端及存储介质 | |
CN105262633B (zh) | 一种应用级容灾方法及应用级容灾系统 | |
CN103139157B (zh) | 一种基于socket的网络通信方法、装置及系统 | |
CN111858083B (zh) | 一种远程服务的调用方法、装置、电子设备及存储介质 | |
CN109819023B (zh) | 分布式事务处理方法及相关产品 | |
CN110825399A (zh) | 一种应用程序的部署方法及装置 | |
WO2016116013A1 (zh) | 软件升级方法和系统 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN104683486A (zh) | 分布式系统中处理同步消息的方法、装置、分布式系统 | |
CN110852603B (zh) | 高吞吐量的风控数据处理方法、装置、设备及存储介质 | |
CN115002193A (zh) | 多路远程服务选取方法、设备、存储介质及装置 | |
CN111404780A (zh) | 一种远程直接存储器访问网络集群的功能测试方法和装置 | |
CN115480934A (zh) | 一种分布式数据处理的方法、装置、设备及储存介质 | |
CN112379952B (zh) | 一种跨进程回调的实现方法 | |
CN111147400B (zh) | 一种命令行配置同步的方法、装置及电子设备 | |
CN112130900B (zh) | 一种bmc的用户信息管理方法、系统、设备以及介质 | |
CN110609707A (zh) | 在线数据处理系统生成方法、装置及设备 | |
CN112749045A (zh) | 数据库集群切换方法、设备、存储介质及装置 | |
CN110008010A (zh) | 系统调用方法、装置、设备及可读存储介质 | |
CN111200512A (zh) | 网络连接容灾方法、终端设备、存储介质及电子设备 | |
CN105574020B (zh) | 一种数据库操作方法和装置 | |
CN116662016B (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 |