CN104754006A - 构建高可用性分布式系统的方法 - Google Patents

构建高可用性分布式系统的方法 Download PDF

Info

Publication number
CN104754006A
CN104754006A CN201310748408.2A CN201310748408A CN104754006A CN 104754006 A CN104754006 A CN 104754006A CN 201310748408 A CN201310748408 A CN 201310748408A CN 104754006 A CN104754006 A CN 104754006A
Authority
CN
China
Prior art keywords
request
server
database
proxy agent
request 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.)
Pending
Application number
CN201310748408.2A
Other languages
English (en)
Inventor
沈晟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Pin Zhi Cultural Spreading Co Ltd
Original Assignee
Shanghai Pin Zhi Cultural Spreading Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Pin Zhi Cultural Spreading Co Ltd filed Critical Shanghai Pin Zhi Cultural Spreading Co Ltd
Priority to CN201310748408.2A priority Critical patent/CN104754006A/zh
Publication of CN104754006A publication Critical patent/CN104754006A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种构建高可用性分布式系统的方法,其利用部署在多个机房的后端请求处理服务器和数据库提高网络服务的可用性,将分布式系统所有的请求通过一个前端代理服务器,其将请求分派到多个部署在不同机房的后端请求处理服务器进行处理:当请求为读取数据的请求,则前端服务器用负载均衡的方式将请求分派到一个后端请求处理服务器进行处理,并将处理结果返还给客户;当请求为需要写入数据库的请求,则前端服务器在将此请求转发给所有后端请求服务器,同时将一个随机数和一个时间戳一同转发以供后端请求处理服务器在处理写入数据库的请求时使用。该方法不依靠数据库的复制机制,可以方便的将现有网络服务改造成分布式高可用性服务。

Description

构建高可用性分布式系统的方法
技术领域
本发明涉及高可用性的、跨机房的网络服务,尤其是涉及一种构建高可用性分布式系统的方法, 用部署在多个机房的服务器和数据库提高网络服务的可用性,同时保证多个数据库的一致性。
背景技术
目前常见的网络服务由服务器和数据库组成,当其所在的机房因为网络或硬件等故障而不可用时,服务不可用;如果数据库的硬件出现故障,数据丢失,需要从备份恢复,如果全部或部分数据没有备份,数据则永久丢失。常见的应对方法是利用数据库的复制功能做跨机房的数据复制,但是这种方法依赖于数据库的复制机制,需要有专门知识的人员部署、管理。本方法提供一种通用的实现手段。
发明内容
本发明的目的就是为了解决上述问题,提供一种构建高可用性分布式系统的方法, 它不依靠数据库的复制机制,可以方便的将现有网络服务改造成分布式高可用性服务,且具有通用性。
为了实现上述目的,本发明采用如下技术方案
构建高可用性分布式系统的方法(以下简称“该方法”),该方法是利用部署在多个机房的后端请求处理服务器和数据库提高网络服务的可用性,且保证多个数据库的一致性,其中,将分布式系统所有的请求通过一个前端代理服务器,此前端代理服务器将请求分派到多个部署在不同机房的后端请求处理服务器进行处理:
i)当请求为读取数据的请求,则前端代理服务器用负载均衡的方式将请求分派到一个后端请求处理服务器进行处理,并将处理结果返还给客户;
ii)当请求为需要写入数据库的请求,则前端代理服务器在将此请求转发给所有后端请求处理服务器,同时将一个随机数和一个时间戳一同转发,请求处理服务器在处理写入数据库的请求时,当有需要用到随机数和时间戳的地方,利用前端代理服务器发送的随机数和时间戳,而不依靠数据库自己生成的随机数和时间戳,以保证不同数据库的一致。
作为本发明,较为理想的是,所述前端代理服务器将所有需要写入数据库的请求记入日志,以便数据库服务器在故障或断网后恢复数据。
作为本发明,较为理想的是,当某个数据库需要恢复时,前端代理服务器依序重播记录的请求。
本发明具有如下有益效果在于,该方法不依靠数据库的复制机制,可以方便的将现有网络服务改造成分布式高可用性服务。
构建分布式系统,所有的请求通过一个前端代理服务器,此服务器将请求分派到多个部署在不同机房的请求处理服务器进行处理,以提高网络服务的可用性。
如果请求为读取数据的请求,前端代理服务器用负载均衡的方式将请求分派到一个后端请求处理服务器进行处理,并将处理结果返还给客户;如果请求为需要写入数据库的请求,前端代理服务器在将此请求转发给所有请求处理服务器,同时将一个随机数和一个时间戳一同转发。该处理流程进一步提供了网络服务的可用性。
请求处理服务器在处理写入数据库的请求时,当有需要用到随机数和时间戳的地方,不能依靠数据库生成的随机数和时间戳,而是利用前端代理服务器发送的随机数和时间戳,以此保证不同数据库的一致。
为了便于数据库服务器在故障或断网后恢复数据,前端的代理服务器会将所有需要写入数据库的请求记入日志。当某个数据库需要恢复时,前端的代理服务器依序重播记录的请求。
附图说明
图1为构建高可用性分布式系统的方法中整个系统的架构图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
图1为构建高可用性分布式系统的方法中整个系统的架构图,图中1代表前端代理服务器,其用来接收来自网络的客户请求,包括但不限于搜索请求。提高网络服务可用性的系统架构中,囊括有多个机房,诸如图中示出的第一机房A1、第二机房A2、第三机房A3……第N机房AN(机房之间无顺序之分),在各个机房中部署有后端请求处理服务器3和数据库4。
该方法用部署于多个机房(数量根据需要进行匹配)的后端请求处理服务器和数据库提高网络服务的可用性,同时保证多个数据库的一致性。避免网络服务的低效,该方法是将分布式系统所有的请求通过一个前端代理服务器1,该结构优化了请求处理流程,这里的请求可以是对数据进行查询、读、写等操作,所述前端代理服务器将请求分派到多个部署在不同机房的后端请求处理服务器进行处理,以下描述针对不同请求的处理方式:
如果请求为读取数据的请求,则前端代理服务器1用负载均衡的方式将请求分派到一个后端请求处理服务器(可以是任意一个机房的任意一个后端请求处理服务器)进行处理,诸如选择第一机房A1的后端请求处理服务器3进行处理,并将处理结果返还给客户。
如果请求是需要写入数据库的请求,则前端代理服务器再将此请求转发给所有后端请求处理服务器,包括图1中的第一机房~第N机房中的后端请求处理服务器3,同时将一个随机数和一个时间戳一同转发,后端请求处理服务器再处理写入数据库的请求时,当有需要用到随机数和时间戳的地方,利用前端代理服务器1发送的随机数和时间戳,而不依靠各个机房中各自的数据库生成的随机数和时间戳,以保证不同数据库的一致性,协同性更高。
对于写入操作,当事物执行一个对数据库的写操作时,数据库首先写入数据库缓冲区,数据库缓冲区在内存中占特定的区域,数据经由此再回到二级存储器。数据由数据库缓冲区回到二级存储器的操作可由特定的DBMS引发,或者在数据库缓冲区满时,由DBMS自动执行。如果事务已经提交,为保证数据库的一致性,通过读取日志文件让恢复管理机制对数据库执行一次redo操作。
另外,前端代理服务器1将所有需要写入数据库的请求记入日志,以便数据库服务器再故障或断网后恢复数据。
该方法中,当某个数据库需要恢复时,前端代理服务器1依序重播记录的请求。
本案的系统架构是简化后的示意图,仅仅演示高可用性的、跨机房的网络服务所用到的关键设备,机房中的硬件设备包括但不仅限于此。
针对跨机房的数据复制,配备专业人员是解决方案之一,该方法提供了无需配备专业人员而通用的技术手段。
需要说明的是,前端代理服务器对于请求的分派、前端代理服务器重播记录等技术属于公知的现有技术,在此不加以赘述。而且,该方法首先需要实现前述的前端代理服务器,然后需要对现有的后端请求处理服务进行修改,对需用随机数和时间戳的请求,应改为接收并使用前端代理服务器提供的值等操作均属于公知的现有技术。
以上所述仅为本发明的优选实施方式,本发明的保护范围并不仅限于上述实施方式,凡是属于本发明原理的技术方案均属于本发明的保护范围。对于本领域的技术人员而言,在不脱离本发明的原理的前提下进行的若干改进,这些改进也应视为本发明的保护范围。

Claims (3)

1.构建高可用性分布式系统的方法,其特征在于,该方法是利用部署在多个机房的后端请求处理服务器和数据库提高网络服务的可用性,且保证多个数据库的一致性,其中,将分布式系统所有的请求通过一个前端代理服务器,此前端代理服务器将请求分派到多个部署在不同机房的后端请求处理服务器进行处理:
i)当请求为读取数据的请求,则前端代理服务器用负载均衡的方式将请求分派到一个后端请求处理服务器进行处理,并将处理结果返还给客户;
ii)当请求为需要写入数据库的请求,则前端代理服务器在将此请求转发给所有后端请求处理服务器,同时将一个随机数和一个时间戳一同转发,后端请求处理服务器在处理写入数据库的请求时,当有需要用到随机数和时间戳的地方,利用前端代理服务器发送的随机数和时间戳,而不依靠数据库自己生成的随机数和时间戳,以保证不同数据库的一致。
2.根据权利要求1所述的一种构建高可用性分布式系统的方法,其特征在于,所述前端代理服务器将所有需要写入数据库的请求记入日志,以便数据库服务器在故障或断网后恢复数据。
3.根据权利要求1所述的一种构建高可用性分布式系统的方法,其特征在于,当某个数据库需要恢复时,前端代理服务器依序重播记录的请求。
CN201310748408.2A 2013-12-31 2013-12-31 构建高可用性分布式系统的方法 Pending CN104754006A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310748408.2A CN104754006A (zh) 2013-12-31 2013-12-31 构建高可用性分布式系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310748408.2A CN104754006A (zh) 2013-12-31 2013-12-31 构建高可用性分布式系统的方法

Publications (1)

Publication Number Publication Date
CN104754006A true CN104754006A (zh) 2015-07-01

Family

ID=53593102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310748408.2A Pending CN104754006A (zh) 2013-12-31 2013-12-31 构建高可用性分布式系统的方法

Country Status (1)

Country Link
CN (1) CN104754006A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649865A (zh) * 2016-12-31 2017-05-10 深圳市优必选科技有限公司 一种分布式服务器系统及数据处理方法
CN110266747A (zh) * 2019-04-12 2019-09-20 阿里巴巴集团控股有限公司 业务请求的机房转接方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066118A1 (en) * 2003-09-23 2005-03-24 Robert Perry Methods and apparatus for recording write requests directed to a data store
US7293009B2 (en) * 2001-08-30 2007-11-06 Bea Systems, Inc. System and method for flushing bean cache
CN101119414A (zh) * 2007-09-19 2008-02-06 华为技术有限公司 访问数据库的方法及系统
CN102207891A (zh) * 2011-06-10 2011-10-05 浙江大学 对数据划分分布式环境实现动态划分和负载均衡的方法
CN102436468A (zh) * 2011-09-14 2012-05-02 山东中创软件商用中间件股份有限公司 一种基于数据库集群的负载均衡方法及系统
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293009B2 (en) * 2001-08-30 2007-11-06 Bea Systems, Inc. System and method for flushing bean cache
US20050066118A1 (en) * 2003-09-23 2005-03-24 Robert Perry Methods and apparatus for recording write requests directed to a data store
CN101119414A (zh) * 2007-09-19 2008-02-06 华为技术有限公司 访问数据库的方法及系统
CN102207891A (zh) * 2011-06-10 2011-10-05 浙江大学 对数据划分分布式环境实现动态划分和负载均衡的方法
CN102436468A (zh) * 2011-09-14 2012-05-02 山东中创软件商用中间件股份有限公司 一种基于数据库集群的负载均衡方法及系统
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649865A (zh) * 2016-12-31 2017-05-10 深圳市优必选科技有限公司 一种分布式服务器系统及数据处理方法
CN110266747A (zh) * 2019-04-12 2019-09-20 阿里巴巴集团控股有限公司 业务请求的机房转接方法和装置
CN110266747B (zh) * 2019-04-12 2022-04-08 创新先进技术有限公司 业务请求的机房转接方法和装置

Similar Documents

Publication Publication Date Title
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
CN103268318B (zh) 一种强一致性的分布式键值数据库系统及其读写方法
US20190155694A1 (en) Data replication snapshots for pesistent storage using operation numbers
US8886796B2 (en) Load balancing when replicating account data
JP6044539B2 (ja) 分散ストレージシステムおよび方法
CN110309218B (zh) 一种数据交换系统和数据写入方法
CN106610876A (zh) 数据快照的恢复方法及装置
CN105843702B (zh) 一种用于数据备份的方法以及装置
JP6225262B2 (ja) 分散データグリッドにおいてデータを同期させるためにパーティションレベルジャーナリングをサポートするためのシステムおよび方法
CN106250270A (zh) 一种云计算平台下的数据备份方法
CN104932841A (zh) 一种云存储系统中节约型重复数据删除方法
CN103377100B (zh) 一种数据备份方法、网络节点及系统
CN103294167B (zh) 一种基于数据行为的低能耗集群存储复制装置和方法
CN106502823A (zh) 数据云备份方法和系统
US9229970B2 (en) Methods to minimize communication in a cluster database system
CN103778034A (zh) 基于云存储的数据备份容灾方法及系统
CN105740248B (zh) 一种数据同步方法、装置及系统
CN103530388A (zh) 一种云存储系统中提升性能的数据处理方法
CN105404679A (zh) 数据处理方法和装置
CN103209210A (zh) 一种提高基于纠删码的存储集群恢复性能的方法
CN109739435A (zh) 文件存储和更新方法及装置
WO2017122060A1 (en) Parallel recovery for shared-disk databases
CN108140035A (zh) 分布式系统的数据库复制方法及装置
CN102820998B (zh) 实现面向办公应用的双机容错服务系统及其数据存储方法
CN105471616A (zh) 缓存系统管理方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150701

WD01 Invention patent application deemed withdrawn after publication