System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机,尤其涉及一种私有部署场景下的流量控制方法。
技术介绍
1、软件公司的产品不停在迭代,迭代后的产品需要持续升级。对于一些特殊的行业,例如金融、医疗行业,数据安全性和隐私保护至关重要,私有化部署可以将数据存储在企业的内部环境中,并由企业自行管理,从而降低数据泄露的风险。私有部署场景是指将软件系统部署在由用户自己掌控的服务器或云环境中,而不是使用公共云或由第三方提供的托管服务。在这种场景下,用户对整个系统拥有完全的控制权,包括硬件、软件、网络和安全等方面。私有部署则可以根据用户的具体需求进行定制,满足个性化的功能和性能需求。
2、基于此类需求,现有技术中也提出了如专利号:202111657284.8所公开的专利技术专利《私有部署系统升级方法、装置、计算机设备及存储介质》中就公开了私有部署系统升级方法、装置、计算机设备及存储介质。所述方法包括:拉取通过流水线生成且同步至部署在公网服务器的镜像仓库的镜像文件,以使得生产服务器主动同步所述镜像文件,并通过配置镜像升级文件,以进行镜像文件的升级;获取脚本的迭代版本;根据所述迭代版本自动升级数据库内的全量脚本以及增量脚本;获取配置文件的升级文件;根据所述配置文件的升级文件自动所述配置文件。可实现自动执行镜像升级、数据库升级、配置文件升级以及激活,提高系统升级效率。
3、现有技术中在进行私有部署时,有两种处理方案,一类是为了防止在部署过程中依然有外部访问,且可能导致访问的信息丢失,需要采取一定的措施避免在升级过程中有用户访问并产生有效流量。所述措施包括
4、还有一类是采用了灰度部署方案,这类灰度部署的方案包括互联网中基于tag的方案,在系统始终有流量进来的情况下,保持新、旧两套系统并存,在部署完成后开始引导部分请求进入新系统从而测试新系统是否运行正常。在确认无误后再逐步将老系统更新为新系统。但是在这类灰度部署方案中,由于海量实际用户请求不中断涌入系统,所以一旦新系统代码逻辑有bug,则直接造成实际生产环境的用户错误数据。如果涉及资金则直接造成用户资金损失。系统中存在若干脏数据造成数据污染,即便进行人工介入也难以根除。由此可见,在这两种处理方案过程中,一方面系统升级有可能受到用户产生的数据流量影响导致升级失败,另一方面系统升级也影响用户实际使用体验,导致升级过程中用户操作无效给用户带来损失。
技术实现思路
1、针对现有技术中无法确保私有部署系统升级稳定性的问题,同时也为了提高部署系统升级的速度和灵活度,本专利技术提供了一种私有部署场景下的流量控制方法。
2、本专利技术具体包括建立分类安装包步骤:在建立分类安装包时生成分类安装包之间的依赖关系图;部署前的流量控制步骤:关闭系统流量入口,并通过全局流量探测对关闭流量入口前已经进入系统的流量进行探测,判断这些流量所涉及的业务模块以及处理状况;逐步关闭流量所不涉及的业务模块,从而释放相应的线程数从而加速处理速度,等待已经进入系统的流量处理完毕后,进行分类安装包的部署;
3、部署完成步骤:在整个系统部署完成后,先对组成整体系统基本功能的服务组件开放流量,此时网关和业务开始接收请求,因此对于组成整体系统基本功能的服务组件既有进入的请求信息,也有对应的反馈信息;而其它模块依然保持在关闭状态而不接受任何请求,因此只有进入的请求信息,没有对应的反馈信息,此时部署完成的系统进入流量半开放的状态;然后对开放流量的服务组件的工作状况进行检测;组成整体系统基本功能的服务组件正常运行后,再根据已提出请求的用户访问数据需求以及分类安装包的依赖关系图逐一放开其它模块的访问权限,每个模块在放开过程中进行检测,所有模块都放开后系统进入流量全开放的状态,部署完毕。
4、优选的,所述部署分为大版本更新部署和补丁版本更新部署;在大版本更新部署中,已经进入系统的流量处理完毕后需要打开已经关闭的业务模块进行二次复核,确认流量确实处理完毕后再关闭所有业务模块启动部署。大版本更新部署是指将系统程序的现有版本更新到全新一层版本的过程。大版本更新有时候会涉及核心算法的变化,需要更新的内容更多,也会带来重大功能变更或错误修复。而补丁版本更新通常只会修复已知错误或安全漏洞,更新内容较少。因此对应的处理方式也有所不同。
5、优选的,将私有部署场景中的业务进行划分,将业务划分为组成整体系统基本功能的服务组件业务和带有扩展功能的外部组件业务,以单个业务模块为基础建立分类安装包,手动创建所述分类安装包的依赖关系图,根据分类安装包的依赖关系图规划分类安装包的部署顺序,并预估单个分类安装包的部署时间,在判断关闭流量入口后,剩余流量所涉及的业务模块时对处理这些流量的时间进行预估,并据此提出部署的起始时间,结合分类安装包预估的部署时间,最终获取预估安装时间段。
6、优选的,在流量关闭后进行流量探测步骤具体包括:通过java中间态流量分析各个工作线程的线程栈,结合nio网络框架判断部署前的每个服务组件业务模块是否处于工作状态,依次关闭非工作状态的服务组件业务模块,从而减少线程数,将系统资源赋予工作状态中的服务组件业务模块;同时通过消息队列获取当前未处理的消息数,根据提升后的服务组件业务模块算力预测余下工作所需时间。由于本专利技术所涉及的私有部署方法在部署前需要关闭流量,因此流量关闭后,在系统中残余的流量处理速度实质上也会影响到整个系统部署的时间。此时果断关闭非工作状态的服务组件业务模块,将其占用资源释放给工作状态中的服务组件业务模块能加速参与流量处理速度,从而减少整体的部署时间。
7、优选的,在部署前的流量探测步骤中,还通过分布式事务获取对应业务用到的临时数据库记录条数,判断当前服务组件业务模块是否处于工作状态,一旦发现有中间态流量,说明当前任务尚未完成,等流量处理完毕后关闭该服务组件业务模块。
8、优选的,模块在放开过程中进行检测的具体过程包括:在对组成整体系统基本功能的服务组件开放流量后进行检测,检测到异常,则关闭流量,再次进行人工检测,此时若异常依然存在且无法排除,则回滚到部署前状态,并且对建立的所有分类安装包进行检查;在外部组件业务逐个打开流量时,每开放一个外部组件业务就对该外部组件业务进行检测,没有发生异常再开放下一个外部组件业务;若有异常,则进行人工检测,此时若异常依然存在且无法排除,则回滚到部署该外部组件业务前状态,并对用于部署该外部组件业务的分类安装包进行分析检测。
9、优选的,在自动检测过程中,检测工具带有白名单,在判定异常后,检测工具首先分析是否此类异常是否可忽略,检测工具将忽略本文档来自技高网...
【技术保护点】
1.一种私有部署场景下的流量控制方法,其特征在于,包括建立分类安装包步骤:在建立分类安装包时生成分类安装包之间的依赖关系图;部署前的流量控制步骤:关闭系统流量入口,并通过全局流量探测对关闭流量入口前已经进入系统的流量进行探测,判断这些流量所涉及的业务模块以及处理状况;逐步关闭流量所不涉及的业务模块,从而释放相应的线程数从而加速处理速度,等待已经进入系统的流量处理完毕后,进行分类安装包的部署;
2.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,所述部署分为大版本更新部署和补丁版本更新部署;在大版本更新部署中,已经进入系统的流量处理完毕后需要打开已经关闭的业务模块进行二次复核,确认流量确实处理完毕后再关闭所有业务模块启动部署。
3.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,将私有部署场景中的业务进行划分,将业务划分为组成整体系统基本功能的服务组件业务和带有扩展功能的外部组件业务,以单个业务模块为基础建立分类安装包,手动创建所述分类安装包的依赖关系图,根据分类安装包的依赖关系图规划分类安装包的部署顺序,并预估单个分类安装包
4.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,在流量关闭后进行流量探测步骤具体包括:通过Java中间态流量分析各个工作线程的线程栈,结合NIO网络框架判断部署前的每个服务组件业务模块是否处于工作状态,依次关闭非工作状态的服务组件业务模块,将系统资源赋予工作状态中的服务组件业务模块;同时通过消息队列获取当前未处理的消息数,根据提升后的服务组件业务模块算力预测余下工作所需时间。
5.如权利要求4所述的一种私有部署场景下的流量控制方法,其特征在于,在部署前的流量探测步骤中,还通过分布式事务获取对应业务用到的临时数据库记录条数,判断当前服务组件业务模块是否处于工作状态,一旦发现有中间态流量,说明当前任务尚未完成,等流量处理完毕后再关闭该服务组件业务模块。
6.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,模块在放开过程中进行检测的具体过程包括:在对组成整体系统基本功能的服务组件开放流量后进行检测,检测到异常,则关闭流量,再次进行人工检测,此时若异常依然存在且无法排除,则回滚到部署前状态,并且对建立的所有分类安装包进行检查;在外部组件业务逐个打开流量时,每开放一个外部组件业务就对该外部组件业务进行检测,没有发生异常再开放下一个外部组件业务;若有异常,则进行人工检测,此时若异常依然存在且无法排除,则回滚到部署该外部组件业务前状态,并对用于部署该外部组件业务的分类安装包进行分析检测。
7.如权利要求6所述的一种私有部署场景下的流量控制方法,其特征在于,在自动检测过程中,检测工具带有白名单,在判定异常后,检测工具首先分析是否此类异常是否可忽略,检测工具将忽略可容忍的错误。
8.如权利要求7所述的一种私有部署场景下的流量控制方法,其特征在于,在人工检测环节中,人工判断每个服务的健康状态,发现某个服务的健康状态分析结果存在非常具体的异常,且这种异常对业务本身并没有任何影响时,手动判断该异常可忽略,不必履行报错回滚的流程;当这类异常重复出现时,将其写入检测工具的白名单中。
9.如权利要求7或8所述的一种私有部署场景下的流量控制方法,其特征在于,开始部署后,将原系统的待更新业务模块打包成临时包并放入临时数据库中,所述临时数据库中每个临时包带有基于预估安装时间段形成的时间阈值,在部署过程中临时包中的期待响应时间累计未达到时间阈值时,保持初始的部署顺序;在部署过程中临时包中的期待响应时间累计超过时间阈值时,将主动触发对更新进度的检测,根据检测结果判断继续更新还是中止更新进行回滚;当对应业务模块验证无误的信息达到临时数据库后关闭该临时包的时间阈值计数,直到所有临时包的时间阈值计数均被关闭后,新系统部署完成,此时再获取检测成功信息后,删除临时数据库中的所有临时包。
10.如权利要求9所述的一种私有部署场景下的流量控制方法,其特征在于,在部署过程中,在外部组件业务逐个打开流量时,将进入系统但是对应外部组件业务尚未打开的流量也存放在临时数据库中,并对这些流量对应的外部组件业务进行计数,获得的计数值用于调整各业务模块部署顺序。
...【技术特征摘要】
1.一种私有部署场景下的流量控制方法,其特征在于,包括建立分类安装包步骤:在建立分类安装包时生成分类安装包之间的依赖关系图;部署前的流量控制步骤:关闭系统流量入口,并通过全局流量探测对关闭流量入口前已经进入系统的流量进行探测,判断这些流量所涉及的业务模块以及处理状况;逐步关闭流量所不涉及的业务模块,从而释放相应的线程数从而加速处理速度,等待已经进入系统的流量处理完毕后,进行分类安装包的部署;
2.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,所述部署分为大版本更新部署和补丁版本更新部署;在大版本更新部署中,已经进入系统的流量处理完毕后需要打开已经关闭的业务模块进行二次复核,确认流量确实处理完毕后再关闭所有业务模块启动部署。
3.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,将私有部署场景中的业务进行划分,将业务划分为组成整体系统基本功能的服务组件业务和带有扩展功能的外部组件业务,以单个业务模块为基础建立分类安装包,手动创建所述分类安装包的依赖关系图,根据分类安装包的依赖关系图规划分类安装包的部署顺序,并预估单个分类安装包的部署时间;在判断关闭流量入口后,剩余流量所涉及的业务模块时对处理这些流量的时间进行预估,并据此提出部署的起始时间,结合分类安装包预估的部署时间,最终获取预估安装时间段。
4.如权利要求1所述的一种私有部署场景下的流量控制方法,其特征在于,在流量关闭后进行流量探测步骤具体包括:通过java中间态流量分析各个工作线程的线程栈,结合nio网络框架判断部署前的每个服务组件业务模块是否处于工作状态,依次关闭非工作状态的服务组件业务模块,将系统资源赋予工作状态中的服务组件业务模块;同时通过消息队列获取当前未处理的消息数,根据提升后的服务组件业务模块算力预测余下工作所需时间。
5.如权利要求4所述的一种私有部署场景下的流量控制方法,其特征在于,在部署前的流量探测步骤中,还通过分布式事务获取对应业务用到的临时数据库记录条数,判断当前服务组件业务模块是否处于工作状态,一旦发现有中间态流量,说明当前任务尚未完成,等流量处理完毕后再关闭该服务组件业务模块。
6.如权利要求1所述的一种私有部...
【专利技术属性】
技术研发人员:刘志强,宋骑飞,刘桉齐,
申请(专利权)人:浙江保融科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。