CN113495921B - 一种数据库集群的路由方法和装置 - Google Patents
一种数据库集群的路由方法和装置 Download PDFInfo
- Publication number
- CN113495921B CN113495921B CN202010255023.2A CN202010255023A CN113495921B CN 113495921 B CN113495921 B CN 113495921B CN 202010255023 A CN202010255023 A CN 202010255023A CN 113495921 B CN113495921 B CN 113495921B
- Authority
- CN
- China
- Prior art keywords
- target
- database cluster
- database
- role
- service system
- 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.)
- Active
Links
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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库集群的路由方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。该实施方式能够解决浪费服务器资源、维护成本高或者对业务操作侵入性大的技术问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库集群的路由方法和装置。
背景技术
数据分库存储是解决数据库压力切实有效的方法,比如同构分库,也就是数据库集群。然而分库后需要解决数据路由的问题,目前常用的方式有以下两种:
1)每套数据库集群上各自单独部署应用***,在访问***时,会经过一个入口应用将访问请求路由到某个集群的应用上;2)只部署一套应用***,访问***时,强制要求访问请求携带分库主键作为入参,在服务层或数据操作层根据分库主键确定对应的数据库集群。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
第一种方式:过多的浪费服务器资源,成倍地增加维护成本;***上线时,会成倍地增加工作量,应用多则配置信息就多,容易出错;第二种方式:由于每个访问请求都携带分库主键作为入参,所以对业务操作的侵入性较大。
发明内容
有鉴于此,本发明实施例提供一种数据库集群的路由方法和装置,以解决浪费服务器资源、维护成本高或者对业务操作侵入性大的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据库集群的路由方法,包括:
接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;
根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;
根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
可选地,所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系;
根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息,包括:
根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
根据所述目标角色匹配对应的目标数据库集群的标识;
根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
可选地,所述配置信息包括:数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作中的至少一种。
可选地,所述目标角色的数量为至少一个,所述目标角色与所述目标数据库集群一一对应。
可选地,接收数据库访问请求之前,还包括:
根据各个用户所在区域,确定所述各个用户对应的数据库集群;
配置各个数据库集群与各个角色之间的对应关系,并将其存入权限***;
配置各个业务***和各个用户与各个角色之间的对应关系,并将其存入权限***。
可选地,接收数据库访问请求之前,还包括:
从所述权限***获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存。
可选地,根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色,包括:
遍历所述权限***中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。
另外,根据本发明实施例的另一个方面,提供了一种数据库集群的路由装置,包括:
接收模块,用于接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;
匹配模块,用于根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;
路由模块,用于根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
可选地,所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系;
所述匹配模块还用于:
根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
根据所述目标角色匹配对应的目标数据库集群的标识;
根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
可选地,所述配置信息包括:数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作中的至少一种。
可选地,所述目标角色的数量为至少一个,所述目标角色与所述目标数据库集群一一对应。
可选地,还包括配置模块,用于:
接收数据库访问请求之前,根据各个用户所在区域,确定所述各个用户对应的数据库集群;
配置各个数据库集群与各个角色之间的对应关系,并将其存入权限***;
配置各个业务***和各个用户与各个角色之间的对应关系,并将其存入权限***。
可选地,还包括配置模块,用于:
从所述权限***获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存。
可选地,所述匹配模块还用于:
遍历所述权限***中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据目标业务***标识、目标用户标识和配置在权限***中的访问权限信息匹配对应的目标数据库集群的配置信息,从而将数据库访问请求路由至目标数据库集群的技术手段,所以克服了现有技术中浪费服务器资源、维护成本高或者对业务操作侵入性大的技术问题。本发明实施例在路由策略上实现了应用***和数据库集群的解耦,通过在应用***中的权限***配置访问权限信息的方式管理用户的数据库访问权限,从而实现数据库路由。本发明实施例可以使应用***与数据库集群充分解耦,不需要每个业务操作都带有分库主键,也不需要每个数据集群单独部署应用***。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据库集群的路由方法的主要流程的示意图;
图2是根据本发明一个可参考实施例的数据库集群的路由方法的主要流程的示意图;
图3是实现本发明实施例的路由方法的***框架示意图;
图4是根据本发明另一个可参考实施例的数据库集群的路由方法的主要流程的示意图;
图5是根据本发明实施例的数据库集群的路由装置的主要模块的示意图;
图6是本发明实施例可以应用于其中的示例性***架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的数据库集群的路由方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述数据库集群的路由方法可以包括:
步骤101,接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识。
一般的应用***都要经过登录、获取权限之后,才能访问具体功能。登录一般经过的是单点登录校验,校验通过后,从权限***获取用户的功能权限(比如可以使用哪些具体功能)。可选地,步骤101可以包括:接收数据库访问请求;根据所述数据库访问请求中携带的目标业务***标识和目标用户标识,对所述目标用户进行登录校验;若登录通过,则获取所述目标用户对应的功能权限并执行步骤102;若登录失败,则结束。需要指出的是,本发明实施例中的权限***为应用***中的一部分,存储有各个用户访问应用***的功能权限。
步骤102,根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息。
通过步骤101得到目标业务***标识和目标用户标识后,可以通过预先配置在权限***中的访问权限信息匹配出目标数据库集群的配置信息。可选地,所述配置信息包括:数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作中的至少一种。例如,配置信息可以包括如下信息:
jdbc:mysql://192.168.0.1:3358/db1?//MYSQL数据库地址:端口/数据库名称
useUnicode=true;//是否使用Unicode字符集
characterEncoding=utf8;//使用utf8编码
connectTimeout=3000;//和数据库服务器建立socket连接时的超时时间
socketTimeout=15000;//socket操作(读写)超时时间
rewriteBatchedStatements=true;//是否打开批量执行
autoReconnectForPools=true;//是否使用针对数据库连接池的重连策略
failOverReadOnly=false;//自动重连成功后,连接是否设置为只读
roundRobinLoadBalance=true;//开启负载均衡策略
allowMultiQueries=true;//支持多条SQL批量操作
可选地,所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系。可选地,步骤102可以包括:根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;根据所述目标角色匹配对应的目标数据库集群的标识;根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。在本发明的实施例中,首先根据业务***标识和用户标识与角色的对应关系,匹配出目标角色;然后根据角色与数据库集群标识的对应关系,匹配出目标数据库集群的标识;最后根据数据库集群标识与数据库集群的配置信息的对应关系,匹配出目标数据库集群的配置信息。
可选地,所述目标角色的数量为至少一个,所述目标角色与所述目标数据库集群一一对应。在本发明的实施例中,业务***标识和用户标识与角色的对应关系可以是一对一的,也可以是一对多的,因此通过目标业务***标识和所述目标用户标识可以匹配出至少一个目标角色,由于角色与数据库集群为一一对应的关系,那么最终可以根据至少一个目标角色分别匹配出对应的至少一个目标数据库集群。
可选地,在步骤101之前,还包括:根据各个用户所在区域,确定所述各个用户对应的数据库集群;配置各个数据库集群与各个角色之间的对应关系,并将其存入权限***;配置各个业务***和各个用户与各个角色之间的对应关系,并将其存入权限***。本发明实施例将用户访问数据库的权限信息(包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系)配置到权限***,那么通过权限***就可以管理用户访问数据库,从而方便地将数据库访问请求路由到正确的数据库集群。
具体方法如下:
分库后,一个应用***连接多个数据库集群(一个分库即为一个数据库集群),在集群配置文件中的配置方式示例:
db.partition1=数据库集群1的配置信息
db.partition2=数据库集群2的配置信息
db.partition3=数据库集群3的配置信息
……
由于数据库集群的配置信息较多(主要包含数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作等),本发明实施例通过配置数据库集群标识与数据库集群的配置信息之间的对应关系,方便在权限***中配置数据库集群与角色之间的对应关系。
由于每个数据库集群可以被很多用户访问,因此可以将数据库集群的访问权限分配到角色上,并将各个数据库集群与各个角色之间的对应关系配置到权限***中,例如:
RoleA拥有{db.partition1}
RoleB拥有{db.partition2}
RoleC拥有{db.partition3}
需要说明的是,假如一个业务***的业务范围是全世界,而中国对业务站到80%,则一般的分库方式可以按照区域+国家,例如:假设国内分为南部(area1)、北部(area2),再加个国外(area3)三个数据库集群,分别对应数据库集群1、数据库集群2、数据库集群3,那么在南部工作人员只要操作南部业务数据,所以一般只需数据库集群1的访问权限即可;同样北部的只需要数据库集群2的访问权限;国外的用户只需要数据库集群3的访问权限;只有极少数用户比如***管理员才需要全部的数据库集群的访问权限,而这类的用户极少修改数据,一般是查看数据,所以针对这类用户在登陆后,用户需要在应用与发明人确认过界面上进一步选择数据库集群。
所以,南部用户分配RoleA;北部用户分配RoleB;国外用户分配RoleC;管理员同事拥有三个角色(RoleA、RoleB和RoleC)。
可选地,各个业务***和各个用户与各个角色之间的对应关系可以采用key-value方式存储在权限***中。例如:key=业务***ID+用户ID,value=RoleA。
可选地,在步骤101之前,还包括:从所述权限***获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存。由于各个数据库集群与各个角色之间的对应关系占用的存储空间较少,因此可以在步骤101之前从权限***中获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存,那么当下次相同的请求到来时,可以直接从缓存中获取各个数据库集群与各个角色之间的对应关系。
可选地,步骤102可以包括:遍历所述权限***中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。本发明实施例将各个业务***和各个用户与各个角色之间的对应关系配置到权限***,当请求到来时查询出匹配的目标角色,并从权限***获取目标业务***标识和目标用户标识与目标角色的对应关系,将其存储到缓存中,方便下次相同的请求到来时,可以直接从缓存中查询出目标角色,以减轻权限***的访问压力。
步骤103,根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
数据访问层根据步骤102中匹配出的目标数据库集群的配置信息,将数据库访问请求路由到目标数据库集群(即目标分库),以使用户可以访问数据库、操作数据。
根据上面所述的各种实施例,可以看出本发明实施例通过根据目标业务***标识、目标用户标识和配置在权限***中的访问权限信息匹配对应的目标数据库集群的配置信息,从而将数据库访问请求路由至目标数据库集群的技术手段,解决了现有技术中浪费服务器资源、维护成本高或者对业务操作侵入性大的技术问题。本发明实施例在路由策略上实现了应用***和数据库集群的解耦,通过在应用***中的权限***配置访问权限信息的方式管理用户的数据库访问权限,从而实现数据库路由。本发明实施例可以使应用***与数据库集群充分解耦,不需要每个业务操作都带有分库主键,也不需要每个数据集群单独部署应用***。
图2是根据本发明一个可参考实施例的数据库集群的路由方法的主要流程的示意图。作为本发明的又一个实施例,如图2所示,所述数据库集群的路由方法可以包括:
步骤201,根据各个用户所在区域,确定所述各个用户对应的数据库集群。
在该步骤中,根据各个用户所在区域,对数据库进行分库操作,使得不同的用户能够访问对应的数据库集群。比如:配置南部用户访问数据库集群1、北部用户访问数据库集群2,等。开发人员可以根据实际需要进行配置。
步骤202,将访问权限信息配置到权限***中。
其中,所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系。
由于步骤201中确定了各个用户与各个数据库集群之间的对应关系,因此可以在权限***中配置各个数据库集群与各个角色之间的一一的对应关系。即一个角色对应一个数据库集群。例如:RoleA拥有{db.partition1};RoleB拥有{db.partition2};RoleC拥有{db.partition3}。
然后采用key-value方式将各个业务***和各个用户与各个角色之间的对应关系也存储在权限***中,例如:key=业务***ID+用户ID,value=RoleA;key=业务***ID+用户ID,value=RoleA、RoleB。
需要指出的是,由于在步骤101确定了各个用户对应的数据库集群,因此结合业务***就可以配置出对应的角色。
步骤203,从所述权限***获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存。
步骤204,接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识。
步骤205,遍历所述权限***中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色。
步骤206,将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。
步骤207,在缓存中遍历各个数据库集群与各个角色之间的对应关系,根据所述目标角色匹配对应的目标数据库集群的标识。
步骤208,根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
可选地,所述配置信息包括:数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作中的至少一种。
步骤209,根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
另外,在本发明一个可参考实施例中数据库集群的路由方法的具体实施内容,在上面所述数据库集群的路由方法中已经详细说明了,故在此重复内容不再说明。
图3是实现本发明实施例的路由方法的应用***框架示意图。该应用***包括多个数据库集群、应用、权限平台、登录平台和缓存,其中,应用包括web层、服务层和数据访问层。图4是根据本发明另一个可参考实施例的数据库集群的路由方法的主要流程的示意图。作为本发明的又一个实施例,如图4所示,所述数据库集群的路由方法可以包括:
步骤401,web层接收数据库访问请求,解析得到目标业务***标识和目标用户标识。
步骤402,登录平台中配置有校验信息,web层从登录平台获取校验信息,根据目标业务***标识和目标用户标识,对所述目标用户进行登录校验。
步骤403,若登录通过,则web层从权限平台获取所述目标用户对应的功能权限;若登录失败,则退出***。
一般的应用***都要经过登录、获取权限之后,才能访问具体功能。登录一般经过的是单点登录校验,校验通过后,从权限平台获取用户的功能权限(比如可以使用哪些具体功能)。
步骤404,服务层判断缓存中是否有目标业务***标识和目标用户标识对应的目标角色;若否,则执行步骤405;若是,则执行步骤406。
用户登录校验通过后,服务层从缓存获取目标业务***标识和目标用户标识对应的目标角色,例如:key=***ID+用户ID,value=RoleA。
步骤405,服务层遍历所述权限平台中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。
如果缓存中没有目标业务***标识和目标用户标识与目标角色的对应关系,则在权限平台遍历各个业务***和各个用户与各个角色之间的对应关系,从而匹配出目标角色,并将对应关系存入缓存,例如:key=***ID+用户ID,value=RoleA。
步骤406,服务层根据所述目标角色匹配对应的目标数据库集群的标识。
步骤407,服务层根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
一般来说,数据库集群的标识与数据库集群的配置信息之间的对应关系不需要经常修改,因此当集群部署完成后,可以将数据库集群的标识与配置信息的对应关系存储在服务层,以方便服务层获取。
步骤408,数据访问层根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
服务层匹配出目标数据库集群后,将请求传入数据库访问层,数据访问层根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
另外,在本发明一个可参考实施例中数据库集群的路由方法的具体实施内容,在上面所述数据库集群的路由方法中已经详细说明了,故在此重复内容不再说明。
图5是根据本发明实施例的数据库集群的路由装置的主要模块的示意图,如图5所示,所述数据库集群的路由装置500包括接收模块501、匹配模块502和路由模块503;其中,接收模块501用于接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;匹配模块502用于根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;路由模块503用于根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
可选地,所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系;
所述匹配模块502还用于:
根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
根据所述目标角色匹配对应的目标数据库集群的标识;
根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
可选地,所述配置信息包括:数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作中的至少一种。
可选地,所述目标角色的数量为至少一个,所述目标角色与所述目标数据库集群一一对应。
可选地,还包括配置模块,用于:
接收数据库访问请求之前,根据各个用户所在区域,确定所述各个用户对应的数据库集群;
配置各个数据库集群与各个角色之间的对应关系,并将其存入权限***;
配置各个业务***和各个用户与各个角色之间的对应关系,并将其存入权限***。
可选地,还包括配置模块,用于:
从所述权限***获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存。
可选地,所述匹配模块502还用于:
遍历所述权限***中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。
根据上面所述的各种实施例,可以看出本发明实施例通过根据目标业务***标识、目标用户标识和配置在权限***中的访问权限信息匹配对应的目标数据库集群的配置信息,从而将数据库访问请求路由至目标数据库集群的技术手段,解决了现有技术中浪费服务器资源、维护成本高或者对业务操作侵入性大的技术问题。本发明实施例在路由策略上实现了应用***和数据库集群的解耦,通过在应用***中的权限***配置访问权限信息的方式管理用户的数据库访问权限,从而实现数据库路由。本发明实施例可以使应用***与数据库集群充分解耦,不需要每个业务操作都带有分库主键,也不需要每个数据集群单独部署应用***。
需要说明的是,在本发明所述数据库集群的路由装置的具体实施内容,在上面所述数据库集群的路由方法中已经详细说明了,故在此重复内容不再说明。
图6示出了可以应用本发明实施例的数据库集群的路由方法或数据库集群的路由装置的示例性***架构600。
如图6所示,***架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、物品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据库集群的路由方法一般由服务器605执行,相应地,所述数据库集群的路由装置一般设置在服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机***700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机***700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有***700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、匹配模块和路由模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群。
根据本发明实施例的技术方案,因为采用根据目标业务***标识、目标用户标识和配置在权限***中的访问权限信息匹配对应的目标数据库集群的配置信息,从而将数据库访问请求路由至目标数据库集群的技术手段,所以克服了现有技术中浪费服务器资源、维护成本高或者对业务操作侵入性大的技术问题。本发明实施例在路由策略上实现了应用***和数据库集群的解耦,通过在应用***中的权限***配置访问权限信息的方式管理用户的数据库访问权限,从而实现数据库路由。本发明实施例可以使应用***与数据库集群充分解耦,不需要每个业务操作都带有分库主键,也不需要每个数据集群单独部署应用***。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (9)
1.一种数据库集群的路由方法,其特征在于,包括:
接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;
根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;
根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群;
所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系;
根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息,包括:
根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
根据所述目标角色匹配对应的目标数据库集群的标识;
根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
2.根据权利要求1所述的方法,其特征在于,所述配置信息包括:数据库地址、端口号、名称,连接超时时间,读写超时时间,重连策略,是否只读,是否开启负载均衡,是否支持批量操作中的至少一种。
3.根据权利要求1所述的方法,其特征在于,所述目标角色的数量为至少一个,所述目标角色与所述目标数据库集群一一对应。
4.根据权利要求1所述的方法,其特征在于,接收数据库访问请求之前,还包括:
根据各个用户所在区域,确定所述各个用户对应的数据库集群;
配置各个数据库集群与各个角色之间的对应关系,并将其存入权限***;
配置各个业务***和各个用户与各个角色之间的对应关系,并将其存入权限***。
5.根据权利要求1所述的方法,其特征在于,接收数据库访问请求之前,还包括:
从所述权限***获取各个数据库集群与各个角色之间的对应关系,并将其存入缓存。
6.根据权利要求5所述的方法,其特征在于,根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色,包括:
遍历所述权限***中各个业务***和各个用户与各个角色之间的对应关系,从而根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
将所述目标业务***标识和所述目标用户标识与所述目标角色的对应关系存入缓存。
7.一种数据库集群的路由装置,其特征在于,包括:
接收模块,用于接收数据库访问请求,所述数据库访问请求携带目标业务***标识和目标用户标识;
匹配模块,用于根据所述目标业务***标识、所述目标用户标识和配置在权限***中的访问权限信息,匹配对应的目标数据库集群的配置信息;
路由模块,用于根据所述目标数据库集群的配置信息,将所述数据库访问请求路由至所述目标数据库集群;
所述访问权限信息包括各个数据库集群与各个角色之间的对应关系,以及,各个业务***和各个用户与各个角色之间的对应关系;
所述匹配模块还用于:
根据所述目标业务***标识和所述目标用户标识匹配对应的目标角色;
根据所述目标角色匹配对应的目标数据库集群的标识;
根据所述目标数据库集群的标识匹配所述目标数据库集群的配置信息。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010255023.2A CN113495921B (zh) | 2020-04-02 | 2020-04-02 | 一种数据库集群的路由方法和装置 |
PCT/CN2021/084963 WO2021197432A1 (zh) | 2020-04-02 | 2021-04-01 | 一种数据库集群的路由方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010255023.2A CN113495921B (zh) | 2020-04-02 | 2020-04-02 | 一种数据库集群的路由方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495921A CN113495921A (zh) | 2021-10-12 |
CN113495921B true CN113495921B (zh) | 2023-09-26 |
Family
ID=77928531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010255023.2A Active CN113495921B (zh) | 2020-04-02 | 2020-04-02 | 一种数据库集群的路由方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113495921B (zh) |
WO (1) | WO2021197432A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104465A (zh) * | 2019-12-13 | 2020-05-05 | 北京金迅瑞博网络技术有限公司 | Cdn业务数据展示方法、装置和电子设备 |
CN114051029B (zh) * | 2021-11-10 | 2023-07-18 | 北京百度网讯科技有限公司 | 授权方法、授权装置、电子设备和存储介质 |
CN113992680B (zh) * | 2021-11-10 | 2024-02-02 | 中国工商银行股份有限公司 | 应用于分布式多活***的调度方法、装置、设备及介质 |
CN114095419B (zh) * | 2021-11-12 | 2023-11-28 | 软通动力信息技术(集团)股份有限公司 | 一种集群路由方法、装置、***及存储介质 |
CN114417395B (zh) * | 2021-12-08 | 2022-08-19 | 慧之安信息技术股份有限公司 | 操作***安全路由处理方法和*** |
CN114357001A (zh) * | 2022-01-12 | 2022-04-15 | 平安科技(深圳)有限公司 | 多集群的数据查询方法、装置、监控平台及存储介质 |
CN114389894B (zh) * | 2022-01-28 | 2023-12-19 | 青岛海尔科技有限公司 | 权限控制方法、设备、存储介质及计算机程序产品 |
CN114697322B (zh) * | 2022-02-17 | 2024-03-22 | 上海生慧樘科技有限公司 | 一种基于云端业务处理的数据筛选方法 |
CN114745281B (zh) * | 2022-04-11 | 2023-12-05 | 京东科技信息技术有限公司 | 一种数据处理的方法和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558354A (zh) * | 2004-01-13 | 2004-12-29 | 威盛电子股份有限公司 | 用户权限设定***、设定方法及其记录介质 |
CN1635439A (zh) * | 2003-12-26 | 2005-07-06 | 华为技术有限公司 | 一种用户权限管理方法 |
CN101034990A (zh) * | 2007-02-14 | 2007-09-12 | 华为技术有限公司 | 权限管理方法及装置 |
CN102611699A (zh) * | 2012-02-22 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种云操作***中访问控制的方法和*** |
CN104915353A (zh) * | 2014-03-13 | 2015-09-16 | 中国电信股份有限公司 | 分布式数据库下全局主键生成方法和*** |
CN104994086A (zh) * | 2015-06-26 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 一种数据库集群权限的控制方法及装置 |
CN105426396A (zh) * | 2015-10-28 | 2016-03-23 | 深圳市万姓宗祠网络科技股份有限公司 | 一种基于路由算法的数据库分片方法、***和中间件*** |
CN105956029A (zh) * | 2016-04-25 | 2016-09-21 | 吉林大学 | 混合存储架构下的数据访问方法 |
CN106095977A (zh) * | 2016-06-20 | 2016-11-09 | 环球大数据科技有限公司 | 一种数据库的分布式处理方法及*** |
CN106407011A (zh) * | 2016-09-20 | 2017-02-15 | 焦点科技股份有限公司 | 一种基于路由表的搜索***集群服务管理的方法及*** |
CN107766378A (zh) * | 2016-08-22 | 2018-03-06 | 南京中兴新软件有限责任公司 | 请求信息的发送方法及装置、分布式数据库*** |
CN110138862A (zh) * | 2019-05-16 | 2019-08-16 | 北京字节跳动网络技术有限公司 | 基于应用服务的业务处理方法、装置、网关设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
CN106202540A (zh) * | 2016-07-26 | 2016-12-07 | 浪潮通用软件有限公司 | 一种大型应用***的数据库可横向扩展方法 |
CN106789989B (zh) * | 2016-12-09 | 2019-08-02 | 武汉斗鱼网络科技有限公司 | 一种用户权限验证方法及装置 |
US10951600B2 (en) * | 2017-05-08 | 2021-03-16 | Microsoft Technology Licensing, Llc | Domain authentication |
US10216508B1 (en) * | 2018-01-05 | 2019-02-26 | Bank Of America Corporation | System and method for configurable services platform |
-
2020
- 2020-04-02 CN CN202010255023.2A patent/CN113495921B/zh active Active
-
2021
- 2021-04-01 WO PCT/CN2021/084963 patent/WO2021197432A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635439A (zh) * | 2003-12-26 | 2005-07-06 | 华为技术有限公司 | 一种用户权限管理方法 |
CN1558354A (zh) * | 2004-01-13 | 2004-12-29 | 威盛电子股份有限公司 | 用户权限设定***、设定方法及其记录介质 |
CN101034990A (zh) * | 2007-02-14 | 2007-09-12 | 华为技术有限公司 | 权限管理方法及装置 |
CN102611699A (zh) * | 2012-02-22 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种云操作***中访问控制的方法和*** |
CN104915353A (zh) * | 2014-03-13 | 2015-09-16 | 中国电信股份有限公司 | 分布式数据库下全局主键生成方法和*** |
CN104994086A (zh) * | 2015-06-26 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 一种数据库集群权限的控制方法及装置 |
CN105426396A (zh) * | 2015-10-28 | 2016-03-23 | 深圳市万姓宗祠网络科技股份有限公司 | 一种基于路由算法的数据库分片方法、***和中间件*** |
CN105956029A (zh) * | 2016-04-25 | 2016-09-21 | 吉林大学 | 混合存储架构下的数据访问方法 |
CN106095977A (zh) * | 2016-06-20 | 2016-11-09 | 环球大数据科技有限公司 | 一种数据库的分布式处理方法及*** |
CN107766378A (zh) * | 2016-08-22 | 2018-03-06 | 南京中兴新软件有限责任公司 | 请求信息的发送方法及装置、分布式数据库*** |
CN106407011A (zh) * | 2016-09-20 | 2017-02-15 | 焦点科技股份有限公司 | 一种基于路由表的搜索***集群服务管理的方法及*** |
CN110138862A (zh) * | 2019-05-16 | 2019-08-16 | 北京字节跳动网络技术有限公司 | 基于应用服务的业务处理方法、装置、网关设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021197432A1 (zh) | 2021-10-07 |
CN113495921A (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113495921B (zh) | 一种数据库集群的路由方法和装置 | |
CN109274731B (zh) | 基于多租户技术的web服务的部署、调用方法和装置 | |
US10951692B1 (en) | Deployment of microservices based on back-end resource affinity | |
CN111460129A (zh) | 标识生成的方法、装置、电子设备和存储介质 | |
US10726140B2 (en) | System and method for configuration management database governance | |
US20190149511A1 (en) | System and method for connecting using aliases | |
CN114817146A (zh) | 一种处理数据的方法和装置 | |
WO2024045646A1 (zh) | 管理集群访问权限的方法、装置和*** | |
WO2020163166A1 (en) | Resource and operation management on a cloud platform | |
CN112988738A (zh) | 用于区块链的数据分片方法和装置 | |
CN113127550B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN115438333A (zh) | 一种权限分配的方法和装置 | |
CN111191256B (zh) | 用户权限配置的方法和装置 | |
CN114528140A (zh) | 一种业务降级的方法和装置 | |
US11520863B2 (en) | Systems and methods for importing software license metric data into a configuration management database (CMDB) | |
US11212292B2 (en) | Network access control authorization process chaining | |
CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN109213815B (zh) | 控制执行次数的方法、装置、服务器终端以及可读介质 | |
CN112328184A (zh) | 一种集群扩容方法、装置、设备及存储介质 | |
CN113448652A (zh) | 一种请求处理方法和装置 | |
CN113448602A (zh) | 版本更新的方法和装置 | |
CN114301778B (zh) | 一种控制访问的方法和装置 | |
CN114363172B (zh) | 用于容器组的解耦管理方法、装置、设备、介质 | |
US11726798B2 (en) | Connected provisioning | |
US20230246916A1 (en) | Service map conversion with preserved historical information |
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 |