CN107220375B - 数据读写方法和服务器 - Google Patents
数据读写方法和服务器 Download PDFInfo
- Publication number
- CN107220375B CN107220375B CN201710470026.6A CN201710470026A CN107220375B CN 107220375 B CN107220375 B CN 107220375B CN 201710470026 A CN201710470026 A CN 201710470026A CN 107220375 B CN107220375 B CN 107220375B
- Authority
- CN
- China
- Prior art keywords
- memory database
- instance
- service
- operating environment
- data processing
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000009826 distribution Methods 0.000 claims abstract description 66
- 230000005012 migration Effects 0.000 claims abstract description 19
- 238000013508 migration Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/22—Indexing; Data structures therefor; Storage structures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据读写方法和服务器。该方法的一具体实施方式包括:代理服务器接收业务运行在的业务服务器发送的数据处理请求;基于业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例,以及利用确定出的内存数据库实例处理数据处理请求,其中,实例分布信息指示内存数据库集群中的内存数据库实例在原始运行环境和目标运行环境下的分布。实现了业务对应的任意一个内存数据库集群在不同的运行环境下的迁移均不会影响业务以及业务在不同的运行环境下的迁移均可以在无需对业务进行调整的情况下访问内存数据库集群,降低迁移成本。
Description
技术领域
本申请涉及计算机领域,具体涉及存储领域,尤其涉及数据读写方法和服务器。
背景技术
内存数据库集群被广泛应用于分布式存储系统中。在分布式存储系统中,业务和内存数据库集群在不同运行环境之间的迁移是常见的需求。目前,由于业务与内存数据库集群的对应关系预先绑定,导致业务或内存数据库集群的迁移均需对业务进行调整,才能访问内存数据库集群,导致迁移成本高。
发明内容
本申请提供了数据读写方法和服务器,用于解决上述背景技术部分存在的技术问题。
本申请实施例公开A1、一种数据读写方法,所述方法包括:代理服务器接收业务运行在的业务服务器发送的数据处理请求,所述数据处理请求包括以下之一:写入请求、读取请求;基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例,以及利用确定出的内存数据库实例处理所述数据处理请求,其中,实例分布信息指示内存数据库集群中的内存数据库实例在原始运行环境和目标运行环境下的分布。
A2、如A1所述的方法中,在业务对应的内存数据库集群由原始运行环境迁移至目标运行环境之前,所述业务对应的内存数据库集群的实例在原始运行环境和目标运行环境下的分布包括:内存数据库集群中的内存数据库主实例和至少一个内存数据库从实例位于原始运行环境下,所述内存数据库集群中除所述内存数据库主实例和至少一个内存数据库从实例之外的内存数据库从实例位于目标运行环境下。
A3、如A2所述的方法中,业务对应的内存数据库集群未从原始运行环境迁移至目标运行环境;以及基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例包括:当所述数据处理请求为写入请求时,将原始运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例;当所述数据处理请求为读取请求时,将原始运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
A4、如A3所述的方法中,所述方法还包括:响应于业务对应的内存数据库集群由原始运行环境迁移至目标运行环境,基于迁移之后的所述业务对应的内存数据库集群中的内存数据库实例的分布,更新实例分布信息,迁移之后的所述业务对应的内存数据库集群中的内存数据库实例的分布包括:内存数据库集群中的内存数据库主实例和至少一个内存数据库从实例位于目标运行环境下,所述内存数据库集群中除所述内存数据库主实例和至少一个内存数据库从实例之外的内存数据库从实例位于原始运行环境下。
A5、如A4所述的方法中,所述业务未从原始运行环境下迁移至目标运行环境,业务对应的内存数据库集群由原始运行环境迁移至目标运行环境,以及基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例包括:当所述数据处理请求为写入请求时,将目标运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例;当所述数据处理请求为读取请求时,将原始运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
A6、如A4所述的方法中,所述业务从原始运行环境下迁移至目标运行环境,业务对应的内存数据库集群由原始运行环境迁移至目标运行环境;以及基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例包括:当所述数据处理请求为写入请求时,将目标运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例;当所述数据处理请求为读取请求时,将目标运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
A7、如A1至A6中任一所述的方法中,业务对应的内存数据库集群为Redis数据库集群。
本申请实施例公开B1、一种代理服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如A1至A7中任一所述的方法。
本申请实施例公开C1、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如A1至A7中任一所述的方法。
本申请实施例公开D1、一种数据读写方法,所述方法包括:业务服务器生成数据处理请求,所述数据处理请求包括以下之一:写入请求、读取请求;基于所述业务服务器所在的运行环境下的配置文件,确定代理服务器,以及将所述数据处理请求发送至确定出的代理服务器,其中,配置文件存储所述运行环境下的代理服务器的分布。
D2、如D1所述的方法中,运行环境包括:原始运行环境、运行在原始运行环境下的业务服务器上的业务待迁移到的目标运行环境。
D3、如D2所述的方法中,所述配置文件包括:所述运行环境下的每一个机房中的代理服务器;以及基于所述业务服务器所在的运行环境下的配置文件,确定代理服务器包括:将所述运行环境下的与业务服务器处于同一机房的代理服务器作为确定出的代理服务器。
本申请实施例公开E1、一种业务服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如D1至D3中任一所述的方法。
本申请实施例公开F1、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如D1至D3中任一所述的方法。
本申请提供的数据读写方法和服务器,通过代理服务器接收业务运行在的业务服务器发送的数据处理请求,数据处理请求包括以下之一:写入请求、读取请求;基于业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例,以及利用确定出的内存数据库实例处理数据处理请求,其中,实例分布信息指示内存数据库集群中的内存数据库实例在原始运行环境和目标运行环境下的分布。实现了业务对应的任意一个内存数据库集群在不同的运行环境下的迁移均不会影响业务以及业务在不同的运行环境下的迁移均可以在无需对业务进行调整的情况下访问内存数据库集群,降低迁移成本。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了根据本申请的数据读写方法的一个实施例的流程图;
图2示出了根据本申请的数据读写方法的另一个实施例的流程图;
图3示出了处理数据处理请求的一个示例性原理图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了根据本申请的数据读写方法的一个实施例的流程。本实施例所提供的数据读写方法可由代理服务器执行。该方法包括以下步骤:
步骤101,代理服务器接收业务运行在的业务服务器发送的数据处理请求。
在本实施例中,业务可以为提供线上服务的程序,例如,搜索业务为提供在线搜索服务的程序。业务运行在的服务器可以称之为业务服务器。当业务需要将业务数据写入内存数据库集群或从内存数据库集群读取数据时,可以接收到业务运行在的业务服务器发送的数据处理请求。数据处理请求包括以下之一:写入请求、读取请求。
在本实施例的一些可选的实现方式中,业务对应的内存数据库集群为Redis数据库集群。当业务需要将业务数据写入Redis数据库集群或从Redis数据库集群读取数据时,可以接收到业务运行在的业务服务器发送的数据处理请求。
步骤102,基于实例分布信息,确定用于处理数据处理请求的内存数据库实例,以及利用确定出的内存数据库实例处理数据处理请求。
在本实施例中,实例分布信息指示内存数据库集群中的内存数据库实例的分布。业务对应的内存数据库集群可以为存储业务的业务数据的内存数据库集群。内存数据库实例可以是指运行内存数据库的服务器。内存数据库实例包括:用于处理数据写入请求的内存数据库主实例、用于处理数据读取请求的内存数据库从实例。内存数据库集群可以包含一个内存数据库主实例,多个内存数据库从实例,多个数据库实例保持数据同步。
在本实施例中,可以预先创建一个数据结构存储所有内存数据库集群的实例分布信息。在通过步骤101接收业务运行在的业务服务器发送的数据处理请求之后,可以从该数据结构中查找出业务对应的内存数据库集群的实例分布信息。根据业务对应的内存数据库集群的实例分布信息,确定出用于处理数据处理请求的内存数据库集群中的内存数据库实例,将数据处理请求发送至确定出的内存数据库实例进行处理。
以业务对应的内存数据库集群为Redis数据库集群为例,Redis数据库实例可以是指运行Redis数据库集群中的Redis数据库的Redis服务器。一个Redis数据库集群可以包含一个用于处理数据写入请求的Redis数据库主实例和多个用于处理数据读取请求的Redis数据库从实例,每一个Redis数据库实例保持数据同步。
在本实施例中,内存数据库集群的内存数据库主实例和内存数据库从实例可以分布在原始运行环境和目标运行环境。运行环境可以是指业务所运行在的环境,例如,公有云环境。目标运行环境为业务或内存数据库集群待迁移到的运行环境。内存数据库集群由原始运行环境迁移到公有云环境可以是指将目标运行环境下的内存数据库集群的一个内存数据库从实例作为内存数据库主实例,将原始运行环境下的内存数据库集群的内存数据库主实例作为内存数据库集群的内存数据库从实例。
在本实施例中,在内存数据库集群由原始运行环境迁移到公有云环境之前,内存数据库集群中的内存数据库实例的分布可以对应一个初始分布,初始分布包括:内存数据库集群中的内存数据库实例中的内存数据库主实例和至少一个内存数据库从实例位于原始运行环境下,内存数据库集群中除内存数据库主实例和至少一个内存数据库从实例之外的内存数据库从实例位于目标运行环境下。相应地,在内存数据库集群由原始运行环境迁移到公有云环境迁移之前,实例分布信息用于指示内存数据库集群中的内存数据库实例的初始分布。当接收到数据处理请求时,可以根据该实例分布信息确定用于处理数据处理请求的内存数据库实例。当接收到的数据处理请求为写入请求时,可以将原始运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例。当接收到的数据处理请求为读取请求时,将原始运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
以业务对应的内存数据库集群为Redis数据库集群,目标运行环境为公有云环境为例,业务对应的Redis数据库集群包含一个用于处理数据写入请求的Redis数据库主实例和多个用于处理数据读取请求的Redis数据库从实例。在Redis数据库集群由原始运行环境迁移到公有云环境之前,Redis数据库集群中的内存数据库实例对应一个初始分布,初始分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于原始运行环境下,Redis数据库集群中的其他Redis数据库从实例位于公有云环境下。当接收到的数据处理请求为写入请求时,可以利用原始运行环境下的Redis数据库主实例处理写入请求。当接收处理请求为读取请求时,可以利用原始运行环境下的Redis数据库从实例处理读取请求。
在本实施例的一些可选的实现方式中,可以响应于业务对应的内存数据库集群由原始运行环境迁移至目标运行环境,基于迁移之后的业务对应的内存数据库集群中的内存数据库实例的分布,更新实例分布信息。迁移之后的业务对应的内存数据库集群中的内存数据库实例的分布包括:内存数据库集群中的内存数据库主实例和至少一个内存数据库从实例位于目标运行环境下,内存数据库集群中除内存数据库主实例和至少一个内存数据库从实例之外的内存数据库从实例位于原始运行环境下。
以业务对应的内存数据库集群为Redis数据库集群,目标运行环境为公有云环境为例,业务对应的Redis数据库集群包含一个用于处理数据写入请求的Redis数据库主实例和多个用于处理数据读取请求的Redis数据库从实例。在运行在原始运行环境的业务迁移到公有云环境之前,Redis数据库集群中的Redis实例的初始分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于公有云环境下,Redis数据库集群中的其他Redis数据库从实例位于原始运行环境下。Redis数据库集群由初始环境迁移到公有云环境之后,迁移之后Redis数据库集群中的Redis实例的分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于公有云环境下,Redis数据库集群中的其他Redis数据库从实例位于原始运行环境下。
在本实施例一些可选的实现方式中,当业务对应的内存数据库集群由原始运行环境迁移至目标运行环境,业务未从原始运行环境下迁移至目标运行环境,例如,业务在原始运行环境下迁移至目标运行环境的过程中时,接收到的数据处理请求为处于原始运行环境下的业务运行在的业务服务器发送的数据处理请求。当接收到的数据处理请求为写入请求时,可以将目标运行环境下的内存数据库主实例作为用于处理数据处理请求的内存数据库实例。当接收到的数据处理请求为读取请求时,可以将原始运行环境下的内存数据库从实例作为用于处理数据处理请求的内存数据库实例。
以业务对应的内存数据库集群为Redis数据库集群,目标运行环境为公有云环境为例,业务对应的Redis数据库集群包含一个用于处理数据写入请求的Redis数据库主实例和多个用于处理数据读取请求的Redis数据库从实例。在Redis数据库集群由原始运行环境迁移到公有云环境之前,Redis数据库集群中的内存数据库实例的初始分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于原始运行环境下,Redis数据库集群中的其他Redis数据库从实例位于公有云环境下。在Redis数据库集群由原始运行环境迁移到公有云环境之后,Redis数据库集群中的Redis实例的分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于公有云环境下,Redis数据库集群中的其他Redis数据库从实例位于原始运行环境下。此时,可以更新实例分布信息,该实例分布信息指示Redis数据库集群由原始运行环境迁移到公有云环境之后的Redis数据库集群Redis数据库实例的分布。可以根据更新后的实例分布信息,确定Redis数据库集群由原始运行环境迁移到公有云环境之后,用于处理数据处理请求的Redis数据库实例。
当业务未从原始运行环境迁移到共有云环境或业务在原始运行环境迁移到共有云环境的过程中时,当接收到的数据处理请求为写入请求时,可以利用公有云环境下的Redis数据库主实例来处理写入请求。当接收到的数据处理请求为读取请求时,可以利用原始运行环境下的Redis数据库从实例来处理读取请求。
在本实施例一些可选的实现方式中,业务从原始运行环境下迁移至目标运行环境,业务对应的内存数据库集群由原始运行环境迁移至目标运行环境。当接收到的数据处理请求为写入请求时,将目标运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例。当接收到的数据处理请求为读取请求时,将原始运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
以业务对应的内存数据库集群为Redis数据库集群,目标运行环境为公有云环境为例,业务对应的Redis数据库集群包含一个用于处理数据写入请求的Redis数据库主实例和多个用于处理数据读取请求的Redis数据库从实例。在Redis数据库集群由原始运行环境迁移到公有云环境之前,Redis数据库集群中的内存数据库实例的初始分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于原始运行环境下,Redis数据库集群中的其他Redis数据库从实例位于公有云环境下。在Redis数据库集群由原始运行环境迁移到公有云环境之后,Redis数据库集群中的Redis实例的分布包括:一个Redis数据库主实例和至少一个Redis数据库从实例位于公有云环境下,Redis数据库集群中的其他Redis数据库从实例位于原始运行环境下。此时,可以更新实例分布信息,该实例分布信息指示Redis数据库集群由原始运行环境迁移到公有云环境之后的Redis数据库集群Redis数据库实例的分布。可以根据更新后的分布信息,确定Redis数据库集群由原始运行环境迁移到公有云环境之后,用于处理数据处理请求的Redis数据库实例。
当业务未从原始运行环境迁移到共有云环境或业务在原始运行环境迁移到共有云环境的过程中时,当接收到的数据处理请求为写入请求时,可以利用公有云环境下的Redis数据库主实例来处理写入请求。当接收到的数据处理请求为读取请求时,可以利用公有云环境下的Redis数据库从实例来处理读取请求。
请参考图2,其示出了根据本申请的数据读写方法的另一个实施例的流程。本实施例所提供的数据读写方法可由业务服务器执行。该方法包括以下步骤:
步骤201,业务服务器生成数据处理请求。
在本实施例中,当业务运行在的业务服务器接收到输入的数据处理指令时,可以生成数据处理请求。数据处理请求包括以下之一:写入请求、读取请求。
例如,运行在原始运行环境下的业务服务器上的业务需要向存储业务的业务数据的内存数据库集群写入数据时,原始运行环境下的业务服务器可以生成写入请求。当运行在原始运行环境下的业务服务器上的业务需要从存储业务的业务数据的内存数据库集群读取数据时,原始运行环境下的业务服务器可以生成读取请求。
又例如,业务由原始运行环境迁移至目前运行环境公有云环境,运行在公有云环境下的业务服务器上业务需要向存储业务的业务数据的内存数据库集群写入数据时,公有云环境下的业务运行在的业务服务器可以生成写入请求。当运行在公有云环境下的业务服务器上业务需要从存储业务的业务数据的内存数据库集群读取数据时,公有云环境下的业务运行在的业务服务器可以生成读取请求。
步骤202,基于业务服务器所在的运行环境下的配置文件,确定代理服务器,以及将数据处理请求发送至确定出的代理服务器。
在本实施例中,业务可以运行在多个运行环境下,相应地,每一个运行环境下具有运行业务的业务服务器。每一个运行环境下具有一个配置文件,该配置文件存储该运行环境下的代理服务器的分布。
例如,运行在原始运行环境下的业务服务器生成数据处理请求时,可以从配置文件中查找出原始运行环境下与业务服务器在同一机房的代理服务器,将数据处理请求发送至该代理服务器。
又例如,运行在公有云环境下的业务服务器生成数据处理请求时,可以查找公有云环境下的配置文件,查找出公有云环境下与业务服务器在同一机房的代理服务器,将数据处理请求发送至该代理服务器。
代理服务器在接收到数据处理请求之后,可以在存储所有内存数据库集群的内存数据库实例分布的数据结构中查找出指示存储该业务的业务数据的内存数据库实例在原始运行环境和目标运行环境下的分布的实例分布信息,根据实例分布信息,确定用于处理数据处理请求的内存数据库实例来处理数据处理请求。
请参考图3,其示出了处理数据处理请求的一个示例性原理图。
在图3中,示出了分别运行原始运行环境下、目标运行环境即公有云环境下的业务A和存储业务A的业务数据的Redis数据库集群由原始运行环境迁移到公有云环境之后,Redis数据库集群的8个Redis数据库实例的分布,Redis集群的Redis主实例和3个Redis从实例在公有云环境下,其他的4个Redis的Redis从实例在原始运行环境环境下。
场景一:公有云环境下运行的业务A通过公有云环境下的配置文件查找到公有云环境下的代理服务器proxyB,proxyB通过存储所有Redis集群的Redis实例分布的数据结构中查找出公有云环境下具有Redis集群的Redis主实例和Redis从实例。公有云环境下运行的业务A通过proxyB连接公有云环境下的Redis集群的Redis主实例处理数据写入请求,通过proxyB连接公有云环境下的Redis集群的Redis从实例处理数据读取请求。
场景二:原始运行环境下的业务A通过原始运行环境下的配置文件查找到原始运行环境下的代理服务器proxyA,proxyA通过存储所有Redis集群的Redis实例分布的数据结构中查找出Redis集群的Redis主实例和3个Redis从实例在公有云环境下,其他的4个Redis集群的从实例在原始运行环境环境下。原始运行环境环境下的业务A通过proxyA连接公有云环境下的Redis集群的Redis主实例处理数据写入请求,通过proxyA连接原始运行环境下的Redis集群的Redis从实例处理数据读取请求。
本申请还提供了一种代理服务器,该代理服务器可以配置有一个或多个处理器;存储器,用于存储一个或多个程序,一个或多个程序中可以包含用以执行上述步骤101-102中描述的操作的指令。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述步骤101-102中描述的操作。
本申请还提供了一种业务服务器,该业务服务器可以配置有一个或多个处理器;存储器,用于存储一个或多个程序,一个或多个程序中可以包含用以执行上述步骤201-202中描述的操作的指令。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述步骤201-202中描述的操作。
本申请还提供了一种非易失性计算机可读介质,该计算机可读介质可以是代理服务器中所包括的;也可以是单独存在,未装配入代理服务器中。该非易失性计算机可读介质承载有一个或者多个程序,当一个或者多个程序被该服务器执行时,使得该代理服务器:接收业务运行在的业务服务器发送的数据处理请求,数据处理请求包括以下之一:写入请求、读取请求;基于业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例,以及利用确定出的内存数据库实例处理数据处理请求,其中,实例分布信息指示内存数据库集群中的内存数据库实例在原始运行环境和目标运行环境下的分布。
本申请还提供了一种非易失性计算机可读介质,该非易失性计算机可读介质可以是业务服务器中所包括的;也可以是单独存在,未装配入业务服务器中。该非易失性计算机可读介质承载有一个或者多个程序,当一个或者多个程序被业务服务器执行时,使得该业务服务器:生成数据处理请求,数据处理请求包括以下之一:写入请求、读取请求;基于业务所在的运行环境下的配置文件,确定代理服务器,以及将数据处理请求发送至确定出的代理服务器,其中,配置文件存储运行环境下的代理服务器的分布。
需要说明的是,上述非易失性计算机可读介质可以是计算机可读信号介质或者非易失性计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非易失性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,非易失性计算机可读存储介质可以是任何包括或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以为多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是非易失性计算机可读存储介质以外的任何非易失性计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包括的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种数据读写方法,其特征在于,所述方法包括:
代理服务器接收业务运行在的业务服务器发送的数据处理请求,所述数据处理请求包括以下之一:写入请求、读取请求;
基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例,以及利用确定出的内存数据库实例处理所述数据处理请求,其中,实例分布信息指示内存数据库集群中的内存数据库实例在原始运行环境和目标运行环境下的分布,目标运行环境为内存数据库集群待迁移到的运行环境;
其中,内存数据库集群由原始运行环境迁移到目标运行环境包括:将目标运行环境下的内存数据库集群的一个内存数据库从实例设为内存数据库主实例,将原始运行环境下的内存数据库集群的内存数据库主实例设为内存数据库集群的内存数据库从实例。
2.根据权利要求1所述的方法,其特征在于,在业务对应的内存数据库集群由原始运行环境迁移至目标运行环境之前,所述业务对应的内存数据库集群的实例在原始运行环境和目标运行环境下的分布包括:内存数据库集群中的内存数据库主实例和至少一个内存数据库从实例位于原始运行环境下,所述内存数据库集群中除所述内存数据库主实例和至少一个内存数据库从实例之外的内存数据库从实例位于目标运行环境下。
3.根据权利要求2所述的方法,其特征在于,业务对应的内存数据库集群未从原始运行环境迁移至目标运行环境;以及
基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例包括:
当所述数据处理请求为写入请求时,将原始运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例;
当所述数据处理请求为读取请求时,将原始运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于业务对应的内存数据库集群由原始运行环境迁移至目标运行环境,基于迁移之后的所述业务对应的内存数据库集群中的内存数据库实例的分布,更新实例分布信息,迁移之后的所述业务对应的内存数据库集群中的内存数据库实例的分布包括:内存数据库集群中的内存数据库主实例和至少一个内存数据库从实例位于目标运行环境下,所述内存数据库集群中除所述内存数据库主实例和至少一个内存数据库从实例之外的内存数据库从实例位于原始运行环境下。
5.根据权利要求4所述的方法,其特征在于,所述业务未从原始运行环境下迁移至目标运行环境,业务对应的内存数据库集群由原始运行环境迁移至目标运行环境,以及
基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例包括:
当所述数据处理请求为写入请求时,将目标运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例;
当所述数据处理请求为读取请求时,将原始运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
6.根据权利要求4所述的方法,其特征在于,所述业务从原始运行环境下迁移至目标运行环境,业务对应的内存数据库集群由原始运行环境迁移至目标运行环境;以及
基于所述业务对应的内存数据库集群的实例分布信息,确定用于处理数据处理请求的内存数据库实例包括:
当所述数据处理请求为写入请求时,将目标运行环境下的内存数据库主实例确定为用于处理数据处理请求的内存数据库实例;
当所述数据处理请求为读取请求时,将目标运行环境下的内存数据库从实例确定为用于处理数据处理请求的内存数据库实例。
7.根据权利要求1-6之一所述的方法,其特征在于,业务对应的内存数据库集群为Redis数据库集群。
8.一种数据读写方法,其特征在于,所述方法包括:
业务服务器生成数据处理请求,所述数据处理请求包括以下之一:写入请求、读取请求;
基于所述业务服务器所在的运行环境下的配置文件,确定代理服务器,以及将所述数据处理请求发送至确定出的代理服务器,其中,配置文件存储所述运行环境下的代理服务器的分布;
其中,运行环境包括:原始运行环境、运行在原始运行环境下的业务服务器上的业务待迁移到的目标运行环境;
内存数据库集群由原始运行环境迁移到目标运行环境包括:将目标运行环境下的内存数据库集群的一个内存数据库从实例设为内存数据库主实例,将原始运行环境下的内存数据库集群的内存数据库主实例设为内存数据库集群的内存数据库从实例。
9.根据权利要求8所述的方法,其特征在于,所述配置文件包括:所述运行环境下的每一个机房中的代理服务器;以及
基于所述业务服务器所在的运行环境下的配置文件,确定代理服务器包括:
将所述运行环境下的与业务服务器处于同一机房的代理服务器作为确定出的代理服务器。
10.一种代理服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
11.一种业务服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求8-9中任一所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求8-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710470026.6A CN107220375B (zh) | 2017-06-20 | 2017-06-20 | 数据读写方法和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710470026.6A CN107220375B (zh) | 2017-06-20 | 2017-06-20 | 数据读写方法和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107220375A CN107220375A (zh) | 2017-09-29 |
CN107220375B true CN107220375B (zh) | 2020-02-11 |
Family
ID=59951287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710470026.6A Expired - Fee Related CN107220375B (zh) | 2017-06-20 | 2017-06-20 | 数据读写方法和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107220375B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888666B (zh) * | 2017-10-27 | 2021-02-12 | 北京奇艺世纪科技有限公司 | 一种跨地域数据存储系统以及数据同步方法和装置 |
CN111435942B (zh) * | 2019-01-14 | 2023-04-18 | 北京京东尚科信息技术有限公司 | redis集群访问方法、系统、中间件、介质及设备 |
CN110442636B (zh) * | 2019-08-22 | 2022-04-05 | 迈普通信技术股份有限公司 | 一种数据的读写方法、装置及数据读写设备 |
CN111240737B (zh) * | 2020-01-20 | 2023-05-05 | 杭州海兴电力科技股份有限公司 | 一种基于Redis的动态业务参数的配置方法 |
CN113297265A (zh) * | 2021-02-22 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982085A (zh) * | 2012-10-31 | 2013-03-20 | 北京奇虎科技有限公司 | 数据迁移系统和方法 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及系统 |
CN104866234A (zh) * | 2014-02-21 | 2015-08-26 | 腾讯科技(北京)有限公司 | 数据迁移方法、装置及系统 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
-
2017
- 2017-06-20 CN CN201710470026.6A patent/CN107220375B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982085A (zh) * | 2012-10-31 | 2013-03-20 | 北京奇虎科技有限公司 | 数据迁移系统和方法 |
CN104866234A (zh) * | 2014-02-21 | 2015-08-26 | 腾讯科技(北京)有限公司 | 数据迁移方法、装置及系统 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及系统 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
Also Published As
Publication number | Publication date |
---|---|
CN107220375A (zh) | 2017-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220375B (zh) | 数据读写方法和服务器 | |
CN110019133B (zh) | 数据在线迁移方法和装置 | |
CN110597595B (zh) | 多语言信息的提供方法、配置方法、装置、设备和介质 | |
US9635093B2 (en) | Slave side transaction ID buffering for efficient distributed transaction management | |
CN108629029B (zh) | 一种应用于数据仓库的数据处理方法和装置 | |
CN109492013B (zh) | 应用于数据库集群的数据处理方法、装置和系统 | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
GB2578077A (en) | Multi-tenant data service in distributed file systems for big data analysis | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN109388626B (zh) | 用于向业务分配编号的方法和装置 | |
US11314451B2 (en) | Method and apparatus for storing data | |
CN112882647B (zh) | 存储和访问数据的方法、电子设备和计算机程序产品 | |
CN107480205B (zh) | 一种进行数据分区的方法和装置 | |
CN111061740B (zh) | 一种数据同步方法、设备和存储介质 | |
CN111818145B (zh) | 一种文件传输方法、装置、系统、设备及存储介质 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN110737655B (zh) | 用于上报数据的方法和装置 | |
CN109150927B (zh) | 用于文件存储系统的文件下发方法和装置 | |
US11194629B2 (en) | Handling expiration of resources allocated by a resource manager running a data integration job | |
CN112804366B (zh) | 用于解析域名的方法和装置 | |
CN110941658A (zh) | 一种数据导出方法、装置、服务器及存储介质 | |
CN114356884A (zh) | 数据迁移方法和装置 | |
US10747627B2 (en) | Method and technique of achieving extraordinarily high insert throughput | |
US10162626B2 (en) | Ordered cache tiering for program build files | |
CN113779082B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100085 Beijing, Haidian District on the road to the information on the ground floor of the 1 to the 3 floor of the 2 floor, room 11, 202 Applicant after: Beijing Xingxuan Technology Co.,Ltd. Address before: 100085 Beijing, Haidian District on the road to the information on the ground floor of the 1 to the 3 floor of the 2 floor, room 11, 202 Applicant before: Beijing Xiaodu Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200211 |