【技术实现步骤摘要】
一种高并发情况下保持数据库一致的方法及系统
本申请涉及数据库领域,尤其涉及保持高并发下主从数据库一致性的方法及系统。
技术介绍
高并发是在短时间内有大量请求发送到服务器,此时服务器面临很大的压力,如果使用单一的数据库,由于读写都在一个数据库上,在高并发情况下,数据库也会承受很大的压力。但是高并发有个特点就是,一般读多写少,也就是读数据库的请求较多,写数据库的请求较少,针对高并发的这个特点,设计了数据库的读写分离机制,所谓读写分离就是写放在一个数据库上,而读放在另外一个或多个数据库上。这样不会把读写集中到一个数据库,减轻数据库的压力,提高用户的体验。然而,由于从数据库需要通过IO读取主数据库中的binlog日志,然后将其写入relaylog,最后才将其写入到从数据库中,当有大量数据写入时,由于数据库服务器本身的压力比较大,IO端口的压力以及数据库资源的消耗,都影响主从数据库的一致性,例如抢购、抢票、秒杀活动中,在主数据库中写入了数据,由于从数据库还未写入,此时如果读取数据,新写入主数据库的数据可能无法读出,如何提高主从 ...
【技术保护点】
1.一种高并发情况下保持数据库一致的方法,应用于主从数据库架构中,其特征在于,所述方法包括以下步骤:/n计算单位时间内向主数据库请求写入的请求数,若大于第一阈值,则触发数据库写请求缓存系统,将来自Web服务器的所有的数据库写请求转发到所述数据库写请求缓存系统,所述数据库写请求缓存系统将数据库写请求缓存到队列中;/n主从数据库分别从所述队列中读取写请求,并将数据写入到对应数据库中,并且主数据库不将所述写请求的操作事件记录到binlog中,只有主从数据库都写入成功,才将对应的写请求从队列中删除;/n当所述请求数在一段时间内都不大于第一阈值时,则将数据库写请求直接发送给主数据库, ...
【技术特征摘要】
1.一种高并发情况下保持数据库一致的方法,应用于主从数据库架构中,其特征在于,所述方法包括以下步骤:
计算单位时间内向主数据库请求写入的请求数,若大于第一阈值,则触发数据库写请求缓存系统,将来自Web服务器的所有的数据库写请求转发到所述数据库写请求缓存系统,所述数据库写请求缓存系统将数据库写请求缓存到队列中;
主从数据库分别从所述队列中读取写请求,并将数据写入到对应数据库中,并且主数据库不将所述写请求的操作事件记录到binlog中,只有主从数据库都写入成功,才将对应的写请求从队列中删除;
当所述请求数在一段时间内都不大于第一阈值时,则将数据库写请求直接发送给主数据库,并将写请求的操作事件记录到binlog中。
2.如权利要求1所述的方法,其特征在于,所述数据库写请求缓存系统设置在一个单独的服务器,其位于Web服务器和主从数据库服务器之间。
3.如权利要求1所述的方法,其特征在于,所述数据库写请求缓存系统还用于,当主从数据库将写请求成功写入数据库后,分别向所述数据库写请求缓存系统发送写成功消息,所述写成功消息包括写请求在队列中的序号,所述数据库写请求缓存系统在接收到主从数据库分别发送的所述写成功消息时,根据所述序号将写请求从队列中删除。
4.如权利要求3所述的方法,其特征在于,所述数据库写请求缓存系统还包括第二队列和第三队列,所述第二队列用于存储向主数据库写入失败的请求,所述第三队列用于存储向从数据库写入失败的请求,若一个写请求同时位于第二队列和第三队列,则直接向Web服务器发送写失败消息;若数据库写请求存在于第二队列,而在第三队列中不存在,则在主数据库中回滚该数据库写请求,并向Web服务器发送写失败消息;若数据库写请求存在于第三队列,而在第二队列中不存在,则在从数据库中回滚该数据库写请求。
5.一种高并发情况下保持数据库一致的系统,应用于主从数据库架构中,其特征在于,所述系统包括以下模块:
监控模块,用于计算单位时间内向主数据库请求写入的请求数,若大于第一阈值,则触发数据库写请...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。