预发布方法及装置与流程

文档序号:11458506阅读:474来源:国知局
预发布方法及装置与流程

本发明涉及互联网技术领域,尤其涉及预发布方法及装置。



背景技术:

随着科技的进步,互联网越来越多的应用在人们的生活中,各种各样的互联网应用为人们的生活提供了便利。例如,当早上人们要出门上班时,可以通过手机里的打车软件来进行网络约车,这样可以改变人们坐公交或者打车去上班的方式,依靠打车软件即可坐上专车去上班,方便快捷。通常,互联网应用都要进行版本的更迭。一方面,为了使其自身更加完善;另一方面,也能够满足用户的更多需求。

但是,随着注册用户的增长,上述互联网应用或者其他的互联网应用所面对的客户为广大的网民群体,系统哪怕出现一点问题,都会对产品的推广产生不良影响。而在互联网应用运营过程中,开发者会根据使用者的需求等来对互联网应用等互联网应用进行版本升级,即通过对代码的更新来产生新的功能或者是对现有的缺陷进行修复,之后将更新后的代码作为新的版本进行发布,供注册用户继续使用。

虽然更新后的版本会预先经过测试,检测正常后才进行发布。但是,由于网络环境以及用户数量等各种不确定的因素,新版本在测试环境运行正常,但真正投入使用后,有些功能可能无法正常运行。在这种情况下,预发布装置应运而生。

预发布装置将测试环境下的系统和新版本的系统进行物理与逻辑隔离,并按照自定义条件,无损切换客户请求到指定环境,出现问题时,便于快速止损和准确定位缺陷所在,从而能有效降低因代码更新而产生的影响。但是,参见图1,目前的预发布装置需要维护多套逻辑,并依赖分流系统实现多套逻辑之间的切换,功能逻辑复杂,运行不稳定。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供了预发布方法及装置,通过在反向代理服务器中嵌入逻辑代码等操作,减少了系统维护多套实现逻辑的繁琐过程。

第一方面,本发明实施例提供了预发布方法,包括:将逻辑代码嵌入反向代理服务器中;

当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境;

反向代理服务器在环境中执行功能请求对应的逻辑代码。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境包括:

当接收到外部发送的功能请求时,反向代理服务器获取功能请求对应的逻辑代码;

反向代理服务器通过逻辑代码与存储服务器交互,读取配置信息;

反向代理服务器根据配置信息执行查找。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,预发布方法还包括:

反向代理服务器将逻辑代码存储到本地,其中,逻辑代码包括lua脚本或者shell脚本。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,预发布方法还包括:

环境包括生产环境和预发布环境;

当生产环境出现故障时,反向代理服务器将外部发送的功能请求均切换到预发布环境中。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,预发布方法还包括:

逻辑代码使用b/s系统,且,逻辑代码的修改需要相应的权限进行触发。

第二方面,本发明实施例提供了预发布装置,包括:嵌入模块,用于将逻辑代码嵌入反向代理服务器中;

查找模块,用于当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境;

执行模块,用于反向代理服务器在环境中执行功能请求对应的逻辑代码。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,查找模块包括:

获取单元,用于当接收到外部发送的功能请求时,反向代理服务器获取功能请求对应的逻辑代码;

交互单元,用于反向代理服务器通过逻辑代码与存储服务器交互,读取配置信息;

查找执行单元,用于反向代理服务器根据配置信息执行查找。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,预发布装置还包括:

本地存储模块,用于反向代理服务器将逻辑代码存储到本地,其中,逻辑代码包括lua脚本或者shell脚本。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,预发布装置还包括:

环境构成模块,用于环境包括生产环境和预发布环境;

故障处理模块,用于当生产环境出现故障时,反向代理服务器将外部发送的功能请求均切换到预发布环境中。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第四种可能的实施方式,其中,预发布装置还包括:

系统运用模块,用于逻辑代码使用b/s系统;

触发模块,用于逻辑代码的修改需要相应的权限进行触发。

本发明实施例提供的预发布方法及装置,其中,该预发布方法包括:将逻辑代码嵌入反向代理服务器中,之后,当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境,并且,反向代理服务器能在对应的环境中执行功能请求对应的逻辑代码,通过上述操作过程,反向代理服务器可以动态配置请求转发的业务集群环境,无需维护多套实现逻辑来支持新功能的发布或者用户行为采样,从而使系统的功能逻辑更加简化,运行也更加稳定。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了现有技术中预发布方法的时序图;

图2示出了本发明实施例所提供的预发布方法的流程图;

图3示出了本发明实施例所提供的预发布方法的时序图;

图4示出了本发明实施例所提供的预发布装置的结构连接图。

图标:1-嵌入模块;2-查找模块;3-执行模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,各种互联网应用更新后的版本都会预先经过测试,检测正常后才进行发布。但是,由于各种不确定的因素,新发布的系统可能会出现无法使用的情况。在这种情况下,预发布装置应运而生。现有的预发布装置主要是将测试环境下的系统和新版本的系统进行物理与逻辑隔离,并按照自定义条件,无损切换客户请求到指定环境。但是,上述过程中的预发布装置需要维护多套逻辑,通常采用分流方式来实现,一般的做法是对同一业务的提供两种甚至多种实现,同时引入分流系统。每个业务请求发送到服务器时,需要请求分流系统,分流系统根据当前的配置得到当前请求应当采用哪种实现来处理,最终将请求转发到对应的业务逻辑处理系统中。

在上述处理过程中存在很多缺点,例如,加重了系统本身的复杂度,因为需要同时支持多种业务逻辑的实现,出现问题时,排查难度较大。增加系统耦合度,业务系统的逻辑实现依赖分流系统。当分流系统的实现有改动,业务系统必须做相应的修改。增加了系统的不稳定性,当分流系统出现故障时,会影响正常的业务请求。请求响应时间变长,即响应过程由用户到业务系统的流程变成用户到分流系统再到业务系统,这个过程中增加了分流系统的处理流程,严重影响客户的响应时间。

基于此,本发明实施例提供了预发布方法及装置,下面通过实施例进行描述。

实施例1

参见图2、图3和图4,本实施例提出的预发布方法具体包括以下步骤:

步骤s101:将逻辑代码嵌入反向代理服务器中。

在互联网的反向代理应用过程中,由代理服务器接受网络上的连接请求,然后将该请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给发出请求的客户端。在上述过程中,客户端必须指定反向代理服务器,并将http等请求等发送到反向代理服务器中。为此,在反向代理服务器中嵌入逻辑代码。该逻辑代码为可执行代码,用于分别识别http请求中的header、cookie以及参数中的自定义条件标识,这样,在功能请求到达业务系统前,能够通过逻辑代码实现轻量级的逻辑分流。

步骤s102:当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境。

这里,所说的环境指的是上述功能请求所需要转发到反向代理服务器配置的各种环境,即需要根据环境的不同,来执行不同的功能。环境包括生产环境和预发布环境,当生产环境出现故障时,反向代理服务器将外部发送的功能请求均切换到预发布环境中。

在互联网相关应用的开发过程中,常将环境分为开发环境、测试环境和生产环境三种,开发环境、测试环境和生产环境为对应程序开发进程三个阶段的环境。其中,开发环境专门用于开发的服务器,可以根据需求灵活配置,同时,为了开发调试方便,一般在开发环境中能够打开全部错误报告。测试环境通常跟生产环境的配置相同,在测试环境中主要测试要发布的程序工作是否正常,如果该测试不正常,则不能将其对应的程序进行发布。生产环境是正式提供对外服务的,在生产环境中通常都会关掉错误报告。在本实施例中,以生产环境的应用为主。通过逻辑代码能够实现生产环境到预发布环境的动态转发。

上述查找过程实现的具体步骤如下:

当接收到外部发送的功能请求时,反向代理服务器获取功能请求对应的逻辑代码,这里,逻辑代码采用脚本语言来实现。反向代理服务器依靠插件来启动,插件是基于nginx实现的,这样使得该插件与业务系统独立,从而避免了在启动程序变动时对业务系统的修改。

在本发明中,插件通过lua脚本来完成相关逻辑的实现,因此,在nginx启动时需要加载lua脚本。lua是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。lua在绝大多数操作系统和平台上都可以进行编译和运行。lua脚本的兼容性好、应用范围广,lua脚本很容易被c/c++代码调用,也可以反过来调用c/c++的函数,这使得lua不仅可以作为扩展脚本,也可以作为普通的配置文件。lua由标准c编写而成,代码简洁,一个完整的lua解释器不过200k,在目前所有脚本引擎中,lua的速度最快。

之后,反向代理服务器通过逻辑代码与存储服务器交互,读取配置信息,配置信息主要存储了分流的相关的业务规则,lua脚本读取配置信息后,再根据其进行请求转发,配置信息可存储在关系数据库或者nosql中。

其次,反向代理服务器根据配置信息执行查找。

步骤s103:反向代理服务器在环境中执行功能请求对应的逻辑代码。

这里,反向代理服务器调用逻辑代码,执行相应的逻辑,并进行动态转发请求。

此外,预发布方法还包括:反向代理服务器将逻辑代码存储到本地,其中,逻辑代码包括lua脚本或者shell脚本。这里,lua脚本同上所述。shell脚本是将各类命令预先放入到一个文件中,方便一次性执行的一个程序文件。但是它比用其他编程的效率更高,原因在于,shell脚本使用了linux/unix下的命令。shell为用户提供了一个向linux发送请求以便运行程序的接口系统级程序。shell本身是一个用c语言编写的程序,能够互动式地解释和执行用户输入的命令。shell脚本虽然不是linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行,运行效率高。

此外,预发布方法还包括:逻辑代码使用b/s系统,并且,逻辑代码的修改需要相应的权限进行触发。

b/s是browser/server(浏览器/服务器)的简称,在使用时,客户端端不用装专门的软件,只要一个浏览器即可。而c/s是client/server(客户端/服务器)的简称,必须在客户端装客户端软件后,才能访问服务器。

b/s最大的优点是适用于用户群庞大,或客户需求经常发生变化的情况。并且,可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,便于维护。

综上所述,本实施例提供的预发布方法包括:将逻辑代码嵌入反向代理服务器中,之后,当反向代理服务器接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境,反向代理服务器在环境中执行功能请求对应的逻辑代码,通过将逻辑代码嵌入反向代理服务器中,避免了生产环境需要维护多套业务逻辑的现象发生,降低了系统的复杂度,使系统运行更加稳定。

实施例2

参见图4,本实施例提供了预发布装置包括:依次相连的嵌入模块1、查找模块2和执行模块3,在使用过程中,嵌入模块1用于将逻辑代码嵌入反向代理服务器中,查找模块2用于当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境,执行模块3用于反向代理服务器在环境中执行功能请求对应的逻辑代码。

其中,查找模块2包括:依次相连的获取单元、交互单元和查找执行单元。获取单元用于当接收到外部发送的功能请求时,反向代理服务器获取功能请求对应的逻辑代码,交互单元用于反向代理服务器通过逻辑代码与存储服务器交互,读取配置信息,查找执行单元用于反向代理服务器根据配置信息执行查找。

此外,预发布装置中还包括:本地存储模块。本地存储模块用于反向代理服务器将逻辑代码存储到本地,其中,逻辑代码包括lua脚本或者shell脚本。

此外,预发布装置还包括:环境构成模块。环境构成模块用于环境包括生产环境和预发布环境,故障处理模块用于当生产环境出现故障时,反向代理服务器将外部发送的功能请求均切换到预发布环境中。

此外,预发布装置还包括:系统运用模块。系统运用模块用于逻辑代码使用b/s系统,触发模块用于逻辑代码的修改需要相应的权限进行触发。

综上所述,本实施例提供的预发布装置包括依次相连的嵌入模块1、查找模块2和执行模块3,在使用过程中,嵌入模块1用于将逻辑代码嵌入反向代理服务器中,查找模块2用于当接收到外部发送的功能请求时,反向代理服务器查找功能请求所对应的环境,执行模块3用于反向代理服务器在环境中执行功能请求对应的逻辑代码,通过上述设置使得预发布系统减少了分流的步骤,无需维护分流系统就能实现多套逻辑之间的切换,运行稳定。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1