CN106341438A - 请求处理方法和装置 - Google Patents

请求处理方法和装置 Download PDF

Info

Publication number
CN106341438A
CN106341438A CN201510405479.1A CN201510405479A CN106341438A CN 106341438 A CN106341438 A CN 106341438A CN 201510405479 A CN201510405479 A CN 201510405479A CN 106341438 A CN106341438 A CN 106341438A
Authority
CN
China
Prior art keywords
application
user
container
domain name
address
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.)
Granted
Application number
CN201510405479.1A
Other languages
English (en)
Other versions
CN106341438B (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.)
Alibaba Singapore Holdings Pte Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510405479.1A priority Critical patent/CN106341438B/zh
Publication of CN106341438A publication Critical patent/CN106341438A/zh
Application granted granted Critical
Publication of CN106341438B publication Critical patent/CN106341438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出一种请求处理方法和装置,该请求处理方法包括:反向代理节点接收用户的访问请求,该访问请求中携带用户申请的容器所在的宿主机的地址、用户请求访问的域名和用户的地址;确定用户申请的容器的地址;根据用户申请的容器的地址将访问请求代理到用户申请的容器中;接收部署在用户申请的容器上的应用发送的响应数据,并将响应数据发送给用户。本发明在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。

Description

请求处理方法和装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种请求处理方法和装置。
背景技术
目前,同一台服务器无法使一台虚拟机支撑多个同域名、同端口的多个不同应用的部署,资源没有得到充分的利用。因此,当开发或测试人员申请环境时,偶尔会因资源紧张而申请不到。
为了解决上述问题,现有技术提供的一种解决方案为基于虚拟化技术提供虚拟机独立外网因特网协议(Internet Protocol;以下简称:IP)的方案,但是,该方案中,由于每个网络设备只能提供一个传输控制协议(Transmission Control Protocol;以下简称:TCP)端口(如80),这样一来,每台虚拟机同一时间就只能有一个应用监听80端口供一个用户使用。并且该方案需要占用大量IP,虚拟机的创建、销毁和升级的运维成本均比较高。另外,该方案中,同一台虚拟机无法支持两个相同域名的不同应用。从使用者角度,该方案还需要自行编辑hosts文件,来映射域名和IP。
现有技术提供的另一种解决方案为基于多端口多账号的复用的方案,但该方案需要用户在访问的时候需要在统一资源定位符(Uniform Resource Locator;以下简称:URL)中增加端口号,额外增加了使用前提,降低了使用体验。
发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种请求处理方法。该方法在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器可以动态生成,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
本发明的第二个目的在于提出一种请求处理装置。
为了实现上述目的,本发明第一方面实施例的请求处理方法,包括:反向代理节点接收用户的访问请求,所述访问请求中携带所述用户申请的容器所在的宿主机的地址、所述用户请求访问的域名和所述用户的地址;根据所述宿主机的地址、所述用户请求访问的域名和所述用户的地址确定所述用户申请的容器的地址;根据所述用户申请的容器的地址将所述访问请求代理到所述用户申请的容器中;接收部署在所述用户申请的容器上的应用发送的针对所述访问请求的响应数据,并将所述响应数据发送给所述用户。
本发明实施例的请求处理方法,反向代理节点接收用户的访问请求之后,根据上述访问请求中携带的宿主机的地址、用户请求访问的域名和上述用户的地址确定用户申请的容器的地址,根据上述用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中;然后接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据,并将上述响应数据发送给用户。从而可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
为了实现上述目的,本发明第二方面实施例的请求处理方法,包括:接收用户发送的资源申请,所述资源申请中携带所述用户需要申请的应用;获取所述应用对应的元数据,所述应用对应的元数据包括所述应用对应的镜像文件和域名;根据所述元数据为所述应用分配端口,并将分配的端口与向外暴露的端口进行绑定;创建和启动所述应用对应的容器,并通知反向代理节点和域名解析节点记录所述容器的信息。
本发明实施例的请求处理方法,接收用户发送的资源申请之后,获取用户需要申请的应用对应的元数据,根据上述元数据为上述应用分配端口,并将分配的端口与向外暴露的端口进行绑定,然后创建和启动上述应用对应的容器,并通知反向代理节点和域名解析节点记录上述容器的信息。从而可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器可以动态生成,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。
为了实现上述目的,本发明第三方面实施例的请求处理方法,包括:访问注册节点接收用户的访问请求;列出所述用户申请的所有容器对应的应用;在所述用户选择需要访问的应用之后,记录所述用户选择访问的应用的域名和所述用户的地址;将所述用户选择访问的应用的域名和所述用户的地址通知给反向代理节点,以供所述反向代理节点对应记录所述用户选择访问的应用的域名和所述用户的地址。
本发明实施例的请求处理方法,访问注册节点接收用户的访问请求,列出上述用户申请的所有容器对应的应用,在上述用户选择需要访问的应用之后,记录用户选择访问的应用的域名和上述用户的地址,并将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点,以供反向代理节点对应记录上述用户选择访问的应用的域名和上述用户的地址,从而可以实现通过反向代理节点和访问注册节点,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
为了实现上述目的,本发明第四方面实施例的请求处理装置,包括:接收模块,用于接收用户的访问请求,所述访问请求中携带所述用户申请的容器所在的宿主机的地址、所述用户请求访问的域名和所述用户的地址;确定模块,用于根据所述宿主机的地址、所述用户请求访问的域名和所述用户的地址确定所述用户申请的容器的地址;代理模块,用于根据所述用户申请的容器的地址将所述访问请求代理到所述用户申请的容器中;所述接收模块,还用于接收部署在所述用户申请的容器上的应用发送的针对所述访问请求的响应数据;发送模块,用于将所述接收模块接收的响应数据发送给所述用户。
本发明实施例的请求处理装置,接收模块接收用户的访问请求之后,确定模块根据上述访问请求中携带的宿主机的地址、用户请求访问的域名和上述用户的地址确定用户申请的容器的地址,代理模块根据上述用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中;然后接收模块接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据,并由发送模块将上述响应数据发送给用户。从而可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
为了实现上述目的,本发明第五方面实施例的请求处理装置,包括:接收模块,用于接收用户发送的资源申请,所述资源申请中携带所述用户需要申请的应用;获取模块,用于获取所述应用对应的元数据,所述应用对应的元数据包括所述应用对应的镜像文件和域名;分配模块,用于根据所述获取模块获取的元数据为所述应用分配端口,并将分配的端口与向外暴露的端口进行绑定;创建模块,用于创建和启动所述应用对应的容器;通知模块,用于通知反向代理节点和域名解析节点记录所述创建模块创建的容器的信息。
本发明实施例的请求处理装置,接收模块接收用户发送的资源申请之后,获取模块获取用户需要申请的应用对应的元数据,分配模块根据上述元数据为上述应用分配端口,并将分配的端口与向外暴露的端口进行绑定,然后创建模块创建和启动上述应用对应的容器,通知模块通知反向代理节点和域名解析节点记录上述容器的信息。从而可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器可以动态生成,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。
为了实现上述目的,本发明第六方面实施例的请求处理装置,包括:接收模块,用于接收用户的访问请求;列出模块,用于列出所述用户申请的所有容器对应的应用;记录模块,用于在所述用户选择需要访问的应用之后,记录所述用户选择访问的应用的域名和所述用户的地址;通知模块,用于将所述用户选择访问的应用的域名和所述用户的地址通知给反向代理节点,以供所述反向代理节点对应记录所述用户选择访问的应用的域名和所述用户的地址。
本发明实施例的请求处理装置,接收模块接收用户的访问请求,列出模块列出上述用户申请的所有容器对应的应用,在上述用户选择需要访问的应用之后,记录模块记录用户选择访问的应用的域名和上述用户的地址,通知模块将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点,以供反向代理节点对应记录上述用户选择访问的应用的域名和上述用户的地址,从而可以实现通过反向代理节点和访问注册节点,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
本发明提出一种请求处理方法和装置,该请求处理方法包括:反向代理节点接收用户的访问请求,该访问请求中携带用户申请的容器所在的宿主机的地址、用户请求访问的域名和用户的地址;确定用户申请的容器的地址;根据用户申请的容器的地址将访问请求代理到用户申请的容器中;接收部署在用户申请的容器上的应用发送的响应数据,并将响应数据发送给用户。本发明在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
图1为本发明请求处理方法一个实施例的流程图;
图2为本发明请求处理方法的应用场景一个实施例的示意图;
图3为本发明请求处理方法另一个实施例的流程图;
图4为本发明请求处理方法再一个实施例的流程图;
图5为本发明请求处理方法再一个实施例的流程图;
图6为本发明请求处理装置一个实施例的结构示意图;
图7为本发明请求处理装置另一个实施例的结构示意图;
图8为本发明请求处理装置再一个实施例的结构示意图;
图9为本发明请求处理装置再一个实施例的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1为本发明请求处理方法一个实施例的流程图,如图1所示,该请求处理方法可以包括:
步骤101,反向代理节点接收用户的访问请求,上述访问请求中携带用户申请的容器所在的宿主机的地址、上述用户请求访问的域名和上述用户的地址。
其中,上述宿主机的地址可以为宿主机的IP地址,上述用户的地址可以为上述用户的IP地址。
上述用户申请的容器所在的宿主机的地址是域名解析节点接收到用户的解析请求之后返回给上述用户的。
步骤102,根据上述宿主机的地址、上述用户请求访问的域名和上述用户的地址确定上述用户申请的容器的地址。
步骤103,根据用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中。
步骤104,接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据,并将上述响应数据发送给用户。
本实施例中,步骤101之前,反向代理节点还可以记录上述容器的信息,上述容器是管理平台接收用户发送的携带上述用户需要申请的应用的资源申请,获取上述应用对应的元数据,上述应用对应的元数据包括上述应用对应的镜像文件和域名;根据上述元数据为上述应用分配端口,并将分配的端口与向外暴露的端口进行绑定之后创建和启动的,上述容器与上述应用对应。
进一步地,在反向代理节点记录上述容器的信息之后,反向代理节点接收用户的访问请求之前,反向代理节点还可以对应记录上述用户选择访问的应用的域名和上述用户的地址;上述用户选择访问的应用的域名和上述用户的地址是访问注册节点接收上述用户的访问请求,列出上述用户申请的所有容器对应的应用;在上述用户选择需要访问的应用之后,记录上述用户选择访问的应用的域名和上述用户的地址,并将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点的。
本实施例中,上述容器的信息可以包括上述容器的内部使用端口、外部访问端口和上述容器的域名,上述容器的内部使用端口为上述向外暴露的端口,上述容器的外部访问端口为分配的端口,上述容器的域名为部署在上述容器上的应用对应的域名。
上述请求处理方法,反向代理节点接收用户的访问请求之后,根据上述访问请求中携带的宿主机的地址、用户请求访问的域名和上述用户的地址确定用户申请的容器的地址,根据上述用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中;然后接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据,并将上述响应数据发送给用户。从而可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
本发明图1所示实施例提供的请求处理方法可以应用在图2所示的场景中,图2为本发明请求处理方法的应用场景一个实施例的示意图,本发明在虚拟机内部以容器为最小服务单位,将用户和容器对应,动态生成和回收容器,极高地利用了同一台虚拟机的资源。如图2所示,容器生成时,动态分配一个端口(本示例为31080至31083)作为部署在该容器上的应用对外访问的端口。应用测试完毕,容器可以快速地被回收,资源被释放以重新支持新的应用。
通过域名解析节点,使开发者省去了本地编辑hosts文件的工作,同时,本发明可以支持用户更自由地定义域名。另外,本发明也节省了有限的外网IP资源。如图2所示,域名解析节点将域名www.abc.com和www.xyz.com都指向了虚拟机1.2.3.4。
通过反向代理节点和使用者机器主动注册技术,将域名和容器绑定,解决同一域名的不同应用部署在同一台虚拟机上的问题。如图2所示,来自1.0.1.1的使用者访问www.abc.com时,通过域名解析将访问1.2.3.4的80端口,反向代理根据访问者来源,将其转向端口为31080的容器。
同时,反向代理节点监听80端口,使部署在该虚拟机上的全部应用可以都使用80端口路由进来,达到了动态生成容器后,端口保持不变的理想状态。
图3为本发明请求处理方法另一个实施例的流程图,本实施例对容器生成的流程进行介绍,如图3所示,可以包括:
步骤301,接收用户发送的资源申请,上述资源申请中携带用户需要申请的应用。
本实施例中,应用预先由管理员维护到测试环境管理平台(以下简称平台)中,用户需要申请资源的时候,向上述平台发送资源申请,指定需要申请的应用。
步骤302,获取上述应用对应的元数据,上述应用对应的元数据包括上述应用对应的镜像文件和域名。
本实施例中,接收到用户发送的资源申请之后,平台能够获取用户需要申请的应用对应的元数据,上述应用对应的元数据包括上述应用对应的镜像文件和域名等信息。
步骤303,根据上述元数据为上述应用分配端口,并将分配的端口与向外暴露的端口进行绑定。
具体地,平台根据上述元数据进行动态端口分配,将为上述应用动态分配的端口与向外暴露的端口进行绑定。
步骤304,创建和启动上述应用对应的容器,并通知反向代理节点和域名解析节点记录上述容器的信息。
其中,上述容器的信息包括上述容器的内部使用端口、外部访问端口和上述容器的域名,上述容器的内部使用端口为上述向外暴露的端口,上述容器的外部访问端口为上述分配的端口,上述容器的域名为部署在上述容器上的应用对应的域名。
本实施例中,应用运行时容器内部使用端口固定,从而可以避免用户为了使用平台提供的环境而额外修改配置项;外部访问端口由平台随机分配(确保不会重复),然后由反向代理节点直接访问。后续,用户将通过配置项中定义的域名访问,对平台动态端口分配无需关注。
上述请求处理方法可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器可以动态生成,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。
由于本发明支持重复域名,如果用户A和用户B一样通过图3所示流程申请同一个应用(或域名相同的不同应用),并且两个应用都在同一台测试服务器上,反向代理节点和域名解析节点都将会有两条重复的记录,导致无法区分。为此,本发明增加一个访问注册节点,用户通过访问注册节点选择自己需要访问的应用(通常以项目或其他标示区分),访问注册节点能够自动捕获用户的IP地址,并将这个IP地址通知反向代理节点,反向代理节点会以域名为基础,增加用户的IP地址的约束,从而可以正确地将用户A和用户B的请求代理到对应的容器中,如图4所示。
图4为本发明请求处理方法再一个实施例的流程图,本实施例对容器生成之后的访问注册流程进行介绍,如图4所示,可以包括:
步骤401,访问注册节点接收用户的访问请求。
步骤402,列出上述用户申请的所有容器对应的应用。
步骤403,在上述用户选择需要访问的应用之后,记录上述用户选择访问的应用的域名和上述用户的地址。
步骤404,将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点,以供反向代理节点对应记录上述用户选择访问的应用的域名和上述用户的地址。
上述请求处理方法,访问注册节点接收用户的访问请求,列出上述用户申请的所有容器对应的应用,在上述用户选择需要访问的应用之后,记录用户选择访问的应用的域名和上述用户的地址,并将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点,以供反向代理节点对应记录上述用户选择访问的应用的域名和上述用户的地址,从而可以实现通过反向代理节点和访问注册节点,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
注册完成之后,上述用户即可直接访问域名,即可直接访问到之前申请到的容器。
图5为本发明请求处理方法再一个实施例的流程图,本实施例对用户访问流程进行介绍,如图5所示,该请求处理方法可以包括:
步骤501,用户向域名解析节点发送解析请求。
步骤502,域名解析节点向用户返回上述用户申请的容器所在的宿主机的IP地址。
步骤503,用户向反向代理节点发送访问请求,上述访问请求中携带用户申请的容器所在的宿主机的IP地址、上述用户请求访问的域名和上述用户的IP地址。
步骤504,反向代理节点根据上述宿主机的IP地址、上述用户请求访问的域名和上述用户的IP地址确定上述用户申请的容器的地址。
其中,上述容器的地址可以为上述容器的IP地址。
步骤505,反向代理节点根据用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中。
步骤506,反向代理节点接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据。
步骤507,反向代理节点将上述响应数据发送给用户。
上述请求处理方法中,域名解析节点向用户返回用户申请的容器所在宿主机的IP地址,用户直接去访问反向代理节点。反向代理节点通过访问请求中的域名和用户的IP地址等数据,将访问请求代理到用户实际申请的容器中。上述流程让用户在请求容器内应用的时候能够透明的访问,不需要关注中间的代理细节和容器部署的位置(宿主机IP和/或容器IP等)。同样,通过通用的代理协议(如在协议中增加x-forward-for头等),容器内应用也可以获取到用户使用的客户端的信息,不需要对应用本身做任何改动。
图6为本发明请求处理装置一个实施例的结构示意图,本实施例中的请求处理装置可以作为反向代理节点,或者反向代理节点的一部分实现本发明图1所示实施例的流程,如图6所示,该请求处理装置可以包括:接收模块61、确定模块62、代理模块63和发送模块64;
其中,接收模块61,用于接收用户的访问请求,上述访问请求中携带上述用户申请的容器所在的宿主机的地址、上述用户请求访问的域名和上述用户的地址;其中,上述宿主机的地址可以为宿主机的IP地址,上述用户的地址可以为上述用户的IP地址。
上述用户申请的容器所在的宿主机的地址是域名解析节点接收到用户的请求之后返回给上述用户的。
确定模块62,用于根据上述宿主机的地址、上述用户请求访问的域名和上述用户的地址确定上述用户申请的容器的地址。
代理模块63,用于根据上述用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中。
接收模块61,还用于接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据。
发送模块64,用于将接收模块61接收的响应数据发送给上述用户。
上述请求处理装置中,接收模块61接收用户的访问请求之后,确定模块62根据上述访问请求中携带的宿主机的地址、用户请求访问的域名和上述用户的地址确定用户申请的容器的地址,代理模块63根据上述用户申请的容器的地址将上述访问请求代理到上述用户申请的容器中;然后接收模块61接收部署在上述用户申请的容器上的应用发送的针对上述访问请求的响应数据,并由发送模块64将上述响应数据发送给用户。从而可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
图7为本发明请求处理装置另一个实施例的结构示意图,与图6所示的请求处理装置相比,不同之处在于,图7所示的请求处理装置还可以包括:记录模块65;
记录模块65,用于在接收模块61接收用户的访问请求之前,记录上述容器的信息,上述容器是管理平台接收用户发送的携带上述用户需要申请的应用的资源申请,获取上述应用对应的元数据,上述应用对应的元数据包括上述应用对应的镜像文件和域名;根据上述元数据为上述应用分配端口,并将分配的端口与向外暴露的端口进行绑定之后创建和启动的,上述容器与上述应用对应。
进一步地,记录模块65,还用于对应记录上述用户选择访问的应用的域名和上述用户的地址;上述用户选择访问的应用的域名和上述用户的地址是访问注册节点接收上述用户的访问请求,列出上述用户申请的所有容器对应的应用;在用户选择需要访问的应用之后,记录上述用户选择访问的应用的域名和上述用户的地址,并将上述用户选择访问的应用的域名和上述用户的地址通知给上述请求处理装置的。
本实施例中,记录模块65记录的容器的信息包括上述容器的内部使用端口、外部访问端口和上述容器的域名,上述容器的内部使用端口为上述向外暴露的端口,上述容器的外部访问端口为上述分配的端口,上述容器的域名为部署在上述容器上的应用对应的域名。
上述请求处理装置可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,并且,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
图8为本发明请求处理装置再一个实施例的结构示意图,本实施例中的请求处理装置可以作为管理平台,或者管理平台的一部分实现本发明图3所示实施例的流程,如图8所示,上述请求处理装置可以包括:接收模块81、获取模块82、分配模块83、创建模块84和通知模块85;
其中,接收模块81,用于接收用户发送的资源申请,上述资源申请中携带用户需要申请的应用;本实施例中,应用预先由管理员维护到测试环境管理平台(以下简称平台)中,用户需要申请资源的时候,向上述平台发送资源申请,指定需要申请的应用。
获取模块82,用于获取上述应用对应的元数据,上述应用对应的元数据包括上述应用对应的镜像文件和域名。
分配模块83,用于根据获取模块82获取的元数据为上述应用分配端口,并将分配的端口与向外暴露的端口进行绑定。
创建模块84,用于创建和启动上述应用对应的容器。
通知模块85,用于通知反向代理节点和域名解析节点记录创建模块84创建的容器的信息。
其中,上述容器的信息包括上述容器的内部使用端口、外部访问端口和上述容器的域名,上述容器的内部使用端口为上述向外暴露的端口,上述容器的外部访问端口为上述分配的端口,上述容器的域名为部署在上述容器上的应用对应的域名。
本实施例中,应用运行时容器内部使用端口固定,从而可以避免用户为了使用平台提供的环境而额外修改配置项;外部访问端口由分配模块83随机分配(确保不会重复),然后由反向代理节点直接访问。后续,用户将通过配置项中定义的域名访问,对平台动态端口分配无需关注。
上述请求处理装置可以实现在虚拟机内部以容器为最小服务单位,将用户与容器对应,容器可以动态生成,容器生成时,动态分配一个端口作为部署在该容器上的应用对外访问的端口,应用测试完毕,容器可以被快速地回收,极高地利用了同一台虚拟机的资源。
图9为本发明请求处理装置再一个实施例的结构示意图,本实施例中的请求处理装置可以作为访问注册节点,或者访问注册节点的一部分实现本发明图4所示实施例的流程,如图9所示,上述请求处理装置可以包括:接收模块91、列出模块92、记录模块93和通知模块94;
其中,接收模块91,用于接收用户的访问请求;
列出模块92,用于列出上述用户申请的所有容器对应的应用;
记录模块93,用于在上述用户选择需要访问的应用之后,记录上述用户选择访问的应用的域名和上述用户的地址;
通知模块94,用于将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点,以供反向代理节点对应记录上述用户选择访问的应用的域名和上述用户的地址。
上述请求处理装置,接收模块91接收用户的访问请求,列出模块92列出上述用户申请的所有容器对应的应用,在上述用户选择需要访问的应用之后,记录模块93记录用户选择访问的应用的域名和上述用户的地址,通知模块94将上述用户选择访问的应用的域名和上述用户的地址通知给反向代理节点,以供反向代理节点对应记录上述用户选择访问的应用的域名和上述用户的地址,从而可以实现通过反向代理节点和访问注册节点,将域名和容器绑定,解决了同一域名的不同应用部署在同一台虚拟机上的问题。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(Programmable Gate Array;以下简称:PGA),现场可编程门阵列(Field ProgrammableGate Array;以下简称:FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (14)

1.一种请求处理方法,其特征在于,包括:
反向代理节点接收用户的访问请求,所述访问请求中携带所述用户申请的容器所在的宿主机的地址、所述用户请求访问的域名和所述用户的地址;
根据所述宿主机的地址、所述用户请求访问的域名和所述用户的地址确定所述用户申请的容器的地址;
根据所述用户申请的容器的地址将所述访问请求代理到所述用户申请的容器中;
接收部署在所述用户申请的容器上的应用发送的针对所述访问请求的响应数据,并将所述响应数据发送给所述用户。
2.根据权利要求1所述的方法,其特征在于,所述反向代理节点接收用户的访问请求之前,还包括:
所述反向代理节点记录所述容器的信息,所述容器是管理平台接收所述用户发送的携带所述用户需要申请的应用的资源申请,获取所述应用对应的元数据,所述应用对应的元数据包括所述应用对应的镜像文件和域名;根据所述元数据为所述应用分配端口,并将分配的端口与向外暴露的端口进行绑定之后创建和启动的,所述容器与所述应用对应。
3.根据权利要求2所述的方法,其特征在于,所述反向代理节点记录所述容器的信息之后,所述反向代理节点接收用户的访问请求之前,还包括:
所述反向代理节点对应记录所述用户选择访问的应用的域名和所述用户的地址;所述用户选择访问的应用的域名和所述用户的地址是访问注册节点接收所述用户的访问请求,列出所述用户申请的所有容器对应的应用;在所述用户选择需要访问的应用之后,记录所述用户选择访问的应用的域名和所述用户的地址,并将所述用户选择访问的应用的域名和所述用户的地址通知给反向代理节点的。
4.根据权利要求1所述的方法,其特征在于,所述用户申请的容器所在的宿主机的地址是域名解析节点接收到所述用户的解析请求之后返回给所述用户的。
5.根据权利要求2或3所述的方法,其特征在于,所述容器的信息包括所述容器的内部使用端口、外部访问端口和所述容器的域名,所述容器的内部使用端口为所述向外暴露的端口,所述容器的外部访问端口为所述分配的端口,所述容器的域名为部署在所述容器上的应用对应的域名。
6.一种请求处理方法,其特征在于,包括:
接收用户发送的资源申请,所述资源申请中携带所述用户需要申请的应用;
获取所述应用对应的元数据,所述应用对应的元数据包括所述应用对应的镜像文件和域名;
根据所述元数据为所述应用分配端口,并将分配的端口与向外暴露的端口进行绑定;
创建和启动所述应用对应的容器,并通知反向代理节点和域名解析节点记录所述容器的信息。
7.根据权利要求6所述的方法,其特征在于,所述容器的信息包括所述容器的内部使用端口、外部访问端口和所述容器的域名,所述容器的内部使用端口为所述向外暴露的端口,所述容器的外部访问端口为所述分配的端口,所述容器的域名为部署在所述容器上的应用对应的域名。
8.一种请求处理方法,其特征在于,包括:
访问注册节点接收用户的访问请求;
列出所述用户申请的所有容器对应的应用;
在所述用户选择需要访问的应用之后,记录所述用户选择访问的应用的域名和所述用户的地址;
将所述用户选择访问的应用的域名和所述用户的地址通知给反向代理节点,以供所述反向代理节点对应记录所述用户选择访问的应用的域名和所述用户的地址。
9.一种请求处理装置,其特征在于,包括:
接收模块,用于接收用户的访问请求,所述访问请求中携带所述用户申请的容器所在的宿主机的地址、所述用户请求访问的域名和所述用户的地址;
确定模块,用于根据所述宿主机的地址、所述用户请求访问的域名和所述用户的地址确定所述用户申请的容器的地址;
代理模块,用于根据所述用户申请的容器的地址将所述访问请求代理到所述用户申请的容器中;
所述接收模块,还用于接收部署在所述用户申请的容器上的应用发送的针对所述访问请求的响应数据;
发送模块,用于将所述接收模块接收的响应数据发送给所述用户。
10.根据权利要求9所述的装置,其特征在于,还包括:记录模块;
所述记录模块,用于在所述接收模块接收用户的访问请求之前,记录所述容器的信息,所述容器是管理平台接收所述用户发送的携带所述用户需要申请的应用的资源申请,获取所述应用对应的元数据,所述应用对应的元数据包括所述应用对应的镜像文件和域名;根据所述元数据为所述应用分配端口,并将分配的端口与向外暴露的端口进行绑定之后创建和启动的,所述容器与所述应用对应。
11.根据权利要求10所述的装置,其特征在于,
所述记录模块,还用于对应记录所述用户选择访问的应用的域名和所述用户的地址;所述用户选择访问的应用的域名和所述用户的地址是访问注册节点接收所述用户的访问请求,列出所述用户申请的所有容器对应的应用;在所述用户选择需要访问的应用之后,记录所述用户选择访问的应用的域名和所述用户的地址,并将所述用户选择访问的应用的域名和所述用户的地址通知给所述请求处理装置的。
12.根据权利要求10或11所述的装置,其特征在于,所述记录模块记录的容器的信息包括所述容器的内部使用端口、外部访问端口和所述容器的域名,所述容器的内部使用端口为所述向外暴露的端口,所述容器的外部访问端口为所述分配的端口,所述容器的域名为部署在所述容器上的应用对应的域名。
13.一种请求处理装置,其特征在于,包括:
接收模块,用于接收用户发送的资源申请,所述资源申请中携带所述用户需要申请的应用;
获取模块,用于获取所述应用对应的元数据,所述应用对应的元数据包括所述应用对应的镜像文件和域名;
分配模块,用于根据所述获取模块获取的元数据为所述应用分配端口,并将分配的端口与向外暴露的端口进行绑定;
创建模块,用于创建和启动所述应用对应的容器;
通知模块,用于通知反向代理节点和域名解析节点记录所述创建模块创建的容器的信息。
14.一种请求处理装置,其特征在于,包括:
接收模块,用于接收用户的访问请求;
列出模块,用于列出所述用户申请的所有容器对应的应用;
记录模块,用于在所述用户选择需要访问的应用之后,记录所述用户选择访问的应用的域名和所述用户的地址;
通知模块,用于将所述用户选择访问的应用的域名和所述用户的地址通知给反向代理节点,以供所述反向代理节点对应记录所述用户选择访问的应用的域名和所述用户的地址。
CN201510405479.1A 2015-07-10 2015-07-10 请求处理方法和装置 Active CN106341438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510405479.1A CN106341438B (zh) 2015-07-10 2015-07-10 请求处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510405479.1A CN106341438B (zh) 2015-07-10 2015-07-10 请求处理方法和装置

Publications (2)

Publication Number Publication Date
CN106341438A true CN106341438A (zh) 2017-01-18
CN106341438B CN106341438B (zh) 2020-02-18

Family

ID=57826898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510405479.1A Active CN106341438B (zh) 2015-07-10 2015-07-10 请求处理方法和装置

Country Status (1)

Country Link
CN (1) CN106341438B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707607A (zh) * 2017-07-24 2018-02-16 上海壹账通金融科技有限公司 应用访问方法、装置、计算机设备和存储介质
CN108694117A (zh) * 2017-04-11 2018-10-23 北京京东尚科信息技术有限公司 基于容器技术的管理测试环境的方法和装置
CN108694065A (zh) * 2017-04-10 2018-10-23 鸿富锦精密电子(天津)有限公司 虚拟桌面系统及虚拟桌面控制方法
CN108737584A (zh) * 2017-04-19 2018-11-02 中国移动通信集团山西有限公司 容器服务的访问方法、网络地址的解析方法、装置和系统
CN109086119A (zh) * 2018-07-30 2018-12-25 南京卓盛云信息科技有限公司 一种快速检测容器运行状态的方法
CN109857577A (zh) * 2019-01-28 2019-06-07 北京三快在线科技有限公司 访问控制方法、装置、介质及电子设备
CN109871222A (zh) * 2017-12-05 2019-06-11 柯尼卡美能达株式会社 应用的更新方法以及记录介质
CN110647469A (zh) * 2019-09-24 2020-01-03 广州荔支网络技术有限公司 一种微服务的测试方法、装置、计算机设备和存储介质
CN111182089A (zh) * 2019-12-31 2020-05-19 北京金山云网络技术有限公司 容器集群系统和访问大数据组件的方法、装置及服务器
CN111949366A (zh) * 2020-07-07 2020-11-17 北京思特奇信息技术股份有限公司 一种容器外服务反向代理到容器内部的系统及方法
CN113051035A (zh) * 2021-03-31 2021-06-29 杭州海康威视系统技术有限公司 一种远程控制方法、装置、系统及宿主机
CN113176930A (zh) * 2021-05-19 2021-07-27 重庆紫光华山智安科技有限公司 一种容器内虚拟机的浮动地址管理方法及系统
CN114070883A (zh) * 2021-11-12 2022-02-18 腾讯科技(深圳)有限公司 测试资源访问方法、装置、电子设备及存储介质
CN114666130A (zh) * 2022-03-23 2022-06-24 北京从云科技有限公司 一种web安全反向代理方法
CN114785753A (zh) * 2022-05-05 2022-07-22 上海道客网络科技有限公司 一种容器云平台的域名解析方法、系统、介质和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768332A (zh) * 2003-04-08 2006-05-03 索尼株式会社 内容提供服务器、信息处理装置和方法、以及计算机程序
CN101873318A (zh) * 2010-06-08 2010-10-27 国网电力科学研究院 针对应用基础支撑平台上应用系统的应用与数据保全方法
CN103249173A (zh) * 2012-02-03 2013-08-14 株式会社Ntt都科摩 移动互联网接入设备及其方法
US8874708B2 (en) * 2009-05-26 2014-10-28 Red Hat, Inc. Location discovery based on DNS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768332A (zh) * 2003-04-08 2006-05-03 索尼株式会社 内容提供服务器、信息处理装置和方法、以及计算机程序
US8874708B2 (en) * 2009-05-26 2014-10-28 Red Hat, Inc. Location discovery based on DNS
CN101873318A (zh) * 2010-06-08 2010-10-27 国网电力科学研究院 针对应用基础支撑平台上应用系统的应用与数据保全方法
CN103249173A (zh) * 2012-02-03 2013-08-14 株式会社Ntt都科摩 移动互联网接入设备及其方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108694065A (zh) * 2017-04-10 2018-10-23 鸿富锦精密电子(天津)有限公司 虚拟桌面系统及虚拟桌面控制方法
CN108694065B (zh) * 2017-04-10 2021-08-27 鸿富锦精密电子(天津)有限公司 虚拟桌面系统及虚拟桌面控制方法
CN108694117A (zh) * 2017-04-11 2018-10-23 北京京东尚科信息技术有限公司 基于容器技术的管理测试环境的方法和装置
CN108694117B (zh) * 2017-04-11 2021-10-01 北京京东尚科信息技术有限公司 基于容器技术的管理测试环境的方法和装置
CN108737584A (zh) * 2017-04-19 2018-11-02 中国移动通信集团山西有限公司 容器服务的访问方法、网络地址的解析方法、装置和系统
CN107707607A (zh) * 2017-07-24 2018-02-16 上海壹账通金融科技有限公司 应用访问方法、装置、计算机设备和存储介质
WO2019019670A1 (zh) * 2017-07-24 2019-01-31 深圳壹账通智能科技有限公司 应用访问方法、装置、计算机设备和存储介质
CN109871222A (zh) * 2017-12-05 2019-06-11 柯尼卡美能达株式会社 应用的更新方法以及记录介质
CN109086119A (zh) * 2018-07-30 2018-12-25 南京卓盛云信息科技有限公司 一种快速检测容器运行状态的方法
CN109857577A (zh) * 2019-01-28 2019-06-07 北京三快在线科技有限公司 访问控制方法、装置、介质及电子设备
CN110647469A (zh) * 2019-09-24 2020-01-03 广州荔支网络技术有限公司 一种微服务的测试方法、装置、计算机设备和存储介质
CN110647469B (zh) * 2019-09-24 2023-09-08 广州荔支网络技术有限公司 一种微服务的测试方法、装置、计算机设备和存储介质
CN111182089A (zh) * 2019-12-31 2020-05-19 北京金山云网络技术有限公司 容器集群系统和访问大数据组件的方法、装置及服务器
CN111949366A (zh) * 2020-07-07 2020-11-17 北京思特奇信息技术股份有限公司 一种容器外服务反向代理到容器内部的系统及方法
CN111949366B (zh) * 2020-07-07 2024-04-05 北京思特奇信息技术股份有限公司 一种容器外服务反向代理到容器内部的系统及方法
CN113051035A (zh) * 2021-03-31 2021-06-29 杭州海康威视系统技术有限公司 一种远程控制方法、装置、系统及宿主机
CN113051035B (zh) * 2021-03-31 2024-02-02 杭州海康威视系统技术有限公司 一种远程控制方法、装置、系统及宿主机
CN113176930A (zh) * 2021-05-19 2021-07-27 重庆紫光华山智安科技有限公司 一种容器内虚拟机的浮动地址管理方法及系统
CN113176930B (zh) * 2021-05-19 2023-09-01 重庆紫光华山智安科技有限公司 一种容器内虚拟机的浮动地址管理方法及系统
CN114070883A (zh) * 2021-11-12 2022-02-18 腾讯科技(深圳)有限公司 测试资源访问方法、装置、电子设备及存储介质
CN114666130A (zh) * 2022-03-23 2022-06-24 北京从云科技有限公司 一种web安全反向代理方法
CN114666130B (zh) * 2022-03-23 2024-06-07 北京从云科技有限公司 一种web安全反向代理方法
CN114785753A (zh) * 2022-05-05 2022-07-22 上海道客网络科技有限公司 一种容器云平台的域名解析方法、系统、介质和电子设备
CN114785753B (zh) * 2022-05-05 2023-10-27 上海道客网络科技有限公司 一种容器云平台的域名解析方法、系统、介质和电子设备

Also Published As

Publication number Publication date
CN106341438B (zh) 2020-02-18

Similar Documents

Publication Publication Date Title
CN106341438A (zh) 请求处理方法和装置
CN106528432B (zh) 测试场景数据的构建方法及装置、埋点测试方法
CN104823163B (zh) 基于元数据的虚拟机配置
CN104965691B (zh) 配置网页页面的页面元素的方法、装置及系统
CN108132814A (zh) 应用程序的页面加载方法、装置、计算机设备和存储介质
CN103596066B (zh) 一种数据处理方法及装置
CN106815007A (zh) 应用程序的处理方法和装置
CN106484383A (zh) 页面渲染方法、装置及设备
US20140013001A1 (en) Parallel probing for efficient proxy selection in networked environments
CN106897216A (zh) 测试软件的方法和装置
CN107181779A (zh) 访问请求的处理方法、装置和系统
CN111913738A (zh) 访问请求的处理方法、装置、计算设备和介质
CN104967644A (zh) 消息推送方法、装置及系统
CN107613037A (zh) 一种域名重定向方法和系统
CN103634147A (zh) 一种网络拓扑管理方法及设备
CN109871217A (zh) 基于应用商店的应用程序安装方法及装置
CN109739711A (zh) 一种接口测试方法、装置、设备和存储介质
CN107220066A (zh) 应用商店中应用软件的发布方法及装置
CN110120971A (zh) 一种灰度发布方法、装置及电子设备
CN105553832A (zh) 消息发送、接收方法及装置
CN110392123A (zh) 检测出口ip地址的方法、装置和系统
CN106775952A (zh) 一种安卓应用的进程管理方法和装置
CN103248627B (zh) 实现访问网站资源的方法、正向代理服务器和系统
CN106101843B (zh) 富媒体文件的展示方法和装置
CN106446640B (zh) 用户识别的方法及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240401

Address after: # 01-21, Lai Zan Da Building 1, 51 Belarusian Road, Singapore

Patentee after: Alibaba Singapore Holdings Ltd.

Country or region after: Singapore

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

Country or region before: Cayman Islands