CN110086658B - 接口切换方法、装置及计算机可读存储介质 - Google Patents

接口切换方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN110086658B
CN110086658B CN201910290941.6A CN201910290941A CN110086658B CN 110086658 B CN110086658 B CN 110086658B CN 201910290941 A CN201910290941 A CN 201910290941A CN 110086658 B CN110086658 B CN 110086658B
Authority
CN
China
Prior art keywords
interface
url
state code
function
database
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
Application number
CN201910290941.6A
Other languages
English (en)
Other versions
CN110086658A (zh
Inventor
张旭明
宫林涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910290941.6A priority Critical patent/CN110086658B/zh
Publication of CN110086658A publication Critical patent/CN110086658A/zh
Application granted granted Critical
Publication of CN110086658B publication Critical patent/CN110086658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及基架运维,提供一种接口切换方法、装置及存储介质,方法包括:探测各个接口的运行情况,运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果;当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确并且http状态码与状态码预设值相同的无故障接口;应用获取无故障接口的配置完成接口的切换。本发明在现行的接口出现故障时,可根据不同的接口下发配置到业务系统,并快速与运行状况最优的接口进行连接,切换过程中无需重启应用,提高应用恢复时效。

Description

接口切换方法、装置及计算机可读存储介质
技术领域
本发明涉及基架运维,具体地说,涉及一种接口切换方法、装置及计算机可读存储介质。
背景技术
现在的系统几乎很少是自成一个封闭的体系的,在互联网应用中,经常需要调用一些第三方的功能接口,例如:人脸识别、天气查询、地图接口等等,这些服务会有多个供应商提供接口。例如,墨迹天气、国家气象局等都开放有天气查询的接口。高德地图、百度地图也都提供有地图展示的接口。现阶段,如果单个供应商提供的接口出现故障,需要手工修改配置并且重启,然后切换到别的接口,因为这个过程是需要手工操作的,耗时会比较长,影响功能恢复的时效并且重启会对系统可用率带来损耗。而且,在切换时并不知道切换的接口运行状况。如果该接口运行状况并不好,则有可能在耗费时间进行修改配置、重启并切换到接口后,再次遭遇第三方及接口故障,因此,对于接口的监控,以及能够快速进行接口的切换是目前比较需要解决的问题,而截至目前,暂未有较好的解决方案。
发明内容
为解决以上技术问题,本发明提供一种接口切换方法,应用于电子装置,探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确、状态码与状态码预设值相同的无故障接口;应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换。
优选地,对于返回信息正确,并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接。
优选地,判断返回信息是否正确的方法是通过正则表达式来匹配返回信息里的关键字,如果匹配则为true否则为false,包括以下步骤:
先使用urllib.urlopen()函数来获取接口的服务器的url上的信息,并赋值给response变量;
导入Python的re模块,调用re模块的compile()函数,compile()函数根据包含正则表达式的字符串创建模式对象;
然后response.read()函数读取response变量中的内容,并利用search()函数来查找其中是否有与compile()函数设定的字符串匹配的结果,如果有,则返回true,否则,返回false。
优选地,获取响应耗时是通过引入datetime模块,利用datetime模块中datetime.now()函数,返回当前的本地时间并赋值给starttime变量;
然后使用Python的urllib模块中的urlopen()函数创建一个表示远程url的类文件对象;
然后通过status=urllib.urlopen(url,data).code()来获取http状态码,其中,urlopen(url,data)是实现对接口的服务器的url的访问,并通过code()函数获取http状态码;
在获取到http状态码后,再通过变量endtime来获取当前的本地时间,利用endtime与starttime的差值得到接口响应的耗时。
优选地,接口的配置保存在redis数据库里,在redis数据库里维护一个包含配置参数的hash数据结构,所述hash数据结构包括如下参数:
{intel_channel:{protocol:"http",address:"供应商地址",port:"供应商端口",url:"供应商url"}}
intel_channel:代表供应商的配置;
protocol:代表供应商的用到的协议;
address:代表供应商的地址;
port:代表供应商的端口;
url:代表供应商的url。
优选地,利用redis.ConnectionPool()函数建立连接池对象来完成redis数据库与应用之间的连接,按照接口的数量创建初始数量的连接池。
优选地,当有应用要访问redis数据库时,从连接池中取出一个连接,如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大,则创建一个新的数据库连接。
本发明还提供一种电子装置,该电子装置包括:存储器和处理器,所述存储器中存储有接口切换程序,所述接口切换程序被所述处理器执行时实现如下步骤:探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息为true或false的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息判断为true并且http状态码与状态码预设值相同的无故障接口;应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换。
优选地,对于返回信息正确并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如上所述的接口切换方法。
本发明能够对各接口的运行状况进行监控,获取接口的数据并保存到数据库中。在现行的接口出现故障时,可以根据不同的接口下发配置到业务系统,并快速的与运行状况最优的接口进行连接。切换过程中无需重启应用,大大提高应用恢复的时效。
附图说明
通过结合下面附图对其实施例进行描述,本发明的上述特征和技术优点将会变得更加清楚和容易理解。
图1是本发明实施例的接口切换方法的流程示意图;
图2是本发明实施例的电子装置的硬件架构示意图;
图3是本发明实施例的接口切换程序的模块构成图;
图4是本发明实施例的接口运行情况探测模块的单元构成图。
具体实施方式
下面将参考附图来描述本发明所述的接口切换方法、装置及计算机可读存储介质的实施例。本领域的普通技术人员可以认识到,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式或其组合对所描述的实施例进行修正。因此,附图和描述在本质上是说明性的,而不是用于限制权利要求的保护范围。此外,在本说明书中,附图未按比例画出,并且相同的附图标记表示相同的部分。
图1为本发明实施例提供的接口切换方法的流程示意图,应用于电子装置,该方法包括以下步骤:
步骤S10,探测各个接口的运行情况,具体说,是向各接口发送探测请求,各接口返回包含http状态码的返回信息,所述运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息。其中,http状态码是用以表示服务器超文本传输协议响应状态的数字代码。
步骤S30,当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确的,并且http状态码与状态码预设值相同的接口,即为无故障接口;其中,状态码预设值是200,表示请求成功。
步骤S50,应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换。
进一步地,对于返回信息判断结果为true(正确)并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接。
进一步地,判断返回信息是否正确的方法是通过正则表达式来匹配返回信息里的关键字,如果匹配则为true否则为false。具体说,先使用urllib.urlopen()函数来获取该接口的服务器的地址url上的信息,并赋值给response变量。导入re模块,调用compile()函数,compile()函数根据包含正则表达式的字符串创建模式对象。然后response.read()读取response变量中的内容,并利用search()函数来查找其中是否有与compile()函数设定的字符串匹配的结果。如果有,则返回true(正确),否则,返回false(错误)。
进一步地,获取响应耗时是通过引入datetime模块,利用datetime模块中的datetime.now()函数,返回一个本地时间并赋值给变量starttime,然后使用Pythonurllib库中的urllib模块中的urlopen()函数,创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。具体说,通过status=urllib.urlopen(url,data).code(),其中,url是目标资源的地址,也就是提供接口的服务器的地址,利用urlopen(url,data)即可实现对该地址的访问,并通过code()函数获取http状态码。在获取到http状态码后,再通过一个变量endtime来获取一个本地时间,也就是获取了得到响应后的当前本地时间。利用endtime与starttime的差值即可得到接口响应的耗时。
进一步地,接口的配置保存在redis数据库里,在redis数据库里维护一个包含配置参数的hash数据结构,所述hash数据结构包括如下参数:
{intel_channel:{protocol:"http",address:"供应商地址",port:"供应商端口",url:"供应商url"}}
intel_channel:代表供应商(即提供接口服务的服务器)的配置;
protocol:代表供应商的用到的协议;
address:代表供应商的地址;
port:代表供应商的端口;
url:代表供应商的url。
进一步地,利用redis.ConnectionPool()函数建立连接池对象来完成redis数据库与应用之间的连接,按照接口的数量创建初始数量的连接池。当有应用要访问redis数据库时,从连接池中取出一个连接,如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大,则创建一个新的数据库连接。
参阅图2所示,是本发明电子装置的实施例的硬件架构示意图。本实施例中,所述电子装置2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图2所示,所述电子装置2至少包括,但不限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。其中:所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如所述接口切换程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置2的总体操作,例如执行与所述电子装置2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的接口切换程序等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述电子装置2与推送平台相连,在所述电子装置2与推送平台之间建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
可选地,该电子装置2还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)显示器等。显示器用于显示在电子装置2中处理的信息以及用于显示可视化的用户界面。
需要指出的是,图2仅示出了具有组件21-23的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
包含可读存储介质的存储器21中可以包括操作系统、接口切换程序50等。处理器22执行存储器21中接口切换程序50时实现如下步骤:
步骤S10,探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;
步骤S30,当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确,并且http状态码与状态码预设值相同的无故障接口;
步骤S50,应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换。
在本实施例中,存储于存储器21中的所述接口切换程序可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并可由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。例如,图3示出了所述接口切换程序的程序模块示意图,该实施例中,所述接口切换程序50可以被分割为接口运行情况探测模块51、接口切换模块52、响应耗时比较模块53,其中,如图4所示,接口运行情况探测模块51又包括响应耗时探测单元511、http状态码获取单元512、返回信息判断单元513。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述接口切换程序在所述电子装置2中的执行过程。以下描述将具体介绍所述程序模块的具体功能。
其中,接口运行情况探测模块51用于探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息为true(正确)或false(错误)的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息。响应耗时探测单元511用于探测响应耗时。http状态码获取单元512用于获取http状态码、返回信息判断单元513用于对返回信息进行true或false的判断。
接口切换模块52用于当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息判断为true并且http状态码与状态码预设值相同的无故障接口;应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换。
进一步地,还设置有响应耗时比较模块53,用于对于判断结果为true并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接。
进一步地,返回信息判断单元513通过正则表达式来匹配返回结果里的关键字,如果匹配则为true否则为false。具体说,先使用urllib.urlopen()函数来获取该接口的服务器的地址url上的信息,并赋值给response变量。导入re模块,调用compile()函数,compile()函数根据包含正则表达式的字符串创建模式对象,在这里正则表达式就是“关键字”这几个字符串。然后response.read()读取response变量中的内容,并利用search()函数来查找其中是否有与compile()函数设定的字符串匹配的结果。如果有,则返回true,否则,返回false。
进一步地,响应耗时探测单元511获取响应耗时是通过引入datetime模块,利用datetime模块中的datetime.now()函数,返回一个本地时间并赋值给变量starttime,然后使用Python urllib库中的urllib模块中的urlopen()函数,创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。具体说,通过status=urllib.urlopen(url,data).code(),其中,url是目标资源的地址,也就是提供接口的服务器的地址,利用urlopen(url,data)即可实现对该地址的访问,http状态码获取单元512通过code()函数获取HTTP状态码。在http状态码获取单元512获取到http状态码后,再通过一个变量endtime来获取一个本地时间,也就是获取了得到响应后的当前本地时间。利用endtime与starttime的差值即可得到接口响应的耗时。
进一步地,接口切换模块52还用于将接口的配置保存在redis数据库里,在redis数据库里维护一个包含配置参数的hash数据结构,所述hash数据结构包括如下参数:{intel_channel:{protocol:"http",address:"供应商地址",port:"供应商端口",url:"供应商url"}}
intel_channel:代表供应商的配置;
protocol:代表供应商的用到的协议;
address:代表供应商的地址;
port:代表供应商的端口;
url:代表供应商的url。
进一步地,接口切换模块52利用redis.ConnectionPool()函数建立连接池对象来完成redis数据库与应用之间的连接,按照接口的数量创建初始数量的连接池。
进一步地,当有应用要访问redis数据库时,接口切换模块52从连接池中取出一个连接,如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大,则创建一个新的数据库连接。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括接口切换程序等,所述接口切换程序50被处理器22执行时实现如下操作:
步骤S10,探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;
步骤S30,当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确,并且http状态码与状态码预设值相同的无故障接口;
步骤S50,应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换。
本发明之计算机可读存储介质的具体实施方式与上述接口切换方法以及电子装置2的具体实施方式大致相同,在此不再赘述。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种接口切换方法,应用于电子装置,其特征在于:
探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息是否正确的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;
当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息正确、状态码与状态码预设值相同的无故障接口;
应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换,对于返回信息正确,并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接,
获取响应耗时是通过引入datetime模块,利用datetime模块中datetime.now()函数,返回当前的本地时间并赋值给starttime变量;
然后使用Python的urllib模块中的urlopen()函数创建一个表示远程url的类文件对象;
然后通过status = urllib.urlopen(url,data).code()来获取http状态码,其中,urlopen(url,data)是实现对接口的服务器的url的访问,并通过code()函数获取http状态码;
在获取到http状态码后,再通过变量endtime来获取当前的本地时间,利用endtime与starttime的差值得到接口响应的耗时。
2.根据权利要求1所述的接口切换方法,其特征在于:判断返回信息是否正确的方法是通过正则表达式来匹配返回信息里的关键字,如果匹配则为true否则为false,包括以下步骤:
先使用urllib.urlopen()函数来获取接口的服务器的url上的信息,并赋值给response变量;
导入Python的re模块,调用re模块的compile()函数,compile()函数根据包含正则表达式的字符串创建模式对象;
然后response.read()函数读取response变量中的内容,并利用search()函数来查找其中是否有与compile()函数设定的字符串匹配的结果,如果有,则返回true,否则,返回false。
3.根据权利要求1所述的接口切换方法,其特征在于:
接口的配置保存在redis数据库里,在redis数据库里维护一个包含配置参数的hash数据结构,所述hash数据结构包括如下参数:{intel_channel:{protocol:"http",address:"供应商地址 ",port:"供应商端口",url:"供应商url"}}
intel_channel:代表供应商的配置;
protocol:代表供应商的用到的协议;
address:代表供应商的地址;
port:代表供应商的端口;
url:代表供应商的url。
4.根据权利要求3所述的接口切换方法,其特征在于:
利用redis.ConnectionPool()函数建立连接池对象来完成redis数据库与应用之间的连接,按照接口的数量创建初始数量的连接池。
5.根据权利要求4所述的接口切换方法,其特征在于:
当有应用要访问redis数据库时,从连接池中取出一个连接,如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大,则创建一个新的数据库连接。
6.一种电子装置,其特征在于,该电子装置包括:存储器和处理器,所述存储器中存储有接口切换程序,所述接口切换程序被所述处理器执行时实现如下步骤:
探测各个接口的运行情况,所述运行情况至少包括响应耗时、http状态码、返回信息为true或false的判断结果,并将探测的数据存储在数据库中,其中,返回信息包括提供接口服务的服务器的url上的信息;
当在用的接口出现故障的情况下,按照距离当前时刻最近的顺序从数据库中取出探测的各接口的最近一次的运行情况,取出返回信息判断为true并且http状态码与状态码预设值相同的无故障接口;
应用访问无故障接口之前先从存储有接口的配置的数据库中获取无故障接口的配置,然后完成接口的切换,
对于返回信息正确,并且http状态码与状态码预设值相同的接口,还比较响应耗时的大小,并切换至与响应耗时最小的接口连接,
获取响应耗时是通过引入datetime模块,利用datetime模块中datetime.now()函数,返回当前的本地时间并赋值给starttime变量;
然后使用Python的urllib模块中的urlopen()函数创建一个表示远程url的类文件对象;
然后通过status = urllib.urlopen(url,data).code()来获取http状态码,其中,urlopen(url,data)是实现对接口的服务器的url的访问,并通过code()函数获取http状态码;
在获取到http状态码后,再通过变量endtime来获取当前的本地时间,利用endtime与starttime的差值得到接口响应的耗时。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现权利要求1至5中任一项所述的接口切换方法。
CN201910290941.6A 2019-04-11 2019-04-11 接口切换方法、装置及计算机可读存储介质 Active CN110086658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910290941.6A CN110086658B (zh) 2019-04-11 2019-04-11 接口切换方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910290941.6A CN110086658B (zh) 2019-04-11 2019-04-11 接口切换方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110086658A CN110086658A (zh) 2019-08-02
CN110086658B true CN110086658B (zh) 2022-09-30

Family

ID=67414774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910290941.6A Active CN110086658B (zh) 2019-04-11 2019-04-11 接口切换方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110086658B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489309A (zh) * 2019-08-26 2019-11-22 深圳乐信软件技术有限公司 一种接口的监控预警方法、装置、设备及存储介质
CN111159277A (zh) * 2019-12-02 2020-05-15 三盟科技股份有限公司 一种智能数据分析方法及系统
CN111984532A (zh) * 2020-07-31 2020-11-24 五八有限公司 一种基于小程序的异常处理方法及装置
CN113656100B (zh) * 2021-08-17 2023-07-07 城云科技(中国)有限公司 接口切换方法、装置、电子装置及计算机程序产品
CN113783806B (zh) * 2021-08-31 2023-10-17 上海新氦类脑智能科技有限公司 分流器路由跳转方法、装置、介质、设备及其应用的多核系统
CN115442232B (zh) * 2022-08-09 2023-07-25 中通服创立信息科技有限责任公司 一种cdn分布式管理平台接口监控方法及系统
CN115344366B (zh) * 2022-08-10 2023-10-31 中电金信软件有限公司 连接池对象的切换方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949656B1 (en) * 2012-06-29 2015-02-03 Emc Corporation Port matching for data storage system port failover
CN108134708A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 监控第三方接口的方法和装置
CN108390777A (zh) * 2018-02-05 2018-08-10 深圳壹账通智能科技有限公司 通信接口的调用方法、装置、设备及计算机可读存储介质
CN109218045A (zh) * 2017-06-30 2019-01-15 中兴通讯股份有限公司 一种链路切换方法及装置
CN109446071A (zh) * 2018-09-26 2019-03-08 深圳壹账通智能科技有限公司 接口测试方法、接口测试装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949656B1 (en) * 2012-06-29 2015-02-03 Emc Corporation Port matching for data storage system port failover
CN108134708A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 监控第三方接口的方法和装置
CN109218045A (zh) * 2017-06-30 2019-01-15 中兴通讯股份有限公司 一种链路切换方法及装置
CN108390777A (zh) * 2018-02-05 2018-08-10 深圳壹账通智能科技有限公司 通信接口的调用方法、装置、设备及计算机可读存储介质
CN109446071A (zh) * 2018-09-26 2019-03-08 深圳壹账通智能科技有限公司 接口测试方法、接口测试装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110086658A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN110086658B (zh) 接口切换方法、装置及计算机可读存储介质
CN108427705B (zh) 电子装置、分布式系统日志查询方法及存储介质
CN107948314B (zh) 基于规则文件的业务处理方法、装置及服务器
US11509505B2 (en) Method and apparatus for operating smart network interface card
WO2014183444A1 (en) Method, terminal, server, and system for data processing
CN113094674B (zh) 页面展示方法、装置、电子设备及存储介质
CN110647739A (zh) 软件安装检测方法、装置、终端及存储介质
CN109684093A (zh) 数据处理方法及系统
CN110677506B (zh) 网络访问方法、装置、计算机设备及存储介质
WO2023019736A1 (zh) 基于云主机的qga服务管理方法、装置、设备及介质
CN110267215B (zh) 一种数据检测方法、设备及存储介质
CN114389969A (zh) 客户端的测试方法、装置、电子设备和存储介质
CN114372256A (zh) 应用程序运行方法、装置、设备和存储介质
CN116545905A (zh) 一种服务健康检测方法、装置、电子设备及存储介质
CN116450176A (zh) 版本更新方法、装置、电子设备及存储介质
CN116361106A (zh) 一种日志处理方法、装置、电子设备及存储介质
CN112948733B (zh) 接口维护方法、装置、计算设备以及介质
CN109819034A (zh) 文件上传方法、装置、终端及存储介质
CN112818204B (zh) 一种业务的处理方法、装置、设备及存储介质
CN113656378A (zh) 一种服务器管理方法、装置、介质
CN114444087A (zh) 一种越权漏洞检测方法、装置、电子设备及存储介质
CN113656731A (zh) 广告页面的处理方法、装置、电子设备和存储介质
CN113127029A (zh) 固件更新方法、装置、电子设备及存储介质
CN113468109B (zh) 一种文件管理方法、装置、电子设备及存储介质
US12001418B2 (en) Onboarding a data source for access via a virtual assistant

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