代理服务切换测试方法、系统、电子设备及可读介质转让专利

申请号 : CN202210872215.7

文献号 : CN115277662B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵琼陈永林董俊文

申请人 : 杭州迪普科技股份有限公司

摘要 :

本公开涉及一种基于单机环境的代理服务切换测试方法、系统、电子设备及计算机可读介质。该方法包括:控制节点获取来自用户的HTTP请求;控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;根据所述防火墙设备的处理结果生成代理服务的切换测试结果。本申请涉及的基于单机环境的代理服务切换测试方法、系统、电子设备及计算机可读介质,能够在单机环境下,模拟只有集群环境才可实现的代理服务切换测试功能,节约投入的时间和精力,快速进行代理服务切换测试。

权利要求 :

1.一种基于单机环境的代理服务切换测试方法,其特征在于,包括:控制节点获取来自用户的HTTP请求;

控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;

所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;

所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;

根据所述防火墙设备的处理结果生成代理服务的切换测试结果。

2.如权利要求1所述的方法,其特征在于,还包括:对所述控制节点和所述计算节点进行域名设置;

对所述控制节点进行初始化设置;

对所述计算节点进行初始化设置。

3.如权利要求1所述的方法,其特征在于,对所述控制节点和所述计算节点进行域名设置,包括:为所述控制节点和所述计算节点分别设置VIP域名。

4.如权利要求2所述的方法,其特征在于,对所述控制节点进行初始化设置,包括:在所述控制节点上安装neutron‑server核心处理组件和实现对防火墙的业务下发的代理服务;

在所述控制节点上设置动态更新的VIP域名。

5.如权利要求4所述的方法,其特征在于,在所述控制节点上设置动态更新的VIP域名,包括:通过流编辑器定时由预设的多个VIP域名中提取目标VIP域名;

将所述目标VIP域名写入所述控制节点的预设位置。

6.如权利要求3所述的方法,其特征在于,对所述计算节点进行初始化设置,包括:在所述计算节点上安装nova计算服务和实现对防火墙的业务下发的代理服务。

7.如权利要求1所述的方法,其特征在于,控制节点提取VIP域名,包括:控制节点由其内设的neutron‑server核心处理组件的指定目录中提取所述VIP域名。

8.如权利要求1所述的方法,其特征在于,所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理,包括:所述VIP域名对应的计算节点或控制节点基于内设的实现对防火墙的业务下发的代理服务对所述HTTP请求进行处理;

将处理之后的HTTP请求转发给所述防火墙。

9.如权利要求1所述的方法,其特征在于,根据所述防火墙设备的处理结果生成代理服务的切换测试结果,包括:所述防火墙设备基于接收到的HTTP请求的代理标识确定发送设备;

根据发送设备和动态更新的VIP域名之间的关系生成代理服务的切换测试结果。

10.一种基于单机环境的代理服务切换测试系统,其特征在于,包括:控制节点,用于获取来自用户的HTTP请求;提取VIP域名,并基于所述VIP域名发送所述HTTP请求;作为代理服务接收所述HTTP请求,并将其转发到防火墙设备;

计算节点,用于作为代理服务接收所述HTTP请求,并将其转发到防火墙设备;

防火墙设备,用于记录其接收到的HTTP请求以生成代理服务的切换测试结果。

说明书 :

代理服务切换测试方法、系统、电子设备及可读介质

技术领域

[0001] 本公开涉及计算机信息处理领域,具体而言,涉及一种基于单机环境的代理服务切换测试方法、系统、电子设备及计算机可读介质。

背景技术

[0002] 随着个人计算机和工作站的普及以及网络通信技术的迅速发展,使拥有个人计算机或工作站的广大用户,迫切需要共享或集成分布于网络上的丰富信息资源,用以廉价获得超出局部计算机能力的高品质服务,并逐步实现计算机支持的协同工作。在这样的需求驱动下,分布计算成为影响当今计算机技术发展的关键技术力量。分布计算还处于客户/服务器计算的中间阶段,由于受到新的应用需求的冲击,开始向分散对等的协同计算方向发展,将Agent(代理服务)的概念和技术引入分布计算已成为这一发展阶段的重要特征。
[0003] 从逻辑上讲,一个分布式系统可以定义为由多个相互作用的Agent组成的系统,各种分布式系统的差异主要表现为其中Agent的角色和交互方式上的差别。在云管理平台中,一般情况而言,agent服务安装于openstack控制节点中,与openstack原生的Neutron‑server服务对接使用,而在现网生产环境中,openstack环境安装复杂,通常部署为集群环境会有三台控制节点。在对agent进行实际内部测试时,往往只有一个控制节点,这种情况下,是无法对多个agent之间的切换能力和准确度进行相关测试。
[0004] 因此,需要一种新的基于单机环境的代理服务切换测试方法、系统、电子设备及计算机可读介质。
[0005] 在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0006] 有鉴于此,本申请提供一种基于单机环境的代理服务切换测试方法、系统、电子设备及计算机可读介质,能够在单机环境下,模拟只有集群环境才可实现的代理服务切换测试功能,节约投入的时间和精力,快速进行代理服务切换测试。
[0007] 本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
[0008] 根据本申请的一方面,提出一种基于单机环境的代理服务切换测试方法,该方法包括:控制节点获取来自用户的HTTP请求;控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;根据所述防火墙设备的处理结果生成代理服务的切换测试结果。
[0009] 在本申请的一种示例性实施例中,还包括:将所述控制节点和所述计算节点进行电连接;对所述控制节点进行初始化设置;对所述计算节点进行初始化设置。
[0010] 在本申请的一种示例性实施例中,将所述控制节点和所述计算节点进行电连接,包括:为所述控制节点和所述计算节点分别设置VIP域名。
[0011] 在本申请的一种示例性实施例中,对所述控制节点进行初始化设置,包括:在所述控制节点上安装neutron‑server核心处理组件和dptech‑agent代理服务;在所述控制节点上设置动态更新的VIP域名。
[0012] 在本申请的一种示例性实施例中,在所述控制节点上设置动态更新的VIP域,包括:通过流编辑器定时由预设的多个VIP域名中提取目标VIP域名;将所述目标VIP域名写入所述控制节点的预设位置。
[0013] 在本申请的一种示例性实施例中,对所述计算节点进行初始化设置,包括:在所述计算节点上安装nova计算服务和dptech‑agent代理服务。
[0014] 在本申请的一种示例性实施例中,控制节点提取VIP域名,包括:控制节点由其内设的neutron‑server核心处理组件的指定目录中提取所述VIP域名。
[0015] 在本申请的一种示例性实施例中,所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理,包括:所述VIP域名对应的计算节点或控制节点基于内设的dptech‑agent代理服务对所述HTTP请求进行处理;将处理之后的HTTP请求转发给所述防火墙。
[0016] 在本申请的一种示例性实施例中,根据所述防火墙设备的处理结果生成代理服务的切换测试结果,包括:所述防火墙设备基于接收到的HTTP请求的代理标识确定发送设备;根据发送设备和动态更新的VIP域名之间的关系生成代理服务的切换测试结果。
[0017] 根据本申请的一方面,提出一种基于单机环境的代理服务切换测试系统,该系统包括:控制节点,用于获取来自用户的HTTP请求;提取VIP域名,并基于所述VIP域名发送所述HTTP请求;作为代理服务接收所述HTTP请求,并将其转发到防火墙设备;计算节点,用于作为代理服务接收所述HTTP请求,并将其转发到防火墙设备;防火墙设备,用于记录其接收到的HTTP请求以生成代理服务的切换测试结果。
[0018] 根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
[0019] 根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
[0020] 根据本申请的基于单机环境的代理服务切换测试方法、系统、电子设备及计算机可读介质,通过控制节点获取来自用户的HTTP请求;控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;根据所述防火墙设备的处理结果生成代理服务的切换测试结果的方式,能够在单机环境下,模拟只有集群环境才可实现的代理服务切换测试功能,节约投入的时间和精力,快速进行代理服务切换测试。
[0021] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

[0022] 通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1是根据一示例性实施例示出的一种基于单机环境的代理服务切换测试系统的示意图。
[0024] 图2是根据一示例性实施例示出的一种基于单机环境的代理服务切换测试方法的流程图。
[0025] 图3是根据另一示例性实施例示出的一种基于单机环境的代理服务切换测试方法的流程图。
[0026] 图4是根据另一示例性实施例示出的一种基于单机环境的代理服务切换测试方法的流程图。
[0027] 图5是根据一示例性实施例示出的一种电子设备的框图。
[0028] 图6是根据一示例性实施例示出的一种计算机可读介质的框图。

具体实施方式

[0029] 现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0030] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、系统、实现或者操作以避免模糊本申请的各方面。
[0031] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0032] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0033] 应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
[0034] 本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
[0035] 本申请涉及的技术缩略语解释如下:
[0036] 服务器集群:服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
[0037] dptech‑agent:是迪普科技已经广为市场化的服务器服务进程中对防火墙的业务下发。dptech‑agent只有一个主要的服务进程dptech‑agent,它运行在openstack网络控制节点,Neutron‑server接收到的用户HTTP请求通过rabbitmq‑server,传递给dptech‑agent,dptech‑agent实现对防火墙的业务下发。
[0038] neutron‑server:neutron‑server是neutron的核心组件之一,负责直接接受外部请求(包括CLI API,REST API等),然后调度后端相应的plugin进行处理。
[0039] openstack:openstack是一个云平台管理的项目,它不是一个软件。可以使用openstack来管理数据中心大量资源池。它里面包含了很多子项目。openstack主要目标是来简化资源的管理和分配,把计算、网络、存储三大项虚拟成三大资源池,对外提供api,通过api进行交互。
[0040] 如上文所述,现有的agent切换测试方法为直接在现网环境,或者在集群测试环境中一比一的测试多节点情况下,agent切换相关的测试。而实际内部测试时,往往并不搭建集群测试的环境,内部单机环境只存在单个控制节点+计算节点,对于内部测试,以及agent切换测试本身的目的来说,都无法测试到相关内容。
[0041] 有鉴于现有技术中的技术困境,本申请提出了一种基于单机环境的代理服务切换测试方法、系统,能够在单机环境下,模拟只有集群环境才可测试的agent切换功能。
[0042] 下面借助于具体的实施例,对本申请的内容进行详细描述。
[0043] 下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
[0044] 图1是根据一示例性实施例示出的一种基于单机环境的代理服务切换测试系统的示意图。
[0045] 如图1所示,系统架构10可以包括终端设备101、102、103,网络104和控制节点105、计算节点106、防火墙设备105。网络104用以在终端设备101、102、103和控制节点105、计算节点106之间;网络104还用以在控制节点105、计算节点106和防火墙设备105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0046] 用户可以使用终端设备101、102、103通过网络104与控制节点105、计算节点106交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
[0047] 终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0048] 可例如,对所述控制节点105和所述计算节点106进行域名设置;对所述控制节点105进行初始化设置;对所述计算节点106进行初始化设置。
[0049] 控制节点105、计算节点106可以是提供各种处理服务的服务器,控制节点105可例如获取来自用户的HTTP请求;控制节点105可例如提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点106或控制节点105可例如作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点106或控制节点105可例如将所述HTTP请求转发给防火墙设备105进行处理;可例如根据所述防火墙设备105的处理结果生成代理服务的切换测试结果。
[0050] 控制节点105、计算节点106、防火墙设备105均可以是一个实体的服务器,还可例如为多个服务器组成。需要说明的是,本申请实施例所提供的基于单机环境的代理服务切换测试方法可以由控制节点105、计算节点106、防火墙设备105执行。
[0051] 根据本申请的基于单机环境的代理服务切换测试系统,通过控制节点获取来自用户的HTTP请求;控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;根据所述防火墙设备的处理结果生成代理服务的切换测试结果的方式,能够在单机环境下,模拟只有集群环境才可实现的代理服务切换测试功能,节约投入的时间和精力,快速进行代理服务切换测试。
[0052] 图2是根据一示例性实施例示出的一种基于单机环境的代理服务切换测试方法的流程图。基于单机环境的代理服务切换测试方法20至少包括步骤S202至S208。
[0053] 如图2所示,在S202中,控制节点获取来自用户的HTTP请求。可事先在所述控制节点上安装neutron‑server核心处理组件和dptech‑agent代理服务。Neutron‑server接收到的用户HTTP请求通过rabbitmq‑server将HTTP请求传递给代理服务。
[0054] 在S204中,控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求。控制节点可由其内设的neutron‑server核心处理组件的指定目录中提取所述VIP域名。
[0055] 可在neutron‑server核心处理组件的etc/hosts文件中新增一个vip域名,该文件为linux系统中的域名配置文件。/etc目录包含与系统和服务相关的配置。hosts文件用于存储主机名或DNS到IP地址的解析。它提供了一种简单的方法来将主机名或DNS名称与IP地址进行匹配。控制节点可以直接读取/etc/hosts文件的当前内容。
[0056] 在dptech‑agent代理中,如果存在多个节点,会在其内部数据库中记录选中的主节点的信息,且每秒实时检测一次,三次未收到回应则表示该agent已异常超时,触发切换。
[0057] 可在实际应用过程中,通过shell脚本直接连接数据库,获取对应的主agent信息,设置检测频率为与agent切换检测频率相同(该操作可保证脚本获取到的主agent信息和实际的主agent信息是一致的),再通过sed语句动态更新vip域名的实际取值为脚本获取到的主agent的ip。
[0058] 其中,sed为流编辑器,可作为行编辑器对文本进行编辑(以行为单位进行编辑)。sed编辑文件却不改变源文件。
[0059] 在实际应用场景中,可指定一个文本文件,sed依次读取文本文件中每行的内容,读取到pattern space模式空间中,在模式空间中进行文本匹配(正则表达式)对匹配后的内容进行修改(s替换、d删除、p打印、修改、保存)。
[0060] 在S206中,所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求。所述VIP域名可指向不同的设备,该设备可为计算节点或单机节点,控制节点中的neutron‑server核心处理组件将HTTP请求发送给VIP域名对应的计算节点或控制节点。
[0061] 计算节点或控制节点作为代理服务,实现dptech‑agent服务,以接收所述HTTP请求。
[0062] 在S208中,所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理。所述VIP域名对应的计算节点或控制节点基于内设的dptech‑agent代理服务对所述HTTP请求进行处理;将处理之后的HTTP请求转发给所述防火墙。
[0063] dptech‑agent代理服务可对HTTP请求进行简单的处理,比如设定标签以代表转发设备标识,或者在报文中能够添加转发设备的消息。还可以采用其他手段进行处理,只要能够使得防火墙设备能够获知其所接收的HTTP请求的来源即可。
[0064] 在S210中,根据所述防火墙设备的处理结果生成代理服务的切换测试结果。所述防火墙设备可例如基于接收到的HTTP请求的代理标识确定发送设备;根据发送设备和动态更新的VIP域名之间的关系生成代理服务的切换测试结果。
[0065] 在一个具体的实施例中,VIP域名按照管理员用户设置的频率动态更新,动态更新的情况会被表格记录下来,记录表可如表1所述:
[0066] 时间 VIP域名 说明13:00:00 A 控制节点
13:00:05 B 计算节点
13:00:08 A 控制节点
13:00:12 B 计算节点
[0067] 防火墙会将其接受到的HTTP请求进行整理,提取接收时间和数据来源,将接收时间和数据来源(控制节点或计算节点)和上文中的动态更新情况进行比较,即可生成代理服务切换测试的测试结果。
[0068] 根据本申请的基于单机环境的代理服务切换测试方法,通过控制节点获取来自用户的HTTP请求;控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;根据所述防火墙设备的处理结果生成代理服务的切换测试结果的方式,能够在单机环境下,模拟只有集群环境才可实现的代理服务切换测试功能,节约投入的时间和精力,快速进行代理服务切换测试。
[0069] 本申请的基于单机环境的代理服务切换测试方法,通过跳过neutron‑server和dptech‑agent的一对一绑定,以及新增简易vip域名的方式,达到只测试agent切换的效果,而不再关心是否需要完整的集群环境,降低测试成本,提高测试效率。
[0070] 应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
[0071] 图3是根据另一示例性实施例示出的一种基于单机环境的代理服务切换测试方法的流程图。图3所示的流程30是对图2所示的流程的补充描述。
[0072] 在集群环境中,存在三个控制节点和n个计算节点,每个控制节点都对应有相应的neutron‑server和dptech‑agent服务,属于一一对应关系,而在内部的单机环境中仅存在一个控制节点加一个计算节点,控制节点正常安装一个neutron‑server和dptech‑agent,计算节点没有安装以上两个服务,只安装了跟业务有关的nova计算服务,在单机环境下模拟agent切换测试,通过在计算节点单独安装一个dptech‑agent服务,模拟当前拥有多个agent,如图3所示,在本方法中,存在控制节点agent和计算节点agent共2个agent。
[0073] 如图3所示,在S302中,对所述控制节点和所述计算节点进行域名设置。可为所述控制节点和所述计算节点分别设置VIP域名。
[0074] 在S304中,对所述控制节点进行初始化设置。可例如,在所述控制节点上安装neutron‑server核心处理组件和dptech‑agent代理服务;在所述控制节点上设置动态更新的VIP域名。
[0075] 更具体的,在所述控制节点上设置动态更新的VIP域,包括:通过流编辑器定时由预设的多个VIP域名中提取目标VIP域名;将所述目标VIP域名写入所述控制节点的预设位置。
[0076] 如上文所述,已通过在计算节点安装一个dptech‑agent方式,得到了两个agent,具备了可以切换的条件但neutron‑server只对接控制节点,暂时无法将请求送往计算节点。
[0077] 因此,可在控制节点的etc/hosts文件中新增一个vip域名,该文件为linux系统中的域名配置文件,可以配置域名和ip的一一映射,且不需要重启服务即可生效,将vip取值为一个变量,默认可为控制节点和计算节点两个节点IP的随机一个。
[0078] 在S306中,对所述计算节点进行初始化设置。在所述计算节点上安装nova计算服务和dptech‑agent代理服务。
[0079] 图4是根据另一示例性实施例示出的一种基于单机环境的代理服务切换测试方法的流程图。图4所示的流程40是对图2所示的流程的详细描述。
[0080] 如图4所示,在S402中,HTTP请求。
[0081] 在S404中,neutron‑server进行处理。
[0082] 在S406中,通过脚本获取VIP域名。
[0083] 在S408中,控制节点进行处理。
[0084] 在S410中,计算节点进行处理。
[0085] 在S412中,防火墙设备接收HTTP请求。
[0086] 在S414中,生成测试结果。
[0087] 通过上文中的设置,在vip域名能够动态的变为主agent后,通过修改neutron‑server和dptech‑agent对应的fwaas_driver.ini配置文件将以前的控制节点,修改为对应的vip域名,此时可进行正常的模拟agent切换的测试验证,持续下发请求。
[0088] 如图4所示,每个下发业务的请求都先到neutron‑server服务,neutron‑server发送给vip,而vip的值通过脚本动态获取到,如果其中某个agent故障,则获取的vip会根据超时时间获取到新选择的主agent,如果为vip值为控制节点,则发送给控制节点上的dptech‑agent,如果为计算节点,则发送给计算节点的dptech‑agent,最终两个agent的请求都发送给同一个fw设备,整个配置下发过程,可以进行来回切换,对于fw来说不会感知到中间的切换,实现模拟agent切换测试的目的。
[0089] 根据本申请的基于单机环境的代理服务切换测试方法,可以在单机环境下,模拟只有集群环境才能进行的agent切换测试,适用于测试多agent切换的应用场景。
[0090] 根据本申请的基于单机环境的代理服务切换测试方法,对于agent切换的测试,可以直接通过安装集群环境或者在现网生产环境,达到本方案的目的,但是对于简单的agent切换功能,实际并不需要花费大量的时间投入到复杂环境安装中,可以通过本方案,进行快速的模拟测试。
[0091] 本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
[0092] 此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0093] 图5是根据一示例性实施例示出的一种电子设备的框图。
[0094] 下面参照图5来描述根据本申请的这种实施方式的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0095] 如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530、显示单元540等。
[0096] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图2,图3,图4中所示的步骤。
[0097] 所述存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
[0098] 所述存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0099] 总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0100] 电子设备500也可以与一个或多个外部设备500’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备500交互的设备通信,和/或该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器560可以通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0101] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图6所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
[0102] 总体而言,本公开是为了实现在单机环境下,模拟只有集群环境才可测试的agent切换功能,通过在计算节点单独安装一个agent,在集群环境中,存在三个控制节点+n个计算节点,每个控制节点都对应有相应的neutron‑server+dptech‑agent服务,属于一一对应关系,而在内部的单机环境中仅存在一个控制节点加一个计算节点,控制节点正常安装一个neutron‑server和dptech‑agent,计算节点没有安装以上两个服务,只安装了跟业务有关的nova计算服务,在单机环境下模拟agent切换测试,通过在计算节点单独安装一个dptech‑agent服务,模拟当前拥有多个agent,如图1所示,在本方法中,存在控制节点agent和计算节点agent共2个agent。然后,在etc/hosts文件中新增一个vip域名。当前已通过在计算节点安装一个dptech‑agent方式,得到了两个agent,具备了可以切换的条件但neutron‑server只对接控制节点,暂时无法将请求送往计算节点,因此,在etc/hosts文件中新增一个vip域名,该文件为linux系统中的域名配置文件,可以配置域名和ip的一一映射,且不需要重启服务即可生效,将vip取值为一个变量,默认为控制节点和计算节点两个节点IP的随机一个。接着,通过脚本获取当前主agent信息。当前dptech‑agent如果存在多个节点,会在数据库中记录选中的主节点的信息,且每秒实时检测一次,三次未收到回应则表示该agent已异常超时,触发切换,通过shell脚本直接连接数据库,获取对应的主agent信息,设置检测频率为与agent切换检测频率相同(该操作可保证脚本获取到的主agent信息和实际的主agent信息是一致的),再通过sed语句动态更新vip域名的实际取值为脚本获取到的主agent的ip。最后,在单机环境下,测试agent切换功能。在vip域名能够动态的变为主agent后,通过修改neutron‑server和dptech‑agent对应的fwaas_driver.ini配置文件将以前的控制节点,修改为对应的vip域名,此时可进行正常的模拟agent切换的测试验证,持续下发请求,如图1所示,每个下发业务的请求都先到neutron‑server服务,neutron‑server发送给vip,而vip的值通过脚本动态获取到,如果其中某个agent故障,则获取的vip会根据超时时间获取到新选择的主agent,如果为vip值为控制节点,则发送给控制节点上的dptech‑agent,如果为计算节点,则发送给计算节点的dptech‑agent,最终两个agent的请求都发送给同一个fw设备,整个配置下发过程,可以进行来回切换,对于fw来说不会感知到中间的切换,实现模拟agent切换测试的目的。本公开可以在单机环境下,模拟只有集群环境才能进行的agent切换测试,适用于测试多agent切换的应用场景。
[0103] 所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0104] 所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0105] 可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0106] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:控制节点获取来自用户的HTTP请求;控制节点提取VIP域名,并基于所述VIP域名发送所述HTTP请求;所述VIP域名对应的计算节点或控制节点作为代理服务接收所述HTTP请求;所述VIP域名对应的计算节点或控制节点将所述HTTP请求转发给防火墙设备进行处理;根据所述防火墙设备的处理结果生成代理服务的切换测试结果。
[0107] 得该计算机可读介质还可实现如下功能:对所述控制节点和所述计算节点进行域名设置;对所述控制节点进行初始化设置;对所述计算节点进行初始化设置。
[0108] 本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0109] 通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
[0110] 以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。