数据库访问的实现方法和装置制造方法及图纸

技术编号:16873836 阅读:53 留言:0更新日期:2017-12-23 11:46
说明书披露一种数据库访问的实现方法和装置,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:接收到数据插入请求,所述数据插入请求中携带业务类型;确定所述业务类型的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。

The implementation method and device of database access

Disclosure is a method and a device access database, the database schema used to read and write separate in the database schema of the read and write separate write library, including the main library and read and write the elastic base, wherein the main library and the library to read and write based on the synchronization strategy for data synchronization, the database the method includes: receiving access to the data insertion request, carry business types of the data insertion request; determining the type of business access status; when the access state for daily state, the main library write data into based on the access state; when the elastic writing state, elastic write library based on the data insertion.

【技术实现步骤摘要】
数据库访问的实现方法和装置
本说明书涉及数据库
,尤其涉及一种数据库访问的实现方法和装置。
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。当数据量较大时,可以采用读写分离的数据库架构。在读写分离的数据库架构中,可以由写库对外提供增加、删除、修改的功能,由读库对外提供读取功能。当插入数据量剧增时,需要提供更可靠的数据库访问的实现方案。
技术实现思路
有鉴于此,本说明书提供一种数据库访问的实现方法和装置。具体地,本说明书是通过如下技术方案实现的:一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:接收到数据插入请求,所述数据插入请求中携带业务类型;确定所述业务类型的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:在接收到数据插入请求时,确定数据库的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。一种数据库访问的实现装置,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现装置包括:请求接收单元,接收到数据插入请求,所述数据插入请求中携带业务类型;状态确定单元,确定所述业务类型的访问状态;主库插入单元,当所述访问状态为日常状态时,基于主写库完成数据插入;弹性插入单元,当所述访问状态为弹写状态时,基于弹性写库完成数据插入。一种数据库访问的实现装置,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现装置包括:处理器;用于存储机器可执行指令的存储器;其中,通过读取并执行所述存储器存储的与数据库访问的实现逻辑对应的机器可执行指令,所述处理器被促使:接收到数据插入请求,所述数据插入请求中携带业务类型;确定所述业务类型的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。由以上描述可以看出,本说明书可在访问状态是日常状态时,基于主写库完成对应业务类型的数据插入,在访问状态是弹写状态时,基于弹性写库完成对应业务类型的数据插入。通过对访问状态的区分,可以在插入数据量剧增时,基于弹性写库实现数据的稳定插入,提高数据库架构的可靠性。附图说明图1是本说明书一示例性实施例示出的一种数据库架构示意图。图2是本说明书一示例性实施例示出的一种数据库访问的实现方法的流程示意图。图3是本说明书一示例性实施例示出的另一种数据库访问的实现方法的流程示意图。图4是本说明书一示例性实施例示出的一种用于数据库访问的实现装置的一结构示意图。图5是本说明书一示例性实施例示出的一种数据库访问的实现装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1是本说明书一示例性实施例示出的一种数据库架构示意图。请参考图1,所述数据库架构可以包括主写库、弹性写库以及读库。其中,主写库与读库之间基于同步策略进行数据同步,比如:主写库与读库之间可以基于设定的时间周期进行数据同步等。图1示出了两个读库,在实际应用中也可以设置1个、3个或者更多的读库,本说明书对此不作特殊限制。在本实施例中,上述数据库架构可用于存储多种不同业务的数据。举例来说,上述数据库架构可以用于存储注册类业务的数据,还可以用于存储签约类业务的数据等。在本实施例中,可以为每种类型的业务设置对应的数据库访问状态。该访问状态可以划分为三种,分别为:日常状态、弹写状态以及回迁状态。其中,日常状态通常是默认的访问状态,表示插入数据量正常,未发生短期内插入数据量剧增等特殊情况。弹写状态表示一定时期内会发生插入数据量剧增等特殊情况,比如:服务提供方开展拉新活动,短期内有大量的新用户注册,可能导致注册类业务的插入数据量剧增。回迁状态表示插入数据量剧增的时期已经过去,插入数据量又恢复正常,可以将插入数据量剧增期间的数据回迁。其中,还可以将回迁状态详细划分为预回迁状态和正式回迁状态,预回迁状态表示即将进行回迁操作,而正式回迁状态表示回迁的整个过程等,本说明书对此不作特殊限制。在实际应用中,可以为每种类型的业务设置数据库访问状态的标志位,比如:标志位是0表示日常状态,标志位是1表示弹写状态,标志位是2表示回迁状态等,本说明书对此不作特殊限制。上述三种访问状态的切换可以由人工进行控制,比如:相关人员可以在开展拉新活动时,将注册类业务的访问状态由日常状态更新为弹写状态;在拉新活动结束后可将注册类业务的访问状态由弹写状态更新为回迁状态;在确定回迁结束后,可以将注册类业务的访问状态由回迁状态更新为日常状态。当然,还可以设置访问状态的自动更新方案,以注册类业务为例,可以在检测到插入数据量满足设定条件的时候,将该类业务的访问状态由日常状态更新到弹写状态等,本说明书对此不作特殊限制。基于图1所示的数据库架构,请参考图2,本说明书提供的数据库访问的实现方法可以包括以下步骤:步骤202,接收到数据插入请求,所述数据插入请求中携带业务类型。在本实施例中,数据插入请求中通常携带有业务类型,比如:业务类型的标识信息等。步骤204,确定所述业务类型的访问状态。基于前述步骤202,可以根据数据插入请求的业务类型确定其对应的访问状态,比如:查找该业务类型的数据库访问状态标志位,根据标志位的取值确定其访问状态等。步骤206,当所述访问状态为日常状态时,基于主写库完成数据插入。基于前述步骤204的确定结果,若所述业务类型的访问状态是日常状态,则说明该类型业务的插入数据量正常,可基于主写库完成本文档来自技高网...
数据库访问的实现方法和装置

【技术保护点】
一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:接收到数据插入请求,所述数据插入请求中携带业务类型;确定所述业务类型的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。

【技术特征摘要】
1.一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:接收到数据插入请求,所述数据插入请求中携带业务类型;确定所述业务类型的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。2.根据权利要求1所述的方法,还包括:当所述业务类型的访问状态由弹写状态更新为回迁状态时,将弹性写库中所述业务类型的数据回迁至主写库中,并在接收到针对所述业务类型的数据插入请求时,基于主写库完成数据插入。3.根据权利要求2所述的方法,还包括:在所述回迁状态下,停止对弹性库进行所述业务类型的数据修改和数据删除操作。4.根据权利要求1所述的方法,还包括:在所述弹写状态下,若接收到针对所述业务类型的数据查询请求,则确定所述数据查询请求的查询类别;若所述查询类别为一对多查询,则分别查询读库和弹性写库,并将查询结果合并后返回;若所述查询类别为一对一查询,则查询读库,若在读库中未查询到,则查询弹性写库,并将查询结果返回。5.根据权利要求1所述的方法,还包括:在所述弹写状态下,若接收到针对所述业务类型的数据修改或删除请求,则基于所述弹性写库中的全局插入表判断目标数据是否存储在弹性写库中;若目标数据存储在弹性写库中,则基于弹性写库完成数据修改或删除;若目标数据未存储在弹性写库中,则基于主写库完成数据修改或删除。6.根据权利要求1所述的方法,所述完成数据插入的过程包括:DAL拦截器基于目标字段判断是否需要加锁;若需要加锁,则添加DAO注解标示,所述DAO注解标示包括:业务类型和所述目标字段;启动异步线程基于所述注解标示进行加锁操作;若加锁成功,则进行数据插入,并在数据插入成功后释放锁资源。7.一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:在接收到数据插入请求时,确定数据库的访问状态;当所述访问状态为日常状态时,基于主写库完成数据插入;当所述访问状态为弹写状态时,基于弹性写库完成数据插入。8.一种数据库访问的实现装置,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据...

【专利技术属性】
技术研发人员:范先凯
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1