CN111510480B - 一种请求发送方法、装置以及第一服务器 - Google Patents
一种请求发送方法、装置以及第一服务器 Download PDFInfo
- Publication number
- CN111510480B CN111510480B CN202010270794.9A CN202010270794A CN111510480B CN 111510480 B CN111510480 B CN 111510480B CN 202010270794 A CN202010270794 A CN 202010270794A CN 111510480 B CN111510480 B CN 111510480B
- Authority
- CN
- China
- Prior art keywords
- request
- server
- sending
- service
- 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.)
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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
-
- 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/566—Grouping or aggregating service requests, e.g. for unified processing
Abstract
本申请公开了一种请求发送方法、装置以及第一服务器,涉及通信技术领域。具体实现方案为:接收电子设备发送的第一请求;响应于第一请求,按照单体应用的第一预设流量比例以及微服务的第二预设流量比例,向单体服务或者微服务发送第二请求,其中,第二请求基于第一请求生成。即可按照第一预设流量比例和第二预设流量比例平衡发送给单体服务和微服务的请求量,可减少微服务发生异常导致对请求响应不及时以及容易发生错误的情况发生。
Description
技术领域
本申请涉及计算机技术中的通信技术领域,尤其涉及一种请求发送方法、装置以及第一服务器。
背景技术
单体应用是指一个归档包(例如,JAR、WAR、EAR或其他格式的包)包含了所有功能的应用程序,其对应的后台服务器为单体服务器,单体服务器将应用的所有功能放在一个单一进程中,微服务架构则是将一个单一应用程序开发为一组小型服务(微服务)的方法,每个功能分别放在一个独立的服务中,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制,通常采用的是HTTP API,这些服务围绕业务能力构建并且可通过全自动部署机制独立部署,这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。关键不仅仅在于微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”或“解耦”,而在功能上则表现为一个统一的整体。
从单体应用向微服务迁移过程,可以理解为从单体服务器向微服务迁移,需要多个子过程,例如,包括.业务拆分:将单体服务器拆分为多个独立的微服务;服务重构:根据性能或成本等因素,重构拆分后的微服务;测试验证:测试拆分或重构的微服务的结果与拆分前结果一致,符合预期;服务部署:容器化部署拆分后的微服务,按流量弹性伸缩;流量迁移:用户流量从单体服务器迁移到微服务架构,流量为单位时间内请求次数;以及异常处置:服务异常或用户反馈时,快速回切流量到单体服务器。
对于其中的流量迁移,目前,现有将应用的单体服务器的流量迁移到微服务过程中,所有请求都发送给微服务,即流量全部切换至微服务,一旦微服务发生异常等,容易出现对请求的响应不及时或发生错误。
发明内容
本申请提供一种请求发送方法、装置以及第一服务器,以解决现有流量迁移过程中微服务发生异常时,容易出现对请求的响应不及时或发生错误的问题。
第一方面,本申请一个实施例提供一种请求发送方法,应用于第一服务器,所述方法包括:
接收电子设备发送的第一请求;
响应于所述第一请求,按照所述单体应用的第一预设流量比例以及所述微服务的第二预设流量比例,向所述单体服务或者所述微服务发送第二请求,其中,所述第二请求基于所述第一请求生成。
在本申请的请求发送方法中,响应第一请求,按照第一应用的单体服务的第一预设流量比例以及所述第一应用的微服务的第二预设流量比例,确定向所述单体服务还是向所述微服务发送基于第一请求生成的第二请求,即向单体服务或微服务器发送第二请求,而不是将所有请求集中发送给微服务,如此,可按照第一预设流量比例和第二预设流量比例平衡发送给单体服务和微服务的请求量,可减少微服务发生异常导致对请求响应不及时以及容易发生错误的情况发生。
第二方面,本申请一个实施例提供一种请求发送装置,应用于第一服务器,所述装置包括:
第一接收模块,用于接收电子设备发送的第一请求;
第一发送模块,用于响应于所述第一请求,按照所述单体应用的第一预设流量比例以及所述微服务的第二预设流量比例,向所述单体服务或者所述微服务发送第二请求,其中,所述第二请求基于所述第一请求生成。
在本申请的请求发送装置中,通过第一发送模块响应第一请求,按照第一应用的单体服务的第一预设流量比例以及所述第一应用的微服务的第二预设流量比例,确定向所述单体服务还是向所述微服务发送基于第一请求生成的第二请求,即向单体服务或微服务器发送第二请求,而不是将所有请求集中发送给微服务,如此,可按照第一预设流量比例和第二预设流量比例平衡发送给单体服务和微服务的请求量,可减少微服务发生异常导致对请求响应不及时以及容易发生错误的情况发生。
第三方面,本申请一个实施例还提供一种第一服务器,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请各实施例提供的方法。
第四方面,本申请一个实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请各实施例提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请提供的一个实施例的请求发送方法的流程示意图;
图2是用来实现本申请实施例的请求发送方法的系统的原理图;
图3是本申请提供的一个实施例的请求发送装置的结构图;
图4是用来实现本申请实施例的请求发送方法的第一服务器的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,根据本申请的实施例,本申请提供一种请求发送方法,应用于第一服务器,方法包括:
步骤S101:接收电子设备发送的第一应用相关的第一请求。
该方法可应用在单体服务向微服务迁移的过程中,电子设备可以是服务器或终端设备,终端设备可以包括但不限于手机、平板电脑、膝上型电脑、个人数字助理、移动上网终端设备或可穿戴式设备等。第一服务器连接在电子设备与单体服务(即单体服务器)之间,同时也连接在电子设备与微服务(微服务器)之间。
在本实施例中,该第一请求为第一应用有关的请求,第一应用有对应的单体服务和微服务,微服务的数量可以有多个,第一应用的所有功能可全放在该单体服务,第一应用的每一个功能也可以分散在这些微服务中。
步骤S102:响应于第一请求,按照单体应用的第一预设流量比例以及微服务的第二预设流量比例,向单体服务或者微服务发送第二请求。
其中,第二请求基于第一请求生成,可以理解,第一请求与第二请求请求的内容相同,例如,第一请求用于请求某张图片,则第二请求也请求该张图片,第一请求用于请求某个视频,则第二请求也请求该视频等。收到第一请求后,可按照单体应用的第一预设流量比例以及微服务的第二预设流量比例,确定是向单体服务还是向微服务发送第二请求。可以理解流量为单位时间内的请求数量,即流量与请求有关,第一服务器为流控器,向单体服务和微服务分配流量,即进行流量控制。作为一个示例,第一预设流量比例与第二预设流量比例之和可以为1,例如,第一预设流量比例为70%,第二预设流量比例为30%。
在本申请的请求发送方法中,响应第一请求,按照第一应用的单体服务的第一预设流量比例以及所述第一应用的微服务的第二预设流量比例,确定向所述单体服务还是向所述微服务发送基于第一请求生成的第二请求,即向单体服务或微服务器发送第二请求,而不是将所有请求集中发送给微服务,如此,可按照第一预设流量比例和第二预设流量比例平衡发送给单体服务和微服务的请求量,可减少微服务发生异常导致对请求响应不及时以及容易发生错误的情况发生,提高对第二请求响应的效率以及响应准确性,与此同时,可减少微服务的压力。
在一个实施例中,向微服务发送第二请求之后,还包括:接收微服务响应于第二请求发送的第一返回结果;将第一返回结果发送给电子设备。
第一服务器在向微服务发送第二请求之后,微服务接收第二请求后可响应第二请求向第一服务器返回第二请求对应的第一返回结果,由于第二请求为基于第一请求生成,即第一返回结果可以认为是第一请求有关的返回结果,将基于第二请求得到的第一返回结果发送给电子设备,以便得到以及查看微服务器响应第一请求发送的第一返回结果。
在一个实施例中,向微服务发送第二请求之后,还包括:在满足预设发送条件的情况下,向单体服务发送第三请求,第三请求基于第一请求生成,且与第二请求请求的内容相同;接收单体服务响应于第三请求发送的第二返回结果。
第三请求请求的内容不仅与第二请求请求的内容相同,而且与第一请求请求的内容相同,即作用相同。即在本实施例中,第一服务器不但可向微服务发送第二请求,而且可向单体服务器发送第三请求,即还可向单体服务请求第三请求请求的内容,单体服务接收第三请求后,可响应第三请求,向第一服务器返回第二返回结果,以便得到以及查看微服务器响应第一请求发送的第二返回结果。
作为一个示例,预设发送条件可以但不限于包括当前时间与第一应用的微服务的启用时间(可以理解为该微服务第一次投入使用的时间)之间的第一时间差小于第一预设时长,或者,当前时间距离第一时间的时间差大于第二预设时长,第一时间为上一次(即最近一次)的第三请求(上一次接收的第一请求生成的第三请求)发送给单体服务器的发送时间,且该上一次接收的第一请求生成的第二请求向微服务完成发送。需要说明的是,本实施例中的第一请求为电子设备发送的请求,只要是电子设备向第一服务器发送的请求均称为第一请求,电子设备发送的不同请求,即第一请求不同。
在一个实施例中,接收微服务响应于第二请求发送的第一返回结果之后,还包括:获取第一返回结果与第二返回结果的比对结果;在比对结果为不一致的情况下,输出提示信息,提示信息用于提示第一返回结果与第二返回结果不一致。
第一服务器不但得到了微服务返回的第一返回结果,而且得到了单体服务返回的第二返回结果,且第一返回结果是基于第一请求生成的第二请求返回的结果,第二返回结果是基于第一请求生成的第三请求返回的结果,均与第一请求有关。然后获得第一返回结果与第二返回结果的比对结果;在比对结果为不一致的情况下,输出提示信息,不但可实现验证第一返回结果和第二返回结果的一致性,而且可提醒第一返回结果与第二返回结果不一致。
在一个实施例中,将第一返回结果与第二返回结果进行比对,得到比对结果,包括:将第一返回结果与第二返回结果发送给第二服务器;接收第二服务器发送的对第一返回结果与第二返回结果进行比对得到的比对结果。
第一服务器将第一返回结果与第二返回结果发送给第二服务器,由第二服务器对第一返回结果与第二返回结果进行比对得到比对结果,然后将其返回给第一服务器。即在本实施例中,第一服务器主要负责请求发送,而通过第二服务器负责对第一返回结果与第二返回结果的比对,第一服务器接收比对结果即可,如此,通过不同该服务器负责不同的处理过程,在第二服务器上进行结果比对,减少第一服务器的压力,提高第一服务器对请求发送过程的效率。
在一个实施例,第一服务器也可将对第一返回结果与第二返回结果进行比对得到该比对结果。如此,无需另外布置进行结果比对的服务器,减少成本。
在一个实施例中,向单体服务或者微服务发送第二请求之后,还包括:在检测到第二服务器发生异常的情况下,断开与第二服务器的连接。
第一服务器与第二服务器连接,第一服务器可将第一返回结果与第二返回结果发送给第二服务器,然而,在第一服务器检测到第二服务器发生异常的情况下,断开与第二服务器的连接,以便后续对第二服务器的维护等。
作为一个示例,第一服务器将第一返回结果与所述第二返回结果发送给第二服务器后,若在第一返回结果与所述第二返回结果的发送时间之后第三预设时长内未接收到第一返回结果与所述第二返回结果的比对结果,或者,若接收到第二服务器发送的第一异常信息,则可确认所述第二服务器发生异常。也可以若在第一返回结果与所述第二返回结果的发送时间之后的第三预设时长内未接收到第一返回结果与所述第二返回结果的比对结果,重新向第二服务器发送第一返回结果与所述第二返回结果,若在第一返回结果与所述第二返回结果的重新发送时间之后第三预设时长内未接收到第一返回结果与所述第二返回结果的比对结果,可确认所述第二服务器发生异常。也可以第一服务器将第一返回结果与所述第二返回结果发送给第二服务器后,若第一预设次数未接收到第一返回结果与所述第二返回结果的比对结果,可确认所述第二服务器发生异常,即该第一返回结果与所述第二返回结果发送次数为第一预设次数。
作为一个示例,在检测到第二服务器发生异常的情况下,该方法还可包括:输出第一报警信息,第一报警信息用于提示第二服务器发生异常。如此,通过输出第一报警信息,提示第二服务器发生异常,便于后续对第二服务器的及时维护。
在一个实施例中,向单体服务或者微服务发送第二请求之后,还包括:在检测到微服务发生异常的情况下,将流量切换到单体服务。
第一服务器与微服务器连接,第一服务器可将第二请求发送给微服务,然而,在第一服务器检测到微服务发生异常的情况下,可将流量切换到单体服务,例如,在第一服务器检测到微服务发生异常的情况下,若第一服务器后续接收到第一请求,则第一服务器将基于第一请求生成的第二请求发送给单体服务器即可,可提高使用第一应用的稳定性,也可便于后续对微服务器的维护等。
作为一个示例,第一服务器将第二请求发送给微服务后,若第二请求的发送时间之后第四预设时长内未接收到第二请求的第一返回结果,或者,若接收到微服务发送的第二异常信息,则可确认所述微服务发生异常。也可以若在第二请求的发送时间之后的第四预设时长内未接收到第一返回结果,重新向微服务发送第二请求,若在第二请求的重新发送时间之后第四预设时长内未接收到第一返回结果,可确认所述第二服务器发生异常。也可以第一服务器将第二请求发送给第二服务器后,若第二预设次数未接收到第一返回结果,可确认微服务发生异常,即该第二请求发送次数为第二预设次数。
作为一个示例,在检测到微服务发生异常的情况下,该方法还可包括:输出第二报警信息,第二报警信息用于提示微服务发生异常。如此,通过输出第二报警信息,提示微服务发生异常,便于后续对微服务的及时维护。
在一个实施例中,向单体服务或者微服务发送第二请求之后,还包括:在第一服务器发生异常的情况下,向反向代理服务器发送通知消息,通知消息用于通知反向代理服务器,第一服务器出现异常,且通知消息用于所述反向代理服务器将流量切换到单体服务器。即反向代理服务器在接收到通知消息后,将流量切换到单体服务,即后续反向代理服务器接收到电子设备发送的请求后,将该请求发送给单体服务即可。需要说明的是,反向代理服务器连接在电子设备与第一服务器之间,还连接在电子设备与单体服务之间。
作为一个示例,第一服务器发生异常的情况下,该方法还可包括:
输出第三报警信息,第三报警信息用于提示第一服务器发生异常。如此,通过输出第三报警信息,提示第一服务器发生异常,便于后续对第一服务器的及时维护。
下面以一个具体实施例对上述请求发送方法过程加以说明。
如图2所示,为实现上述请求发送方法的系统原理图,电子设备可以为终端设备或下游服务器,为第一请求来源设备,第一服务器承担服务发现、流量控制以及流量监控等,第二服务器可验证相同第一请求在单体服务和微服务的返回结果的一致性。监控报警服务器,用于监控异常发起报警。微服务,单体应用拆分后的多个服务器,如图2所示,数量为N个,N为大于1的整数。第一预设流量比例为70%,第二预设流量比例为30%。
电子发送第一请求到第一服务器,第一服务器根据预设流量配置(即包括上述第一预设流量比例和第二预设流量比例)分配到单体服务或拆分后的微服务上。即接收第一请求后,以第一预设流量比例的概率将生成的第二请求发送给单体服务,以第二预设流量比例的概率将生成的第二请求发送给微服务。若第二请求发送给了单体服务和微服务,则可接收单体服务返回的第二返回结果和微服务返回的第一返回结果,将其发送到第二服务器做结果对比,若结果对比不一致,则通过监控报警服务器发出报警。
另外,若第一服务器检测到自身出现异常,则通知反向代理服务器,反向代理服务器将流量回切到单体服务。若检测到微服务异常,则通过第一服务器将流量回切到单体服务。若检测到第二服务器发生异常,可摘除该第二服务器或屏蔽监控报警服务器(即监控报警服务器无法进行报警),恢复后再接入。
请参考图3,本申请提供一种实施例的请求发送装置300,应用于第一服务器,装置300包括:
第一接收模块301,用于接收电子设备发送的第一请求;
第一发送模块302,用于响应于第一请求,按照单体应用的第一预设流量比例以及微服务的第二预设流量比例,向单体服务或者微服务发送第二请求,其中,第二请求基于第一请求生成。
在本申请的请求发送装置中,通过第一发送模块响应第一请求,按照第一应用的单体服务的第一预设流量比例以及所述第一应用的微服务的第二预设流量比例,确定向所述单体服务还是向所述微服务发送基于第一请求生成的第二请求,即向单体服务或微服务器发送第二请求,而不是将所有请求集中发送给微服务,如此,可按照第一预设流量比例和第二预设流量比例平衡发送给单体服务和微服务的请求量,可减少微服务发生异常导致对请求响应不及时以及容易发生错误的情况发生,提高对第二请求响应的效率以及响应准确性,与此同时,可减少微服务的压力。
在一个实施例中,该装置还包括:
第二接收模块,用于接收微服务响应于第二请求发送的第一返回结果;
第二发送模块,用于将第一返回结果发送给电子设备。
在一个实施例中,该装置还包括:
第三发送模块,用于在满足预设发送条件的情况下,向单体服务发送第三请求,第三请求基于第一请求生成,且与第二请求请求的内容相同;
第三接收模块,用于接收单体服务响应于第三请求发送的第二返回结果。
在一个实施例中,该装置还包括:
对比结果获取模块,用于获取第一返回结果与第二返回结果的比对结果;
输出模块,用于在比对结果为不一致的情况下,输出提示信息,提示信息用于提示第一返回结果与第二返回结果不一致。
在一个实施例中,对比结果获取模块,包括:
第四发送模块,用于将第一返回结果与第二返回结果发送给第二服务器;
第四接收模块,用于接收第二服务器发送的对第一返回结果与第二返回结果进行比对得到的比对结果。
在一个实施例中,该装置还包括:
断开模块,用于在检测到第二服务器发生异常的情况下,断开与第二服务器的连接。
在一个实施例中,该装置还包括:
切换模块,用于在检测到微服务发生异常的情况下,将流量切换到单体服务。
上述各实施例的请求发送装置为实现上述各实施例的请求发送方法的装置,技术特征对应,技术效果对应,在此不再赘述。
根据本申请的实施例,本申请还提供了一种第一服务器和一种可读存储介质。
如图4所示,是根据本申请实施例的请求发送方法的第一服务器的框图。第一服务器旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。第一服务器还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该第一服务器包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在第一服务器内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUM的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个第一服务器,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的请求发送方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的请求发送方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的请求发送方法对应的程序指令/模块(例如,附图3所示的第一接收模块301、第一发送模块302)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的请求发送方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据键盘显示的第一服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至键盘显示的第一服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
请求发送方法的第一服务器还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与键盘显示的第一服务器的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASMC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者第二可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,响应第一请求,按照第一应用的单体服务的第一预设流量比例以及所述第一应用的微服务的第二预设流量比例,确定向所述单体服务还是向所述微服务发送基于第一请求生成的第二请求,即向单体服务或微服务器发送第二请求,而不是将所有请求集中发送给微服务,如此,可按照第一预设流量比例和第二预设流量比例平衡发送给单体服务和微服务的请求量,可减少微服务发生异常导致对请求响应不及时以及容易发生错误的情况发生。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (8)
1.一种请求发送方法,其特征在于,应用于第一服务器,所述方法包括:
接收电子设备发送的第一应用相关的第一请求;
响应于所述第一请求,按照所述第一应用的单体服务的第一预设流量比例以及所述第一应用的微服务的第二预设流量比例,向所述单体服务或者所述微服务发送第二请求,其中,所述第二请求基于所述第一请求生成;
向所述微服务发送第二请求之后,还包括:
在满足预设发送条件的情况下,向所述单体服务发送第三请求,所述第三请求基于所述第一请求生成,且与所述第二请求请求的内容相同;
接收所述微服务响应于所述第二请求发送的第一返回结果;
接收所述单体服务响应于所述第三请求发送的第二返回结果;
获取所述第一返回结果与所述第二返回结果的比对结果;
在所述比对结果为不一致的情况下,输出提示信息,所述提示信息用于提示所述第一返回结果与所述第二返回结果不一致;
在检测到所述微服务发生异常的情况下,将流量切换到所述单体服务;
所述预设发送条件包括:当前时间与所述第一应用的微服务的启用时间之间的第一时间差小于第一预设时长,或者,当前时间距离第一时间的时间差大于第二预设时长,所述第一时间为上一次的第三请求发送给单体服务器的发送时间,且该上一次接收的第一请求生成的第二请求向微服务完成发送。
2.根据权利要求1所述的方法,其特征在于,向所述微服务发送第二请求之后,还包括:
将所述第一返回结果发送给所述电子设备。
3.根据权利要求1所述的方法,其特征在于,所述获取所述第一返回结果与所述第二返回结果的比对结果,包括:
将所述第一返回结果与所述第二返回结果发送给第二服务器;
接收所述第二服务器发送的对所述第一返回结果与所述第二返回结果进行比对得到的所述比对结果。
4.一种请求发送装置,其特征在于,应用于第一服务器,所述装置包括:
第一接收模块,用于接收电子设备发送的第一应用相关的第一请求;
第一发送模块,用于响应于所述第一请求,按照所述第一应用的单体服务的第一预设流量比例以及微服务的第二预设流量比例,向所述单体服务或者所述微服务发送第二请求,其中,所述第二请求基于所述第一请求生成;
第三发送模块,用于在满足预设发送条件的情况下,向所述单体服务发送第三请求,所述第三请求基于所述第一请求生成,且与所述第二请求请求的内容相同;
第二接收模块,用于接收所述微服务响应于所述第二请求发送的第一返回结果;
第三接收模块,用于接收所述单体服务响应于所述第三请求发送的第二返回结果;
对比结果获取模块,用于获取所述第一返回结果与所述第二返回结果的比对结果;
输出模块,用于在所述比对结果为不一致的情况下,输出提示信息,所述提示信息用于提示所述第一返回结果与所述第二返回结果不一致;
切换模块,用于在检测到所述微服务发生异常的情况下,将流量切换到所述单体服务;
所述预设发送条件包括:当前时间与所述第一应用的微服务的启用时间之间的第一时间差小于第一预设时长,或者,当前时间距离第一时间的时间差大于第二预设时长,所述第一时间为上一次的第三请求发送给单体服务器的发送时间,且该上一次接收的第一请求生成的第二请求向微服务完成发送。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二发送模块,用于将所述第一返回结果发送给所述电子设备。
6.根据权利要求4所述的装置,其特征在于,所述对比结果获取模块,包括:
第四发送模块,用于将所述第一返回结果与所述第二返回结果发送给第二服务器;
第四接收模块,用于接收所述第二服务器发送的对所述第一返回结果与所述第二返回结果进行比对得到的所述比对结果。
7.一种第一服务器,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-3中任一项所述的方法。
8.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010270794.9A CN111510480B (zh) | 2020-04-08 | 2020-04-08 | 一种请求发送方法、装置以及第一服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010270794.9A CN111510480B (zh) | 2020-04-08 | 2020-04-08 | 一种请求发送方法、装置以及第一服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510480A CN111510480A (zh) | 2020-08-07 |
CN111510480B true CN111510480B (zh) | 2022-09-13 |
Family
ID=71870813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010270794.9A Active CN111510480B (zh) | 2020-04-08 | 2020-04-08 | 一种请求发送方法、装置以及第一服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510480B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989250B (zh) * | 2021-03-11 | 2024-01-12 | 北京百度网讯科技有限公司 | 一种Web服务响应方法、装置及电子设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10104167B2 (en) * | 2015-09-28 | 2018-10-16 | Verizon Patent And Licensing Inc. | Networking functions in a micro-services architecture |
WO2017222617A1 (en) * | 2016-06-21 | 2017-12-28 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system server collaboration |
US10866851B2 (en) * | 2016-09-28 | 2020-12-15 | Netflix, Inc. | Determining the failure resiliency of a service in a distributed computing system |
US10484410B2 (en) * | 2017-07-19 | 2019-11-19 | Cisco Technology, Inc. | Anomaly detection for micro-service communications |
CN109995713B (zh) * | 2017-12-30 | 2020-11-27 | 华为技术有限公司 | 一种微服务框架中的服务处理方法及相关设备 |
US11449324B2 (en) * | 2018-07-16 | 2022-09-20 | Red Hat, Inc. | Automatic updating of an application executing on an application server |
CN109684105A (zh) * | 2018-12-18 | 2019-04-26 | 中国平安人寿保险股份有限公司 | 在微服务架构下对请求进行控制的方法、设备和存储介质 |
CN109976935B (zh) * | 2019-03-14 | 2020-09-04 | 北京三快在线科技有限公司 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
CN110311810A (zh) * | 2019-06-13 | 2019-10-08 | 北京奇艺世纪科技有限公司 | 一种服务器资源配置方法、装置、电子设备及存储介质 |
CN110401696B (zh) * | 2019-06-18 | 2020-11-06 | 华为技术有限公司 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
CN110324411B (zh) * | 2019-06-18 | 2022-11-18 | 平安普惠企业管理有限公司 | 一种业务分流方法及装置 |
CN110351366B (zh) * | 2019-07-12 | 2022-07-01 | 西安雷迪信息技术有限公司 | 一种互联网应用的服务调度系统和方法及存储介质 |
CN110457143B (zh) * | 2019-07-25 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 微服务的调用方法及装置 |
CN110569060A (zh) * | 2019-09-19 | 2019-12-13 | 山东浪潮通软信息科技有限公司 | 一种基于微服务框架的高并发实现方法 |
-
2020
- 2020-04-08 CN CN202010270794.9A patent/CN111510480B/zh active Active
Non-Patent Citations (4)
Title |
---|
.《ETSI TS 103 544-9》.2017, * |
DTS/ITS-88-9.TECHNICAL SPECIFICATION Publicly Available Specification (PAS) * |
Intelligent Transport Systems (ITS) * |
运营商业务平台微服务化方案;严丽云 等;《电信科学》;20181231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111510480A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109245908B (zh) | 一种主从集群切换的方法和装置 | |
CN113742031B (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
US11095717B2 (en) | Minimizing data loss in a computer storage environment with non-guaranteed continuous network connectivity | |
CN107666415B (zh) | Fc-ae-1553协议桥的优化方法和装置 | |
CN112073994A (zh) | 用于空中升级的方法、装置、电子设备及可读存储介质 | |
CN111913884A (zh) | 分布式测试方法、装置、设备、系统和可读存储介质 | |
KR102546577B1 (ko) | 미니 프로그램 데이터 처리 방법 및 장치 | |
US11784830B2 (en) | Method for sending certificate, method for receiving certificate, cloud and terminal device | |
CN111600790B (zh) | 基于区块链的消息处理方法、装置、设备和存储介质 | |
CN113162848A (zh) | 一种区块链网关的实现方法、装置、网关和介质 | |
CN112346926A (zh) | 资源状态监控方法、装置及电子设备 | |
CN113961311A (zh) | 业务数据处理方法、装置、电子设备和介质 | |
CN111049690B (zh) | 设备故障监测处理方法、装置、设备及存储介质 | |
CN110958250B (zh) | 一种端口监控方法、装置和电子设备 | |
CN111625195A (zh) | 用于服务器扩容的方法及装置 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN111510480B (zh) | 一种请求发送方法、装置以及第一服务器 | |
CN111770176B (zh) | 流量调度方法及装置 | |
CN114185734A (zh) | 一种监控集群的方法、装置及电子设备 | |
CN107818027B (zh) | 名字节点主备切换的方法、装置和分布式系统 | |
CN112069137A (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN111884847A (zh) | 用于处理故障的方法和装置 | |
KR102571517B1 (ko) | 트래픽 조정 방법 및 장치 | |
CN113535020B (zh) | 用于生成应用图标的方法、装置、设备、介质和产品 | |
CN110659184B (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 |