CN110750289A - 一种分布式系统的灰度切换状态保持方法 - Google Patents
一种分布式系统的灰度切换状态保持方法 Download PDFInfo
- Publication number
- CN110750289A CN110750289A CN201911021750.6A CN201911021750A CN110750289A CN 110750289 A CN110750289 A CN 110750289A CN 201911021750 A CN201911021750 A CN 201911021750A CN 110750289 A CN110750289 A CN 110750289A
- Authority
- CN
- China
- Prior art keywords
- cluster
- request
- version
- identifier
- response
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种分布式系统的灰度切换状态保持方法,其包括以下步骤:步骤1,浏览器发起请求前检查是否保存有上次请求保存的集群标识;是则在发起请求时携带该集群标识;否则发起请求时不携带集群标识;步骤2,负载分流装置识别浏览器请求是否携带集群标识;是则将按该集群标识中记载的信息进行分配;否则,根据URL分配至当前映射的版本集群;步骤3,响应节点返回响应信息;步骤4,负载分流装置读取响应信息并在响应头中写入处理该次请求的集群标识后返回给浏览器,步骤5,浏览器接收响应信息并保存集群标识。本发明允许切换后用户保持原在原有版本集群上工作,直至清除状态后再启用新版本,解决了用户在进行请求引流版本切换时会立即丢失先前工作状态的问题。
Description
技术领域
本发明涉及分布式系统技术领域,尤其涉及一种分布式系统的灰度切换状态保持方法。
背景技术
有状态的分布式业务在进行版本切换时,使用原版本的用户会出现状态丢失的情况,导致正在进行工作信息丢失情况。这种切换主要应用于升级场景,虽然做到了切换不停服务但对于使用者的影响还比较大,难以满足要求。
发明内容
本发明的目的在于提供一种分布式系统的灰度切换状态保持方法,以灰度发布版本切换的场景为基础,切换后还允许用户保持原在原有版本集群上工作,直至完成工作后退出登录清除状态后再启用新的版本,解决了用户在进行请求引流版本切换时会立即丢失先前工作状态的问题。
本发明采用的技术方案是:
一种分布式系统的灰度切换状态保持方法,其包括以下步骤:
步骤1,浏览器发起请求前检查浏览器是否保存有上次请求保存的集群标识;是则,在发起请求时携带该集群标识;否则,发起请求时不携带集群标识;
步骤2,负载分流装置在浏览器请求到来时首先识别是否携带集群标识;
是则,将按该集群标识中记载的信息进行分配,而不是发送至当前映射的版本集群进行处理;
否则,根据URL分配至当前映射的版本集群,根据当前映射的版本集群的节点策略分配集群中的响应节点;
步骤3,分配的响应节点处理该请求并返回响应信息;
步骤4,负载分流装置读取响应信息并在响应头中写入处理该次请求的集群标识后,再将响应信息返回给浏览器,
步骤5,浏览器接收响应信息并保存集群标识,等待发起下次请求。
进一步地,用户重新登录或者关闭浏览器后,浏览器删除已保存的集群标识清除标识。
进一步地,集群标识包括处理该次请求的版本集群的集群版本信息标识以及分配的响应节点标识。
进一步地,步骤4中处理该次请求的集群标识的具体步骤如下:
针对未携带集群标识的请求的响应信息,则在响应头中写入当前映射的版本集群的集群版本信息标识以及当前映射的版本集群所分配的处理该请求的响应节点标识;
针对携带集群标识的请求的响应信息,则在响应头中写入该请求所携带的集群标识。
进一步地,步骤4中当在响应头中写入集群标识发生在切换集群版本映射之后,则写入未携带集群标识的请求的响应信息的集群标识和携带集群标识的请求的响应信息的集群标识不相同;
写入未携带集群标识的请求的响应信息的响应头中的为当前映射的版本集群的集群版本信息标识以及当前映射的版本集群所分配的处理该请求的响应节点标识;
写入携带集群标识的请求的响应信息的响应头中的为该请求所携带的集群标识,即版本切换前的版本集群的集群版本信息标识以及该版本集群所分配的处理该请求的响应节点标识。
本发明采用以上技术方案,在原集群内节点保持的策略上首先增加了集群版本状态标识的写入,在请求到来时首先识别是否携带集群版本标识,有携带则分配到集群版本标识所指定的集群,并在返回的响应信息中保持该集群版本标识不变;若未携带则按照切换配置的集群版本映射关系分配集群,并在返回的响应信息中写入当时映射的集群版本标识。本发明引入集群状态保持的概念与实现有效解决了有状态的分布式业务在进行新旧版本升级时的状态丢失问题,同时还具有以下的优点:①调节负载分流装置的逻辑对业务应用无入侵,无需业务应用做任务修改;②通过实现的切换版本集群状态保持的能力,使得版本切换有较高的针对性,需要新版本的用户可以快速获得,不相关用户不受影响;③实现切换过程使用者无感,特别适用于迁移新上线的项目或是采用了快速迭代管理模式的项目。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为本发明一种分布式系统的灰度切换状态保持方法的流程示意图;
图2为现有请求协议头标识与本发明请求协议头标识的对比示意图;
图3为本发明切换状态前后的业务流程示意图。
具体实施方式
如图1-3之一所示,本发明公开了一种分布式系统的灰度切换状态保持方法,其包括以下步骤:
步骤1,浏览器发起请求前检查浏览器是否保存有上次请求保存的集群标识;是则,在发起请求时携带该集群标识;否则,发起请求时不携带集群标识;
步骤2,负载分流装置在浏览器请求到来时首先识别是否携带集群标识;
是则,将按该集群标识中记载的信息进行分配,而不是发送至当前映射的版本集群进行处理;
否则,根据URL分配至当前映射的版本集群,根据当前映射的版本集群的节点策略分配集群中的响应节点;
步骤3,分配的响应节点处理该请求并返回响应信息;
步骤4,负载分流装置读取响应信息并在响应头中写入处理该次请求的集群标识后,再将响应信息返回给浏览器,
步骤5,浏览器接收响应信息并保存集群标识,等待发起下次请求。
进一步地,用户重新登录或者关闭浏览器后,浏览器删除已保存的集群标识清除标识。
进一步地,集群标识包括处理该次请求的版本集群的集群版本信息标识以及分配的响应节点标识。
进一步地,步骤4中处理该次请求的集群标识的具体步骤如下:
针对未携带集群标识的请求的响应信息,则在响应头中写入当前映射的版本集群的集群版本信息标识以及当前映射的版本集群所分配的处理该请求的响应节点标识;
针对携带集群标识的请求的响应信息,则在响应头中写入该请求所携带的集群标识。
进一步地,步骤4中当在响应头中写入集群标识发生在切换集群版本映射之后,则写入未携带集群标识的请求的响应信息的集群标识和携带集群标识的请求的响应信息的集群标识不相同;
写入未携带集群标识的请求的响应信息的响应头中的为当前映射的版本集群的集群版本信息标识以及当前映射的版本集群所分配的处理该请求的响应节点标识;
写入携带集群标识的请求的响应信息的响应头中的为该请求所携带的集群标识,即版本切换前的版本集群的集群版本信息标识以及该版本集群所分配的处理该请求的响应节点标识。
下面就本发明的具体的工作原理做详细说明:
如图2所示,本发明通过控制负载分流装置的分流逻辑来实现,在原集群内节点保持的策略上首先增加了集群版本状态标识的写入,通过传输协议与浏览器的标识携带与传递能力来实现集群版本层面的请求状态保持。
本发明的负载分流装置在请求到来时首先识别是否携带集群版本标识,有携带则分配到集群版本标识所指定的集群,并在返回的响应信息中保持该集群版本标识不变;若未携带则按照切换配置的集群版本映射关系分配集群,并在返回的响应信息中写入当时映射的集群版本标识。
具体地,如图3所示,切换状态前后的业务流程如下:
①用户浏览器首次发起请求,不携带任何标识,负载分流装置根据URL分配集群,根本对应集群的节点策略分配集群中的响应节点;控制装置读取目标节点的响应信息并在响应头中写入所分配的集群版本信息标识同时写入分配的节点标识并将响应返回给浏览器,同时浏览器保存返回的标识;浏览器发起后续请求,请求都携带之前返回的标识。
②切换集群版本映射;
③浏览器发起后续请求,请求携带之前返回的标识。负载分流装置识别URL分配集群,控制装置识别出集群版本标识,直接指定首次请求时指定的版本集群而不使用映射所指向的集群。后续流程与1相同。负载分流装置识别出集群版本标识直接指定首次请求时指定的版本集群而不使用映射所指向的集群,并向响应中写入所分配的集群版本状态);
④用户重新登录清除标识后或浏览器关闭重开;
⑤浏览器发起访问流程,由于清除了标识其与首次请求类似,只是此时集群映射的版本已被切换,所以访问新集群,原有节点标识失效重新分配并保存;至此上面所述流程实现了集群版本切换过程中状态保持功能。
本发明引入集群状态保持的概念与实现有效解决了有状态的分布式业务在进行新旧版本升级时的状态丢失问题,同时还具有以下的优点:①调节负载分流装置的逻辑对业务应用无入侵,无需业务应用做任务修改;②通过实现的切换版本集群状态保持的能力,使得版本切换有较高的针对性,需要新版本的用户可以快速获得,不相关用户不受影响;③实现切换过程使用者无感,特别适用于迁移新上线的项目或是采用了快速迭代管理模式的项目。
Claims (5)
1.一种分布式系统的灰度切换状态保持方法,其特征在于:其包括以下步骤:
步骤1,浏览器发起请求前检查浏览器是否保存有上次请求保存的集群标识;是则,在发起请求时携带该集群标识;否则,发起请求时不携带集群标识;
步骤2,负载分流装置在浏览器请求到来时首先识别是否携带集群标识;
是则,将按该集群标识中记载的信息进行分配,而不是发送至当前映射的版本集群进行处理;
否则,根据URL分配至当前映射的版本集群,根据当前映射的版本集群的节点策略分配集群中的响应节点;
步骤3,分配的响应节点处理该请求并返回响应信息;
步骤4,负载分流装置读取响应信息并在响应头中写入处理该次请求的集群标识后,再将响应信息返回给浏览器,
步骤5,浏览器接收响应信息并保存集群标识,等待发起下次请求。
2.根据权利要求1所述的一种分布式系统的灰度切换状态保持方法,其特征在于:用户重新登录或者关闭浏览器后,浏览器删除已保存的集群标识清除标识。
3.根据权利要求1所述的一种分布式系统的灰度切换状态保持方法,其特征在于:集群标识包括处理该次请求的版本集群的集群版本信息标识以及分配的响应节点标识。
4.根据权利要求1所述的一种分布式系统的灰度切换状态保持方法,其特征在于:步骤4中处理该次请求的集群标识的具体步骤如下:
针对未携带集群标识的请求的响应信息,则在响应头中写入当前映射的版本集群的集群版本信息标识以及当前映射的版本集群所分配的处理该请求的响应节点标识;
针对携带集群标识的请求的响应信息,则在响应头中写入该请求所携带的集群标识。
5.根据权利要求4所述的一种分布式系统的灰度切换状态保持方法,其特征在于:步骤4中当在响应头中写入集群标识发生在切换集群版本映射之后,则写入未携带集群标识的请求的响应信息的集群标识和携带集群标识的请求的响应信息的集群标识不相同;
写入未携带集群标识的请求的响应信息的响应头中的为当前映射的版本集群的集群版本信息标识以及当前映射的版本集群所分配的处理该请求的响应节点标识;
写入携带集群标识的请求的响应信息的响应头中的为该请求所携带的集群标识,即版本切换前的版本集群的集群版本信息标识以及该版本集群所分配的处理该请求的响应节点标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911021750.6A CN110750289B (zh) | 2019-10-25 | 2019-10-25 | 一种分布式系统的灰度切换状态保持方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911021750.6A CN110750289B (zh) | 2019-10-25 | 2019-10-25 | 一种分布式系统的灰度切换状态保持方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750289A true CN110750289A (zh) | 2020-02-04 |
CN110750289B CN110750289B (zh) | 2022-05-31 |
Family
ID=69279915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911021750.6A Active CN110750289B (zh) | 2019-10-25 | 2019-10-25 | 一种分布式系统的灰度切换状态保持方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750289B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736872A (zh) * | 2020-06-22 | 2020-10-02 | 平安健康保险股份有限公司 | 灰度发布升级方法、装置、计算机系统及可读存储介质 |
CN113296911A (zh) * | 2021-05-24 | 2021-08-24 | 北京京东振世信息技术有限公司 | 集群调用方法、集群调用装置、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379273A1 (en) * | 2011-05-31 | 2015-12-31 | Hewlett-Packard Development Company, L.P. | Application security testing |
CN106657259A (zh) * | 2016-10-28 | 2017-05-10 | 努比亚技术有限公司 | 一种用于服务器集群的路由服务器及路由服务方法 |
CN106789362A (zh) * | 2017-02-20 | 2017-05-31 | 京信通信技术(广州)有限公司 | 一种设备管理方法及网管系统 |
CN110311989A (zh) * | 2019-08-02 | 2019-10-08 | 中国工商银行股份有限公司 | 一种灰度发布方法、装置、存储介质、设备及系统 |
-
2019
- 2019-10-25 CN CN201911021750.6A patent/CN110750289B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379273A1 (en) * | 2011-05-31 | 2015-12-31 | Hewlett-Packard Development Company, L.P. | Application security testing |
CN106657259A (zh) * | 2016-10-28 | 2017-05-10 | 努比亚技术有限公司 | 一种用于服务器集群的路由服务器及路由服务方法 |
CN106789362A (zh) * | 2017-02-20 | 2017-05-31 | 京信通信技术(广州)有限公司 | 一种设备管理方法及网管系统 |
CN110311989A (zh) * | 2019-08-02 | 2019-10-08 | 中国工商银行股份有限公司 | 一种灰度发布方法、装置、存储介质、设备及系统 |
Non-Patent Citations (1)
Title |
---|
李晓毅: "电子银行系统灰度发布的研究与实现", 《金融电子化》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736872A (zh) * | 2020-06-22 | 2020-10-02 | 平安健康保险股份有限公司 | 灰度发布升级方法、装置、计算机系统及可读存储介质 |
CN111736872B (zh) * | 2020-06-22 | 2023-07-14 | 平安健康保险股份有限公司 | 灰度发布升级方法、装置、计算机系统及可读存储介质 |
CN113296911A (zh) * | 2021-05-24 | 2021-08-24 | 北京京东振世信息技术有限公司 | 集群调用方法、集群调用装置、电子设备及可读存储介质 |
CN113296911B (zh) * | 2021-05-24 | 2023-09-22 | 北京京东振世信息技术有限公司 | 集群调用方法、集群调用装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110750289B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3151515B1 (en) | Data storage method, sdn controller and distributed network storage system | |
CN103176790B (zh) | 应用发布方法和系统 | |
EP2733617A1 (en) | Data buffer device, data storage system and method | |
CN103164202B (zh) | 一种灰度发布方法和装置 | |
JP2009501496A5 (zh) | ||
US8914501B2 (en) | Method, apparatus, and system for scheduling distributed buffer resources | |
CN110750289B (zh) | 一种分布式系统的灰度切换状态保持方法 | |
WO2009007251A4 (en) | File system mounting in a clustered file system | |
CN102263822B (zh) | 一种分布式缓存的控制方法、系统及装置 | |
US20050021562A1 (en) | Management server for assigning storage areas to server, storage apparatus system and program | |
CN102664950B (zh) | 一种焊接电源与计算机之间进行数据通信的方法 | |
US20120163394A1 (en) | Route Switching Device and Data Cashing Method Thereof | |
CN102779132A (zh) | 数据更新方法、系统及数据库服务器 | |
CN105224255A (zh) | 一种存储文件管理方法及装置 | |
CN109428780B (zh) | 一种流量监测的调度方法、装置、服务器及存储介质 | |
CN105512279A (zh) | 一种元数据访问方法、相关设备及系统 | |
CN109889456B (zh) | 一种数据传输方法、装置、设备、系统和存储介质 | |
US20070106774A1 (en) | Computer system controlling bandwidth according to priority state | |
CN1980236A (zh) | 分布式数据动态程序代理方法 | |
CN101102176A (zh) | 一种数据备份方法 | |
CN106815250A (zh) | 一种发送数据的方法、数据服务器以及服务器 | |
WO2012029280A1 (ja) | ディスク管理方法、ディスク管理システム、ディスク管理装置、メモリ装置 | |
CN104883381A (zh) | 分布式存储的数据存取方法及系统 | |
CN113590507B (zh) | 一种分布式存储系统及其缓存层、数据访问方法、设备 | |
JP7006882B2 (ja) | 端末装置、通信制御システム及びプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230314 Address after: 350000 12, 89 Avenue, Wufeng street, Gulou District, Fuzhou, Fujian. Patentee after: CHINATELECOM FUFU INFORMATION TECHNOLOGY Co.,Ltd. Patentee after: Tianyiyun Technology Co.,Ltd. Address before: 350000 12, 89 Avenue, Wufeng street, Gulou District, Fuzhou, Fujian. Patentee before: CHINATELECOM FUFU INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |