【技术实现步骤摘要】
访问分布式数据库的方法和分布式数据服务的装置
本申请涉及数据库
,尤其涉及访问分布式数据库技术。
技术介绍
对于分布式数据库系统而言,不同类型的数据可能分布在不同的数据库中。比如:表A被存储在1个数据库中,表B被存储在另外一个数据库中。这样如果需要访问表格A和表格B,那么可能是需要进行跨数据库(简称,跨库)关联访问。目前,可以使用复制表的方法来解决在分布式数据库系统中跨库关联的问题。这里的复制表为存储在多个数据库服务器上的同一数据表,通俗来说,就是一张数据表被同时存储在多个数据库服务器上。如果复制表需要数据更新,目前通常的做法是:对多个数据库服务器的复制表进行同步更新。但是由于数据一致性的要求,在这种数据更新方式下,需要将更新处理请求发送给所有复制表所在的数据库服务器,并且只有所有复制表所在的数据库服务器都成功更新数据时,该复制表的数据更新才算更新成功。如果复制表所在的某个数据库服务器的数据更新失败时,那么本次数据更新就失败了,因此该种方式的性能和可靠性不高。
技术实现思路
本申请实施例提供一种访问分布式数据库的方法和分布式数据服务的装置,提高访问分布式数据库的性能和可靠性。一方面,本申请的实施例提供了一种访问分布式数据库的方法。方法包括:数据库中间件接收应用服务器发送的第一访问请求(如增加请求,删除请求,修改请求,查询请求等),第一访问请求包含了第一数据表的表名和所述第一数据表的关键值(通常还可以包含访问动作,比如查询,删除,修改或者增加),可以通过关键值查询到该数据表优先访问的数据库服务器;数据库中间件根据第一数据表的表名,查询到第一数据表为复制表和 ...
【技术保护点】
一种访问分布式数据库的方法,其特征在于,方法包括:接收应用服务器发送的第一访问请求,所述第一访问请求包含了所述第一数据表的表名和所述第一数据表的关键值;根据所述第一数据表的表名,查询到所述第一数据表为复制表和所述复制表对应的第一访问规则,其中,所述复制表为存储在多个数据库服务器上的相同数据表;确定所述第一访问规则中所述关键值对应的数据库服务器为优先访问的第一数据库服务器;向所述第一数据库服务器发送所述第一访问请求。
【技术特征摘要】
1.一种访问分布式数据库的方法,其特征在于,方法包括:接收应用服务器发送的第一访问请求,所述第一访问请求包含了所述第一数据表的表名和所述第一数据表的关键值;根据所述第一数据表的表名,查询到所述第一数据表为复制表和所述复制表对应的第一访问规则,其中,所述复制表为存储在多个数据库服务器上的相同数据表;确定所述第一访问规则中所述关键值对应的数据库服务器为优先访问的第一数据库服务器;向所述第一数据库服务器发送所述第一访问请求。2.如权利要求1所述的方法,其特征在于,在所述向第一数据库服务器发送所述第一访问请求之前,还包括:确定所述第一数据库服务器发生故障或者断网,向除所述第一数据库服务器之外的所有存储复制表的数据库服务器中任意一个数据库服务器发送所述第一访问请求。3.如权利要求1所述的方法,其特征在于,还包括:确定所述第一数据库服务器处理了所述访问请求后,所述第一数据表包含数据发生了变化,向除所述第一数据库服务器之外的所有存储复制表的数据库服务器发送所述第一访问请求。4.如权利要求1-3中任意一个所述的方法,其特征在于,还包括:接收应用服务器发送的第二访问请求,所述第二访问请求包含了第二数据表的表名,第三数据表的表名和第二数据表的关键值;根据所述第二数据表的表名,查询到所述第二数据表为分区表和所述分区表的第二访问规则,其中分区表为数据按照分区规则分散并且唯一存储到多个数据库服务器中的数据表,所述分区表在所述多个数据库服务器中具有相同表名和表结构;根据所述第二数据表的关键值和所述第二访问规则,确定存储所述分区关键值对应的分区表的第二数据库服务器;根据所述第三数据表的表名,查询到所述第二数据表为复制表和第三访问规则,从所述第三访问规则中,确认所述第二数据库服务器存储了所述第二数据表;或者从所述第三访问规则中,确认所有存储所述第二数据表的数据库服务器,当所述所有存储所述第二数据表的数据库服务器中包含了所述第二数据库服务器时;将所述第二访问请求发送给所述第二数据库服务器。5.如权利要求1所述的方法,其特征在于,还包括:所述访问请求包含了查询请求,删除请求,修改请求或者增加请求。6.一种访问分布式数据库的方法,其特征在于,方法包括:接收应用服务器发送的访问请求,所述访问请求包含了第一数据表的表名,第二数据表的表名,所述第一数据表的关键值和所述第二数据表的关键值;根据所述第一数据表的表名,查询到所述第一数据表为复制表和所述第一数据表对应的第一访问规则,其中,所述复制表为存储在多个数据库服务器上的同一数据表;根据所述第二数据表的表名,确定所述第二数据表为复制表和所述第二数据表对应的第二访问规则;当第一访问规则和第二访问规则相同时,从第一访问规则或第二访问规则,确认所述第一数据表的关键值或所述第二数据表的关键值对应的数据库服务器为优先访问的第一数据库服务器;向所述第一数据库服务器发送所述第一访问请求。7.如权利要求1所述的方法,其特征在于,还包括:当第一访问规则和第二访问规则不同时,从所述第一访问规则中,确认所有存储所述第一数据表的数据库服务器,从所述第二访问规则中,确认所有存储所述第二数据表的数据库服务器;确认所有存储所述第一数据表的数据库服务器和所有存储所述第二数据表的数据库服务器中有相同的一个或多个时,确认所述相同一个或多个的数据库服务器中的任意一个为优先访问的第二数据库服务器;向所述第二数据库服务器发送所述第一访问请求。8.一种分布式数据服务的装置,其特征在于,包括:接收单元,用于接收应用服务器发送的第一访问请求,所述第一访问请求包含了所述第一数据表的表名和所述第一数据表的关键值;查询单元,用于根据所述第一数据表的表名,查询到所述第一数据表为复制表和所述复制表对应的第一访问规则,其中,所述复制表为存储在多个数据库服务器上的相同数据表;确定单元,用于确定所述第一访问规则中所述关键值对应的数据库服务器为优先访问的第一数据库服务器;发送单元,用于向所述第一数据库服务器发送所述第一访问请求。9.如权利要求8所述的装置,其特征在于,所述发送单元,还用于确定所述第一数据库服务器发生故障或者断网,向除所述第一数据库服务器之外的所有存储复制表的数据库服务器中任意一个数据库服务器发送所述第一访问请求。10.如权利要求8...
【专利技术属性】
技术研发人员:李臻峰,卢元元,韩建中,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。