CN108279924A - 程序发布方法及装置 - Google Patents
程序发布方法及装置 Download PDFInfo
- Publication number
- CN108279924A CN108279924A CN201810091285.2A CN201810091285A CN108279924A CN 108279924 A CN108279924 A CN 108279924A CN 201810091285 A CN201810091285 A CN 201810091285A CN 108279924 A CN108279924 A CN 108279924A
- Authority
- CN
- China
- Prior art keywords
- program version
- target user
- cookie
- version information
- access 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Abstract
本公开是关于一种程序发布方法及装置,该方法包括:接收登录请求,登录请求中携带有目标用户标识;在从数据库查询到目标用户标识对应的程序版本信息时,将目标用户标识对应的程序版本信息记录在目标用户标识对应的cookie中;其中,数据库中预先存储有预定用户标识对应的程序版本信息;接收访问请求,访问请求中携带有所述目标用户标识对应的cookie;将访问请求转发至所述cookie中记录的程序版本信息对应的程序版本所在的应用服务器。该技术方案可以指定特定的用户来使用对应的程序版本,发布粒度细,且只需查询一次,不会引入额外的查询开销,降低请求时长。
Description
技术领域
本公开涉及终端技术领域,尤其涉及程序发布方法及装置。
背景技术
在发布新程序时,通常会采用灰度发布的方式来进行发布,灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式,如让一部分用户继续用旧程序A,一部分用户开始用新程序B,如果用户对新程序B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到使用程序B上面来。灰度发布可以保证整体系统的稳定,在初始的时候就可以发现、调整问题,以保证其影响度。
发明内容
本公开实施例提供一种程序发布方法及装置。所述技术方案如下:
根据本公开实施例的第一方面,提供一种程序发布方法,包括:
接收登录请求,所述登录请求中携带有目标用户标识;
在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
在一个实施例中,所述数据库包括数据库redis,所述方法还包括:
预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
在一个实施例中,所述将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中,包括:
在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
确定所述cookie中是否存在flag;
若所述cookie中存在flag,则将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
在一个实施例中,所述在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,所述方法还包括:
若所述cookie中不存在flag,则将所述访问请求转发至预设版本所在的应用服务器。
在一个实施例中,所述方法还包括:
在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
在一个实施例中,不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,所述方法还包括:
获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
所述将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
根据本公开实施例的第二方面,提供一种程序发布装置,包括:
第一接收模块,用于接收登录请求,所述登录请求中携带有目标用户标识;
记录模块,用于在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
第二接收模块,用于接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
第一转发模块,用于将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
在一个实施例中,所述数据库包括数据库redis,所述装置还包括:
写入模块,用于预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
在一个实施例中,所述记录模块包括:
标记子模块,用于在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
所述第一转发模块包括:
确定子模块,用于确定所述cookie中是否存在flag;
第一转发子模块,用于在所述cookie中存在flag时,将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
在一个实施例中,在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,所述装置还包括:
第二转发模块,用于在所述cookie中不存在flag时,将所述访问请求转发至预设版本所在的应用服务器。
在一个实施例中,所述装置还包括:
确定模块,用于在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
在一个实施例中,不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,所述装置还包括:
获取模块,用于获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
所述第一转发模块包括:
第二转发子模块,用于根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
根据本公开实施例的第三方面,提供一种程序发布装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收登录请求,所述登录请求中携带有目标用户标识;
在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,存储有计算机指令,所述计算机指令被处理器执行时实现上述方法中的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:本实施例可以通过在数据库中预存预定用户标识对应的程序版本,指定特定的用户来使用对应的程序版本,灰度粒度细;并且仅在接收到登录请求时查询一次数据库,将查询结果写入cookie,在后续的访问请求中不需查询,可以直接读取访问请求中携带的cookie的信息内容,将所述访问请求转发至所述cookie中记录的所述目标用户标识对应的程序版本所在的应用服务器,不会引入额外的查询开销,降低请求时长。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种程序发布方法的流程图。
图2是根据一示例性实施例示出的一种程序发布方法的流程图。
图3是根据一示例性实施例示出的一种程序发布装置的框图。
图4是根据一示例性实施例示出的一种程序发布装置的框图。
图5是根据一示例性实施例示出的一种程序发布装置的框图。
图6是根据一示例性实施例示出的一种程序发布装置的框图。
图7是根据一示例性实施例示出的一种程序发布装置的框图。
图8是根据一示例性实施例示出的一种程序发布装置的框图。
图9是根据一示例性实施例示出的一种程序发布装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在nginx服务器中实现灰度发布功能时,可以在分布式环境中分别将新的程序版本和旧的程序版本部署在不同的应用服务器上,nginx服务器通过预先设置的访问规则如对访问请求的用户IP做hash运算,或者通过查询用户灰度名单,将一部分用户的访问请求转发至旧的程序版本对应的应用服务器上,让该部分用户继续使用旧的程序版本,将另一部分用户的访问请求转发至新的程序版本对应的应用服务器上,让该部分用户开始使用新的程序版本,如果用户对新的程序版本的满意度较高,则逐步扩大新的程序版本的使用范围,直到把所有用户都迁移到使用新的程序版本上面来;如果用户对新的程序版本的满意度较低,则改善版本后,再继续进行灰度发布。但是,上述灰度发布过程中使用的访问规则如对访问请求的用户IP做hash运算的方式,发布粒度过粗,不能指定特定的用户来使用对应的程序版本;而通过查询灰度白名单的方式,则每次接收到访问请求都要查询该灰度白名单,使得nginx服务器有查询开销,增加响应时长。
为了解决上述问题,本实施例可以在接收登录请求后,在从数据库查询到所述登录请求携带的目标用户标识对应的程序版本时,将所述目标用户标识对应的程序版本记录在所述目标用户标识对应的cookie中;然后在接收访问请求时,由于所述访问请求中携带有所述目标用户标识对应的cookie,故可以将所述访问请求转发至所述cookie中记录的所述目标用户标识对应的程序版本所在的应用服务器;使得特定的目标用户标识对应的用户访问对应程序版本;如此,可以通过在数据库中预存预定用户标识对应的程序版本,指定特定的用户来使用对应的程序版本,发布粒度细;并且仅在接收到登录请求时查询一次数据库,将查询结果写入cookie,在后续的访问请求中不需查询,可以直接读取访问请求中携带的cookie的信息内容,将所述访问请求转发至所述cookie中记录的所述目标用户标识对应的程序版本所在的应用服务器,不会引入额外的查询开销,降低请求时长。
图1是根据一示例性实施例示出的一种程序发布方法的流程图,如图1所示,该程序发布方法用于服务器如nginx服务器等设备中,包括以下步骤101-104:
在步骤101中,接收登录请求,所述登录请求中携带有目标用户标识。
在步骤102中,在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息。
在步骤103中,接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie。
在步骤104中,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
这里,本实施例方法的执行主体为代理服务器,该代理服务器可以代理网络用户去取得应用服务器的网络信息,是网络信息的中转站,示例的,该代理服务器可以是nginx服务器,nginx服务器能在支持高并发请求的同时保持高效的服务。以下就以nginx服务器作为本实施例方法的执行主体来进行说明。
这里,在对某产品的旧版本进行改进或增加新功能,开发出新版本后,需要对该新版本进行灰度发布。本实施例在nginx服务器中实现灰度发布功能,nginx服务器的数据库会预先存储有预定用户标识对应的程序版本,如开发商进行大数据分析发现某些用户可能会较喜欢某个新发布的程序版本1,则将这些用户的用户标识存储成预定用户标识,并存储该预定用户标识对应的程序版本1的程序版本信息;这里所述的程序版本信息只要能使nginx服务器访问到对应的程序版本即可,可以是程序版本的标识信息如版本号、版本名称等,也可以是该程序版本所在应用服务器的信息如所在服务器的地址,也可以是该程序版本的地址信息如该程序版本在应用服务器内的存储地址,或访问该程序版本的接口地址等。
当然,如果开发商发布了多个程序版本,则开发商可以进行大数据分析为其他程序版本指定特定的用户,并将各预定用户标识对应的程序版本信息存储在数据库中。这样在修改灰度规则时,只需要修改数据库中数据即可,对部署在应用服务器中的新、旧版本无影响,稳定性高。
这里,目标用户的手机等终端上安装有网站的客户端,终端可以使用网站的客户端访问网站的应用服务器,该客户端需要先将网页请求发送至该网站的代理服务器即nginx服务器。目标用户在登录该网站时,客户端会向该网站的代理服务器发送登录请求,该登录请求中会携带有目标用户标识,该目标用户标识可以是目标用户所用终端的终端IP地址,也可以是目标用户名,在此不做限制,只要能标识该目标用户即可。
这里,nginx服务器接收到目标用户的登录请求后,可以从数据库中查询是否有该目标用户标识,如果数据库中存储有该目标用户标识,则表明可以让该用户使用该网站新发布的程序版本,此时,nginx服务器可以将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;该cookie是一小段文本信息,伴随用户的网页请求,在网站的服务器和客户端之间传递;客户端每次访问网站的时候,均会携带该cookie,网站的服务器都可以读取该cookie中包含的信息。
这里,nginx服务器接收到登录请求后,会在网站同意登录时,向客户端反馈登录响应,通知用户同意登录,之后,用户就可以通过该客户端访问本网站,客户端可以根据用户在终端上输入的指示,向网站发送访问请求,该访问请求会先发送至该网站的代理服务器即nginx服务器中,该访问请求中携带有所述目标用户标识对应的cookie;这样,nginx服务器接收到该访问请求后可以读取cookie中信息,然后将访问请求转发至cookie中记录的程序版本信息对应的程序版本所在的应用服务器,这样,该应用服务器就会通过该nginx服务器向该目标用户的客户端反馈该程序版本对应的网络信息,使得该目标用户开始使用对应的程序版本,如此可以使一部分用户使用新的程序版本,另一部分用户使用旧的程序版本,达到灰度发布的目的。
示例的,假设开发商将程序版本1设置在应用服务器1中,将程序版本2设置在应用服务器2中;大数据分析确定让用户A使用程序版本1,用户B使用程序版本2,则可以在nginx服务器的数据库中存储用户A对应程序版本1的程序版本信息1,用户B对应程序版本2的程序版本信息2。这样,nginx服务器接收到用户A的登录请求后,可以在数据库中查询到用户A对应的程序版本信息1,将用户A对应的程序版本信息1记录在用户A对应的cookie中;nginx服务器在之后接收到用户A的访问请求时,可以直接读取访问请求中的cookie,将所述访问请求转发至所述cookie中记录的程序版本信息1所在的应用服务器1;应用服务器1中设置有程序版本1,可以向该用户A返回该程序版本1对应的网络信息,使得该用户A开始使用该程序版本1。
本实施例可以通过在数据库中预存预定用户标识对应的程序版本信息,指定特定的用户来使用对应的程序版本,发布粒度细;并且仅在接收到登录请求时查询一次数据库,将查询结果写入cookie,在后续的访问请求中不需查询,可以直接读取访问请求中携带的cookie的信息内容,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,不会引入额外的查询开销,降低请求时长。
在一种可能的实施方式中,所述数据库包括数据库redis,上述程序发布方法还可以包括以下步骤A1。
在步骤A1中,预先将key/value键值对数据导入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
这里,开发商可以将预定用户标识对应的程序版本信息存储在数据库redis中,redis是一个开源的、支持网络、可基于内存亦可持久化的日志型、key-value数据库,开发商可以将预定用户标识作为key,将预定用户标识对应的程序版本信息作为value,形成多对key/value键值对数据,将key/value键值对数据写入到数据库redis中。这样,nginx服务器接收到目标用户的登录请求后,可以从数据库redis中查询记录的key中是否有该目标用户标识。
本实施例可以使用数据库redis来存储key/value键值对数据,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息;如此使用数据库redis存储来存储数据,数据库redis写入数据和读取数据的速度很快,使得nginx服务器的查询速度快。
在一种可能的实施方式中,上述程序发布方法中,步骤102可以实施为以下步骤B1,步骤104可以实施为以下步骤B2和B3。
在步骤B1中,在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息。
在步骤B2中,确定所述cookie中是否存在flag。
在步骤B3中,若所述cookie中存在flag,则将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
这里,nginx服务器在将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中时,可以在目标用户标识对应的cookie中增加标记flag,flag内容包括所述目标用户标识对应的程序版本信息,这样,nginx服务器在接收到之后的访问请求时,可以先确定所述cookie是否存在flag;若存在flag,则将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
本实施例可以在目标用户标识对应的cookie中增加标记flag,该flag内容包括所述目标用户标识对应的程序版本信息,如此将目标用户标识对应的程序版本信息记录在cookie中,实现简单,也方便后续在接收到访问请求时,直接在cookie中存在flag时,将访问请求转发至flag内容中记录的程序版本信息对应的程序版本所在的应用服务器。
在一种可能的实施方式中,在从所述数据库未查询到所述目标用户标识对应的程序版本的情况下,上述程序发布方法还可以包括以下步骤C1。
在步骤C1中,若所述cookie中不存在flag,则将所述访问请求转发至预设版本所在的服务器。
这里,在进行灰度发布时,需要让一部分用户使用程序版本,另一部分用户继续使用预设版本如之前用户使用的旧版本,以保证整体系统的稳定,故数据库中存储的是预定用户标识对应的程序版本信息,这些预定用户标识对应的用户只是一部分用户,另一部分用户如用户C并不使用程序版本;故,当用户C发送登录请求时,nginx服务器就不能从所述数据库中查询到该用户C的用户标识时,在此种情况下,nginx服务器不会在用户C的cookie中增加flag,这样,nginx服务器在接收到该用户C之后的访问请求时,如果确定所述cookie不存在flag;则nginx服务器就直接将该访问请求转发至预设版本所在的应用服务器。
本实施例可以不将预设版本对应的用户标识写入数据库中,这样在从所述数据库未查询到所述目标用户标识对应的程序版本的情况下,就可以在之后接收到访问请求时,在访问请求携带的cookie中不存在flag时,直接将所述访问请求转发至预设版本所在的应用服务器,不需查看这些用户标识对应的版本信息,降低请求时长。
在一种可能的实施方式中,上述程序发布方法还可以包括以下步骤D1。
在步骤D1中,在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
这里,目标用户标识对应的cookie中记录的是目标用户标识对应的程序版本,由于开发商会不断更新程序版本,故该目标用户标识对应的程序版本也会有更新,故为了方便用户使用新的程序版本,有利于灰度发布,可以在每次登录时,均重新从数据库查询到所述目标用户标识对应的程序版本,查询目标用户标识对应的最新的程序版本,记录到新的cookie中,而之前的cookie失效。故nginx服务器可以在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话(session)过期(超过有效期)时,表明用户的本次登录结束,此时就可以确定所述目标用户标识对应的cookie失效。
本实施例可以在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效,这样,就可以在下次登录时,重新从数据库查询目标用户标识对应最新的程序版本,记录到新的cookie中,方便用户使用新的程序版本,灰度发布更加快速。
在一种可能的实施方式中,上述程序发布方法中不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,上述方法还可以包括以下步骤E1,上述方法中的步骤104还可以实现为以下步骤E2。
在步骤E1中,获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系。
在步骤E2中,根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
这里,在分布式环境中可以将旧版本设置在一个应用服务器中,将程序版本设置在另一个应用服务器中,这样新、旧版本单独部署,新版本在快速迭代时不会影响旧版本的使用,不容易出现故障。该新的程序版本可以一个以上的程序版本,如开发商发布一个程序版本1后,用户对程序版本1的满意度较低,则开发商可以改善程序版本1后,再新发布一个程序版本2;如此,开发商可以发布多个程序版本,而不同的程序版本设置在不同的应用服务器中。或者,开发商也可以将不同的程序版本也可以设置在同一个应用服务器的不同位置。
这里,将不同的版本设置在不同的应用服务器或同一个服务器中后,nginx服务器可以获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;如此,nginx服务器在接收到访问请求后,就可以获取访问请求携带的cookie中记录的程序版本信息,进而根据之前获取的程序版本信息与程序版本所在的应用服务器的信息之间的对应关系,得到该程序版本信息对应的程序版本所在的应用服务器的信息,这样,nginx服务器就可以将该访问请求转发至对应的应用服务器。
这里,若该应用服务器中只设置有一个程序版本,则该应用服务器就会通过该nginx服务器反馈该应用服务器上设置的程序版本对应的网络信息,使得该目标用户开始使用该程序版本,达到灰度发布的目的。若该应用服务器中设置有两个或两个以上的程序版本,则该应用服务器在接收到访问请求后,可以根据该访问请求携带的cookie中的程序版本信息,获知该访问请求对应的程序版本,进而通过该程序版本对应的访问接口访问该程序版本,获取该程序版本对应的网络信息,然后该应用服务器就会通过该nginx服务器反馈该程序版本对应的网络信息,如此使一部分用户使用新的程序版本,另一部分用户使用旧的程序版本,达到灰度发布的目的。
本实施例将不同的程序版本设置在不同的应用服务器中,或者,将不同的程序版本设置在同一应用服务器的不同位置,如此,不断更新的程序版本单独部署在不同的位置中,在快速迭代程序版本时不容易出现故障。
下面通过几个实施例详细介绍实现过程。
图2是根据一示例性实施例示出的一种程序发布方法的流程图,如图2所示,该方法可以由服务器等设备实现,包括步骤201-210。
在步骤201中,获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系。
其中,不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置。
在步骤202中,预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
在步骤203中,接收登录请求,所述登录请求中携带有目标用户标识。
在步骤204中,在从数据库查询到所述目标用户标识对应的程序版本信息时,在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息。
在步骤205中,接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie。
在步骤206中,确定所述cookie中是否存在flag。
若所述cookie中存在flag,则进行步骤207,若所述cookie中不存在flag,则进行步骤208。
在步骤207中,根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
在步骤208中,将所述访问请求转发至预设版本所在的应用服务器。
在步骤209中,在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图3是根据一示例性实施例示出的一种程序发布装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图3所示,该程序发布装置包括:第一接收模块301、记录模块302、第二接收模块303和第一转发模块304;其中:
第一接收模块301,用于接收登录请求,所述登录请求中携带有目标用户标识;
记录模块302,用于在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
第二接收模块303,用于接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
第一转发模块304,用于将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
作为一种可能的实施例,所述数据库包括数据库redis,图4是根据一示例性实施例示出的一种程序发布装置的框图,如图4所示,上述公开的程序发布装置还可以被配置成包括写入模块305,其中:
写入模块305,用于预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
作为一种可能的实施例,图5是根据一示例性实施例示出的一种程序发布装置的框图,如图5所示,所述数据库包括数据库redis,上述公开的程序发布装置还可以把记录模块302配置成包括标记子模块3021,把第一转发模块304配置成包括确定子模块3041和第一转发子模块3042,其中:
标记子模块3021,用于在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
确定子模块3041,用于确定所述cookie中是否存在flag;
第一转发子模块3042,用于在所述cookie中存在flag时,将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
作为一种可能的实施例,图6是根据一示例性实施例示出的一种程序发布装置的框图,在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,如图6所示,上述公开的程序发布装置还可以被配置成包括第二转发模块306,其中:
第二转发模块306,用于在所述cookie中不存在flag时,将所述访问请求转发至预设版本所在的应用服务器。
作为一种可能的实施例,图7是根据一示例性实施例示出的一种程序发布装置的框图,在从所述数据库未查询到所述目标用户标识对应的程序版本的情况下,如图7所示,上述公开的程序发布装置还可以被配置成包括确定模块307,其中:
确定模块307,用于在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
作为一种可能的实施例,图8是根据一示例性实施例示出的一种程序发布装置的框图,如图8所示,不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,上述公开的程序发布装置还可以被配置成包括获取模块308,还可以把第一转发模块304配置成包括第二转发子模块3041,其中:
获取模块308,用于获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
第二转发子模块3041,用于根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种程序发布装置的框图。例如,装置900可以被提供为一服务器。装置900包括处理组件911,其进一步包括一个或多个处理器,以及由存储器912所代表的存储器资源,用于存储可由处理组件911的执行的指令,例如应用程序。存储器912中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件911被配置为执行指令,以执行上述方法。
装置900还可以包括一个电源组件913被配置为执行装置900的电源管理,一个有线或无线网络接口914被配置为将装置900连接到网络,和一个输入输出(I/O)接口915。装置900可以操作基于存储在存储器912的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本实施例提供了一种计算机可读存储介质,当所述存储介质中的指令由装置900的处理器执行时实现以下步骤:
接收登录请求,所述登录请求中携带有目标用户标识;
在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
所述存储介质中的指令被处理器执行时还可以实现以下步骤:
所述数据库包括数据库redis,所述方法还包括:
预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
所述存储介质中的指令被处理器执行时还可以实现以下步骤:
所述将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中,包括:
在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
确定所述cookie中是否存在flag;
若所述cookie中存在flag,则将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
所述存储介质中的指令被处理器执行时还可以实现以下步骤:
所述在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,所述方法还包括:
若所述cookie中不存在flag,则将所述访问请求转发至预设版本所在的应用服务器。
所述存储介质中的指令被处理器执行时还可以实现以下步骤:
所述方法还包括:
在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
所述存储介质中的指令被处理器执行时还可以实现以下步骤:
不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,所述方法还包括:
获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
所述将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
本实施例还提供了一种程序发布装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收登录请求,所述登录请求中携带有目标用户标识;
在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
所述处理器还可以被配置为:
所述数据库包括数据库redis,所述方法还包括:
预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
所述处理器还可以被配置为:
所述将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中,包括:
在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
确定所述cookie中是否存在flag;
若所述cookie中存在flag,则将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
所述处理器还可以被配置为:
所述在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,所述方法还包括:
若所述cookie中不存在flag,则将所述访问请求转发至预设版本所在的应用服务器。
所述处理器还可以被配置为:
所述方法还包括:
在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
所述处理器还可以被配置为:
不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,所述方法还包括:
获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
所述将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种程序发布方法,其特征在于,包括:
接收登录请求,所述登录请求中携带有目标用户标识;
在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
2.根据权利要求1所述的方法,其特征在于,所述数据库包括数据库redis,所述方法还包括:
预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中,包括:
在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
确定所述cookie中是否存在flag;
若所述cookie中存在flag,则将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
4.根据权利要求3所述的方法,其特征在于,所述在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,所述方法还包括:
若所述cookie中不存在flag,则将所述访问请求转发至预设版本所在的应用服务器。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
6.根据权利要求1所述的方法,其特征在于,不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,所述方法还包括:
获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
所述将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器,包括:
根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
7.一种程序发布装置,其特征在于,包括:
第一接收模块,用于接收登录请求,所述登录请求中携带有目标用户标识;
记录模块,用于在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本信息记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
第二接收模块,用于接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
第一转发模块,用于将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
8.根据权利要求7所述的装置,其特征在于,所述数据库包括数据库redis,所述装置还包括:
写入模块,用于预先将key/value键值对数据写入到数据库redis中,其中,所述key包括预定用户标识,value包括所述预定用户标识对应的程序版本信息。
9.根据权利要求7所述的装置,其特征在于,所述记录模块包括:
标记子模块,用于在所述目标用户标识对应的cookie中增加标记flag,所述flag内容包括所述目标用户标识对应的程序版本信息;
所述第一转发模块包括:
确定子模块,用于确定所述cookie中是否存在flag;
第一转发子模块,用于在所述cookie中存在flag时,将所述访问请求转发至所述flag内容中记录的所述程序版本信息对应的程序版本所在的应用服务器。
10.根据权利要求9所述的装置,其特征在于,在从所述数据库未查询到所述目标用户标识对应的程序版本信息的情况下,所述装置还包括:
第二转发模块,用于在所述cookie中不存在flag时,将所述访问请求转发至预设版本所在的应用服务器。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
确定模块,用于在接收到所述目标用户标识对应的退出登录请求或者所述目标用户标识对应的登录会话过期时,确定所述目标用户标识对应的cookie失效。
12.根据权利要求7所述的装置,其特征在于,不同的程序版本设置在不同的应用服务器中,或者,不同的程序版本设置在同一应用服务器的不同位置,所述装置还包括:
获取模块,用于获取所述程序版本的程序版本信息与所述程序版本所在的应用服务器的信息的对应关系;
所述第一转发模块包括:
第二转发子模块,用于根据所述对应关系,将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
13.一种程序发布装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收登录请求,所述登录请求中携带有目标用户标识;
在从数据库查询到所述目标用户标识对应的程序版本信息时,将所述目标用户标识对应的程序版本记录在所述目标用户标识对应的cookie中;其中,所述数据库中预先存储有预定用户标识对应的程序版本信息;
接收访问请求,所述访问请求中携带有所述目标用户标识对应的cookie;
将所述访问请求转发至所述cookie中记录的所述程序版本信息对应的程序版本所在的应用服务器。
14.一种计算机可读存储介质,存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1至6任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810091285.2A CN108279924A (zh) | 2018-01-30 | 2018-01-30 | 程序发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810091285.2A CN108279924A (zh) | 2018-01-30 | 2018-01-30 | 程序发布方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108279924A true CN108279924A (zh) | 2018-07-13 |
Family
ID=62805763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810091285.2A Pending CN108279924A (zh) | 2018-01-30 | 2018-01-30 | 程序发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108279924A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532008A (zh) * | 2019-08-29 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 一种产品灰度发布方法、装置、计算机设备及存储介质 |
CN113010208A (zh) * | 2021-04-28 | 2021-06-22 | 数字广东网络建设有限公司 | 一种版本信息的生成方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497454A (zh) * | 2011-12-31 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种在应用服务平台系统中对应用进行灰度发布的方法 |
US20140278953A1 (en) * | 2013-03-15 | 2014-09-18 | Marchex, Inc. | Correlated consumer telephone numbers and user identifiers for advertising retargeting |
CN105450461A (zh) * | 2014-06-05 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分流方法及网络设备 |
CN106998369A (zh) * | 2017-05-26 | 2017-08-01 | 努比亚技术有限公司 | 灰度发布方法、网关拦截器及计算机可读存储介质 |
-
2018
- 2018-01-30 CN CN201810091285.2A patent/CN108279924A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497454A (zh) * | 2011-12-31 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种在应用服务平台系统中对应用进行灰度发布的方法 |
US20140278953A1 (en) * | 2013-03-15 | 2014-09-18 | Marchex, Inc. | Correlated consumer telephone numbers and user identifiers for advertising retargeting |
CN105450461A (zh) * | 2014-06-05 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分流方法及网络设备 |
CN106998369A (zh) * | 2017-05-26 | 2017-08-01 | 努比亚技术有限公司 | 灰度发布方法、网关拦截器及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532008A (zh) * | 2019-08-29 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 一种产品灰度发布方法、装置、计算机设备及存储介质 |
CN113010208A (zh) * | 2021-04-28 | 2021-06-22 | 数字广东网络建设有限公司 | 一种版本信息的生成方法、装置、设备及存储介质 |
CN113010208B (zh) * | 2021-04-28 | 2023-12-19 | 数字广东网络建设有限公司 | 一种版本信息的生成方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6643490B2 (ja) | 可変ブラウザ識別子のセッションベースのマッチング | |
US8688813B2 (en) | Using identity/resource profile and directory enablers to support identity management | |
US8583810B2 (en) | Session affinity cache and manager | |
CN115442423A (zh) | 发现由网络存储库功能提供的服务的方法 | |
US20130086670A1 (en) | Providing third party authentication in an on-demand service environment | |
US9485244B2 (en) | Executing an operation over file repositories located in different authentication domains using a representational state transfer (REST)-compliant client | |
TW201917615A (zh) | 數位證書申請、使用的實現方法和裝置 | |
CN108494755B (zh) | 一种传输应用程序编程接口api请求的方法及装置 | |
WO2021051747A1 (zh) | 数据更新方法、系统、装置、电子设备及计算机存储介质 | |
US10541961B2 (en) | System and method for automating actions in distributed computing | |
CN112788126B (zh) | 资源下载方法、装置、服务器和存储介质 | |
CN109669703A (zh) | 微服务信息配置方法、装置、计算机设备和存储介质 | |
US11210198B2 (en) | Distributed web page performance monitoring methods and systems | |
US8352442B2 (en) | Determination of an updated data source from disparate data sources | |
JP2002091851A (ja) | 情報提供方法および中継サーバ装置 | |
CN108279924A (zh) | 程序发布方法及装置 | |
EP2812860A1 (en) | Retrieving availability information from published calendars | |
CN113194099A (zh) | 一种数据代理方法及代理服务器 | |
CN105760119B (zh) | 终端设备、信息处理系统和输出方法 | |
US10958445B1 (en) | Attribution of network events pursuant to configuring mobile communication devices | |
CN110401709A (zh) | 一种即时通讯应用中会话的处理方法、装置和存储介质 | |
CN115361279A (zh) | 配置数据的更新方法、装置、电子设备及计算机可读介质 | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
CN104980329A (zh) | 通讯录管理方法及装置、移动代理服务器 | |
CN110417919A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180713 |