CN113722297A - 一种订单系统重构平滑迁移方法 - Google Patents
一种订单系统重构平滑迁移方法 Download PDFInfo
- Publication number
- CN113722297A CN113722297A CN202111075217.5A CN202111075217A CN113722297A CN 113722297 A CN113722297 A CN 113722297A CN 202111075217 A CN202111075217 A CN 202111075217A CN 113722297 A CN113722297 A CN 113722297A
- Authority
- CN
- China
- Prior art keywords
- order
- new
- order system
- original
- reconstructed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 14
- 230000005012 migration Effects 0.000 title claims abstract description 14
- 238000013508 migration Methods 0.000 title claims abstract description 14
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 8
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种订单系统重构平滑迁移方法,所述平滑迁移方法包括:网约车场景下原有订单系统重构,获得重构订单系统;将所述重构订单系统平滑迁移到新服务系统,获得新系统。数据双向同步保证新、原始数据库数据完全一样,灰度方案保证请求到新服务系统、原始订单系统随时可控制。新服务系统请求从小到大平滑增加,期间如果发现重构的新订单系统有任何问题,随时流量切回原始订单系统、降低重构风险。
Description
技术领域
本发明涉及网约车领域,尤其涉及一种订单系统重构平滑迁移方法。
背景技术
随着业务的发展,订单系统数据库数据量越来越大,出现性能瓶颈,而且单库单表无法水平扩展。在不影响原有业务稳定运行同时,订单系统重构,包括对原订单系统接口业务流程改造、数据库分库分表,方便后期水平扩展,并且平滑迁移过渡到新系统。
原有的订单系统服务需要独立为前提,数据库权限需要回收,确保只有本服务系统调用,不能被其它系统影响。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种订单系统重构平滑迁移方法。
根据本发明的一个方面,提供了一种订单系统重构平滑迁移方法,所述平滑迁移方法包括:
网约车场景下原有订单系统重构,获得重构订单系统;
将所述重构订单系统平滑迁移到新服务系统,获得新系统。
可选的,所述网约车场景下原有订单系统重构,获得重构订单系统具体包括:
所述原有订单系统的基本信息包括:表结构和原始订单号规则;
所述表结构包括:表名称、库名称、订单表表结构;
所述原始订单号规则包括:秒级时间+机器编号+自增序列;
所述重构订单的表结构与所述原有订单系统相同;
所述重构订单的订单号规则为新订单标识N+秒级时间+机器编号+
自增序列+表编号;所述表编号=用户ID%分表数量。
可选的,所述重构订单的基本信息还包括:查询场景分析。
可选的,所述将所述重构订单系统平滑迁移到新服务系统,获得新系统具体包括:
创建新订单;
根据订单号更新、取消、查询订单;
根据用户ID查询订单列表;
建立数据双向同步工程。
可选的,所述建立数据双向同步工程具体包括:
新订单向所述原始订单系统同步;
所述原始订单系统向所述新订单系统同步。
本发明提供的一种订单系统重构平滑迁移方法,所述平滑迁移方法包括:网约车场景下原有订单系统重构,获得重构订单系统;将所述重构订单系统平滑迁移到新服务系统,获得新系统。数据双向同步保证新、原始数据库数据完全一样,灰度方案保证请求到新服务系统、原始订单系统随时可控制。新服务系统请求从小到大平滑增加,期间如果发现重构的新订单系统有任何问题,随时流量切回原始订单系统、降低重构风险。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的原有订单系统的架构示意图;
图2为本发明实施例提供的新订单系统的架构示意图;
图3为本发明实施例提供的原有订单系统向新订单系统平滑迁移的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
客户端调服务端接口不变,新订单系统数据库根据用户ID(user_id)作为分片KEY分库,分表。数据汇总到搜索系统。
灰度期间要保证随时能够切回原始。所以需要实现新数据库和原始数据库双向同步,确保底层数据完全一致。
重构前原始订单系统基本信息包括:表结构包括:表名称:order_table;库名称:db。
订单表表结构:
注:表只列举了部分核心字段
订单号 | 用户ID | 用车时间 | 创建时间 |
order_no | user_id | booking_date | create_date |
原始订单号规则:秒级时间(14位)+机器编号(3位)+自增序列(4位)。例如:202108261100000010001。原始订单系统架构图如图1所示。
重构后新订单系统基本情况:表结构:新表结构不变
分表数量:256;分库数量:4;
表名称为:order_table_000~order_table_255;库名称为:db_0~db_3。
订单表表结构注:表只列举了部分核心字段
订单号 | 用户ID | 用车时间 | 创建时间 |
order_no | user_id | booking_date | create_date |
订单号规则:新订单标识N(1位)+秒级时间(14位)+机器编号(3位)+自增序列(4位)+表编号(3位)。例如:N202108261100000010001255。表编号计算规则:表编号=用户ID%分表数量。
新订单系统架构如图2所示。
查询场景分析:根据order_no查询场景,查询数据库,通过订单号后三位反解出表编号,通过订单号查询直接路由到对应数据库表,例如上面订单号N202108261100000010001255存储在order_table_255表。根据user_id查询,查询数据库,通过user_id%256可以路由到对应数据库表。
非order_no和user_id查询,查询搜索系统。
原始订单系统向新订单系统平滑迁移方法具体如图3所示,具体包括灰度模块。
灰度模块根据接口操作分类,分为如下几种场景1、创建订单,2、根据订单号更新、取消、查询订单,3、根据用户ID查询订单列表。
创建订单,根据用户ID查询列表——按流量灰度,支持白名单(方便测试人员测试),灰度流量按多个阶段从小到大逐步放量。以下以灰度基数1000为例设置灰度比例,X为配置灰度值,Y为随机数(也可以为自增计数)。
则判断方式为:Y%1000<X值为true,则命中新订单系统,否则命中原始订单系统。
阶段 | 阶段1 | 阶段2 | 阶段3 | 阶段4 | 阶段5 | 阶段6 |
X值 | 0 | 1 | 10 | 100 | 500 | 1000 |
流量比例 | 0 | 1‰ | 10‰ | 100‰ | 500‰ | 1000‰ |
根据订单号更新,取消,查询订单——解析订单号区分新订单和原始订单。
订单号前缀为N,则为新订单系统订单,则命中新系统,走新订单系统接口,否则走原始订单系统订单接口。
数据双向同步工程,新订单向老订单系统同步步骤:拦截新订单数据写SQL。
解析:将SQL语句解析出操作(insert,update,delete)、订单号(例如:N202108261100000010001255)、表名(order_table_xxx),参数。
过滤:过滤掉老系统订单,即非N开头订单,防止数据回流。
转换:表名order_table_XXX变为老系统表order_table。
生成:生成老系统订单表对应SQL,最后写入老订单系统数据库。
原始订单系统向新订单系统同步步骤:拦截老订单数据写SQL,解析:将SQL语句解析出操作(insert,update,delete)、订单号(例如:202108261100000010002)、用户ID(若SQL语句里没有,查询订单表获取),表名(order_table),参数。
过滤:过滤掉新系统订单,N开头订单,防止数据回流。
转换:根据表名order_table,用户id按新系统分库分表路由策略,用户ID%256变为新系统对应表order_table_XXX(XXX为用户ID%256取模后结果,不足三位前面补0)。
生成新系统订单表对应SQL,最后写入新订单系统数据库。
有益效果:订单系统重构提升系统性能;数据双向同步保证新、老数据库数据完全一样,灰度方案保证请求到新、老订单系统随时可控制,新订单系统请求从小到大平滑增加,这期间如果发现重构的新订单系统有任何问题,可以随时流量切回老订单系统、从而降低重构风险。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种订单系统重构平滑迁移方法,其特征在于,所述平滑迁移方法包括:
网约车场景下原有订单系统重构,获得重构订单系统;
将所述重构订单系统平滑迁移到新服务系统,获得新系统。
2.根据权利要求1所述的一种订单系统重构平滑迁移方法,其特征在于,所述网约车场景下原有订单系统重构,获得重构订单系统具体包括:
所述原有订单系统的基本信息包括:表结构和原始订单号规则;
所述表结构包括:表名称、库名称、订单表表结构;
所述原始订单号规则包括:秒级时间+机器编号+自增序列;
所述重构订单的表结构与所述原有订单系统相同;
所述重构订单的订单号规则为新订单标识N+秒级时间+机器编号+自增序列+表编号;所述表编号=用户ID%分表数量。
3.根据权利要求2所述的一种订单系统重构平滑迁移方法,其特征在于,所述重构订单的基本信息还包括:查询场景分析。
4.根据权利要求1所述的一种订单系统重构平滑迁移方法,其特征在于,所述将所述重构订单系统平滑迁移到新服务系统,获得新系统具体包括:
创建新订单;
根据订单号更新、取消、查询订单;
根据用户ID查询订单列表;
建立数据双向同步工程。
5.根据权利要求4所述的一种订单系统重构平滑迁移方法,其特征在于,所述建立数据双向同步工程具体包括:
新订单向所述原始订单系统同步;
所述原始订单系统向所述新订单系统同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111075217.5A CN113722297A (zh) | 2021-09-14 | 2021-09-14 | 一种订单系统重构平滑迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111075217.5A CN113722297A (zh) | 2021-09-14 | 2021-09-14 | 一种订单系统重构平滑迁移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113722297A true CN113722297A (zh) | 2021-11-30 |
Family
ID=78683656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111075217.5A Pending CN113722297A (zh) | 2021-09-14 | 2021-09-14 | 一种订单系统重构平滑迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722297A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114445184A (zh) * | 2022-01-27 | 2022-05-06 | 聚好看科技股份有限公司 | 一种订单流量回放方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7492882B1 (en) * | 2004-03-01 | 2009-02-17 | Embarq Holdings Company, Llc | C2P provisioning late-breaking scenarios |
CN107391758A (zh) * | 2017-08-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 数据库切换方法、装置及设备 |
CN108073688A (zh) * | 2017-11-20 | 2018-05-25 | 苏宁云商集团股份有限公司 | 一种数据迁移的方法及装置 |
CN112860670A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 数据迁移方法、装置、电子设备及计算机存储介质 |
CN112925848A (zh) * | 2021-02-23 | 2021-06-08 | 马上消费金融股份有限公司 | 一种数据同步方法、装置、设备及可读存储介质 |
CN113240499A (zh) * | 2021-06-08 | 2021-08-10 | 京东数科海益信息科技有限公司 | 一种基于系统切换的订单处理方法和装置 |
-
2021
- 2021-09-14 CN CN202111075217.5A patent/CN113722297A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7492882B1 (en) * | 2004-03-01 | 2009-02-17 | Embarq Holdings Company, Llc | C2P provisioning late-breaking scenarios |
CN107391758A (zh) * | 2017-08-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 数据库切换方法、装置及设备 |
CN108073688A (zh) * | 2017-11-20 | 2018-05-25 | 苏宁云商集团股份有限公司 | 一种数据迁移的方法及装置 |
CN112925848A (zh) * | 2021-02-23 | 2021-06-08 | 马上消费金融股份有限公司 | 一种数据同步方法、装置、设备及可读存储介质 |
CN112860670A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 数据迁移方法、装置、电子设备及计算机存储介质 |
CN113240499A (zh) * | 2021-06-08 | 2021-08-10 | 京东数科海益信息科技有限公司 | 一种基于系统切换的订单处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
LARRYHAI6: "架构设计参考项目系列主题:日订单量达到100万单后,我们做了订单中心重构", pages 1 - 8, Retrieved from the Internet <URL:https://blog.csdn.net/u011537073/article/details/117526180> * |
浅谈架构: "浅谈订单重构之MySQL分库分表实战篇", pages 1 - 8, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_38130500/article/details/120148195> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114445184A (zh) * | 2022-01-27 | 2022-05-06 | 聚好看科技股份有限公司 | 一种订单流量回放方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101313300B (zh) | 本地搜索 | |
KR101069350B1 (ko) | 클라이언트/서버 환경에서 동기화를 용이하게 하는 방법 및 컴퓨터 판독 가능 기록 매체 | |
CN100454311C (zh) | 基于sql的数据同步方法及装置 | |
US11061924B2 (en) | Multi-region, multi-master replication of database tables | |
CN106033436A (zh) | 一种数据库的合并方法 | |
CN112231285B (zh) | 基于数据资源的知识图谱生成方法及装置 | |
CN108363791A (zh) | 一种数据库的数据同步方法和装置 | |
CN113722297A (zh) | 一种订单系统重构平滑迁移方法 | |
CN111460240B (zh) | 一种跨地域多活微服务架构下翻页数据查询方法及装置 | |
CN111666344A (zh) | 异构数据同步方法及装置 | |
CN109271394A (zh) | 一种基于id缓存的数据批量插入更新实现方法 | |
CN103885950A (zh) | 一种获取缩略词与poi间对应关系的方法和装置 | |
CN100579133C (zh) | 一种产生标识符的方法 | |
CN116756253B (zh) | 关系型数据库的数据存储、查询方法、装置、设备和介质 | |
CN101431429B (zh) | 一种设备中物理实体信息管理方法及设备与设备管理端 | |
CN103902554A (zh) | 数据访问方法与装置 | |
CN105205122A (zh) | 基于数据同步的电信业务检索方法 | |
CN113760907A (zh) | 一种数据库中数据唯一性标识方法 | |
CN118070433B (zh) | 一种基于动态视图的飞机架次有效性管理方法及装置 | |
CN112148739A (zh) | 独立于加密数据库的密文索引方法及系统 | |
CN111767341A (zh) | 一种基于区块链的数据同步方法 | |
CN115203227B (zh) | 基于Web GIS的要素专题图层自动更新方法 | |
CN113377550B (zh) | 用于内容复用的引擎工具、引擎系统及编辑工具 | |
JP4106601B2 (ja) | ディレクトリ情報への更新情報生成システム、更新情報生成プログラム | |
CN115729899A (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 |