CN104468777B - 数据操作方法和装置 - Google Patents
数据操作方法和装置 Download PDFInfo
- Publication number
- CN104468777B CN104468777B CN201410738454.9A CN201410738454A CN104468777B CN 104468777 B CN104468777 B CN 104468777B CN 201410738454 A CN201410738454 A CN 201410738454A CN 104468777 B CN104468777 B CN 104468777B
- Authority
- CN
- China
- Prior art keywords
- server
- service
- data
- data manipulation
- read
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据操作方法和装置,主要涉及互联网技术领域,主要目的在于实现服务器的合理分配。方法包括:接收终端发送的进行数据操作的请求;为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务;检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器;调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。根据本发明,在将操作请求分配给服务器集群后,能够根据服务器集群中每个服务器的状态,合理地选择处理操作请求的服务器,从而避免将不适当的服务器用来处理操作请求,以保证可以正常完成数据操作。
Description
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种数据操作方法和装置。
背景技术
目前,随着互联网业务的迅速发展,在带来大量业务的同时,也对相应的服务器造成了负担。目前的应对策略是采用多个服务器组成的服务器集群来处理较多的负担,但仍存在着一定的缺陷:部分服务器过于繁忙,而另外部分服务器过于空闲,难以合理地分配服务器资源来处理业务。
例如,对于游戏公司而言,其对用户玩家开放了多个服务器,容易出现玩家大量拥挤在一个服务器上的情况,而有些服务器则很少有玩家使用。如何解决服务器的合理分配,就成一个需要克服的课题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据操作方法和装置。
依据本发明的一个方面,提供了一种数据操作方法,其包括:接收终端发送的进行数据操作的请求;为所述操作请求选择服务器集群,所述服务器集群中每个服务器上均具有适于进行所述数据操作的数据存储装置和服务;检测所述服务器集群中每个服务器的服务的状态,根据检测结果从所述服务器集群中选择服务器;调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作。
依据本发明的另一方面,提供了一种数据操作装置,其包括:请求接收模块,用于接收终端发送的进行数据操作的请求;服务器集群选择模块,用于为所述操作请求选择服务器集群,所述服务器集群中每个服务器上均具有适于进行所述数据操作的数据存储装置和服务;服务器选择模块,用于检测所述服务器集群中每个服务器的服务的状态,根据检测结果从所述服务器集群中选择服务器;数据操作执行模块,用于调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作。
根据以上技术方案,可知本发明的数据操作方法和装置至少具有以下优点:
在将操作请求分配给服务器集群后,能够根据服务器集群中每个服务器的状态,合理地选择处理操作请求的服务器,从而避免将不适当的服务器用来处理操作请求,以保证可以正常完成数据操作。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明的一个实施例的数据操作方法的流程图;
图2示出了根据本发明的一个实施例的数据操作方法的流程图;
图3示出了根据本发明的一个实施例的数据操作方法的流程图;
图4示出了根据本发明的一个实施例的数据操作方法的流程图;
图5示出了根据本发明的一个实施例的数据操作方法的流程图;
图6示出了根据本发明的一个实施例的数据操作方法的流程图;
图7示出了根据本发明的一个实施例的数据操作方法的流程图;
图8示出了根据本发明的一个实施例的数据操作方法的流程图;
图9示出了根据本发明的一个实施例的数据操作方法的流程图;
图10示出了根据本发明的一个实施例的数据操作方法的流程图;
图11示出了根据本发明的一个实施例的数据操作装置的框图;
图12示出了根据本发明的一个实施例的数据操作装置的框图;
图13示出了根据本发明的一个实施例的数据操作装置的框图;
图14示出了根据本发明的一个实施例的数据操作装置的框图;
图15示出了根据本发明的一个实施例的数据操作装置的框图;
图16示出了根据本发明的一个实施例的数据操作装置的框图;
图17示出了根据本发明的一个实施例的数据操作装置的框图;
图18示出了根据本发明的一个实施例的数据操作装置的框图;
图19示出了根据本发明的一个实施例的数据操作装置的框图;
图20示出了根据本发明的一个实施例的数据操作装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤110,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤120,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤130,检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器。在本实施例中,可以通过Haproxy(一种工具)来检测服务器中服务的状态;服务的状态主要考虑服务是否可用,例如可以是服务是否被占用,或服务是否存在故障。
步骤140,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。根据本实施例的技术方案,在将操作请求分配给服务器集群后,能够根据服务器集群中每个服务器的状态,合理地选择处理操作请求的服务器,从而避免将不适当的服务器用来处理操作请求,以保证可以正常完成数据操作。
根据图1,假设某电商网站吸引了大量的用户,用户通过在网站网页上的一系列操作来请求购买商品。服务端获取购买商品的请求后,检测用于处理购买商品业务的4个服务器组成的服务器集群中每个服务器的服务状态,发现其中1个服务器的服务存在问题,所以从剩余3个服务器中选择1个服务器来处理购买请求,具体服务为在数据库中写入用户的资料以及要购买的商品。
如图2所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤210,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤220,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤230,检测服务器集群中每个服务器的服务的状态。服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务的地址。
步骤240,获取请求的来源的地址。
步骤250,根据请求的来源的地址以及服务器集群中每个服务器的服务的地址,计算请求的来源与服务器集群中每个服务器之间的距离。
步骤260,根据距离大小,来从服务器集群中选择服务器。在本实施例中,实际上是就近选择服务器来执行数据操作,这样可以避免距离过远造成的网络延迟和数据丢失的情况。
步骤270,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
根据图2,某考试网站在某日公布考试成绩,则当日有大量考生通过该网站页面提交查询成绩的请求。存储有考试成绩的服务器集群中,包括位于北京、上海两处的服务器。对于某内蒙古考生提交的查询成绩的请求,可根据其IP地址判断其身处内蒙古,距离北京更近,所以由北京的服务器来对考试成绩数据库进行查询。
如图3所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤310,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤320,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤330,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
步骤340,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
步骤350,在数据操作包含写操作时,从主服务器中选择具有读写服务的服务器。
步骤360,在数据操作不包含写操作时,从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
步骤370,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。在本实施例中,从服务器中的数据通常为主服务器数据的备份,所以从服务器不进行写操作以免影响数据的准确性,服务器可以进行读操作以分担主服务器的压力。
如图3所示,某考试网站在某日公布考试成绩,则当日有大量考生通过该网站页面提交查询成绩的请求。对某考生的查询考试成绩的请求,经分析可知仅涉及对考试成绩数据库的读操作,因此可以由预设的一从服务器来处理该请求,从其中的成绩数据库中查询到考生的成绩并发送给考生。
如图4所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤410,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤420,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤430,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
步骤440,在数据操作为读写操作时,对所述读写操作进行读写分离。因此后续可以针对分离后的操作来选择相应的服务器来执行操作。
步骤450,对读写分离后的多个数据操作分别进行判断。
步骤460,在数据操作包含写操作时,从主服务器中选择具有读写服务的服务器。
步骤470,在数据操作不包含写操作时,从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
步骤480,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。在本实施例中,通过读写分离,可以由不同服务器来分别处理读写操作,有利于合理稳定利用服务器集群的资源。
如图4所示,某网站进行抽奖活动,用户进行抽奖操作后能够得到自己是否抽中的结果,以及当前有哪些用户中奖的结果。用户提交抽奖请求后,分析抽奖请求对应的数据操作包含写操作和只读操作:写操作——执行抽奖策略并在数据库中写入抽奖结果,只读操作——读取数据库中的中奖人记录。由此可知,执行抽奖策略并在数据库中写入抽奖结果可以选择主服务器来执行,读取数据库中的中奖人记录可以由从服务器来执行。
如图5所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤510,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤520,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤530,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
步骤540,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
步骤550,在数据操作包含写操作时,从主服务器中选择具有读写服务的服务器。
步骤560,在数据操作不包含写操作时,从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
步骤570,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
步骤580,根据主服务器中数据存储装置的数据,同步从服务器中数据存储装置中的数据。在本实施例中,通过主动同步的方式可以及时更新从服务器中的数据,从而保证从服务器中数据等正确性。
根据图5,假设某公司配了一个主服务器和一个从服务器,在主服务器中数据库中进行写操作,导致主服务器数据库中的数据发生变化时进行主从同步,从而保证从服务器数据库中的数据与主服务器数据库的数据一致。
如图6所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤610,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤620,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤630,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
步骤640,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
步骤650,在数据操作包含写操作时,从主服务器中选择具有读写服务的服务器。
步骤660,在数据操作不包含写操作时,从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
步骤670,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
步骤680,在从服务器有多个时,计算从服务器的负载。在本实施例中,服务器的负载可以由服务器中服务的被使用数量体现。
步骤690,根据负载由低到高的顺序,确定对从服务器的同步顺序。在本实施例中,由于进行数据同步也会对从服务器造成一定的压力,所以可以由负载较低的从服务器首先进行同步,负载较高的从服务器需要延迟进行同步,则同时其负载有可能已经降低。
步骤6100,根据主服务器中数据存储装置的数据,同步从服务器中数据存储装置中的数据。
根据图6,假设某公司配了一个主服务器和A、B两个从服务器,在主服务器数据库中进行写操作,导致主服务器数据库中的数据发生变化时进行主从同步。此时监控两个从服务器中服务的被使用情况,得到从服务器A的负载程度较低的结果,则首先进行主服务器与从服务器A的同步,之后进行主服务器与从服务器B的同步。
如图7所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤710,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤720,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤730,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
步骤740,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
步骤750,在数据操作包含写操作时,从主服务器中选择具有读写服务的服务器。
步骤760,在数据操作不包含写操作时,从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
步骤770,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
步骤780,在主服务器具有多个时,根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。在本实施例的技术方案中,通过实现双主同步,可以保证某台主服务器上的数据一致,避免出现数据错误。
如图7所示,某网站在北京机房、上海机房分别设置有主服务器,则对于上海机房的主服务器完成写入操作后,其数据库中的数据发生了变更。则可以根据上海机房的主服务器数据库中的数据,对北京机房的主服务器数据库中的数据进行同步。
如图8所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤810,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤820,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤830,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
步骤840,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
步骤850,在数据操作包含写操作时,从主服务器中选择具有读写服务的服务器。
步骤860,在数据操作不包含写操作时,从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
步骤870,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
步骤880,在待同步的主服务器有多个时,计算待同步的主服务器的负载。在本实施例中,服务器的负载可以由服务器中服务的被使用数量体现。
步骤890,根据负载由低到高的顺序,确定对待同步的主服务器的同步顺序。在本实施例中,由于进行数据同步也会对主服务器造成一定的压力,所以可以由负载较低的主服务器首先进行同步,负载较高的主服务器需要延迟进行同步,则同时其负载有可能已经降低。
步骤8100,在主服务器具有多个时,根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。
根据图8,某网站在北京机房、上海机房、成都机房分别设置有主服务器,则对于上海机房的主服务器完成写入操作后,其数据库中的数据发生了变更。此时监控北京机房和成都机房两个主服务器中服务的被使用情况,得到北京机房的主服务器的负载程度较低的结果,对北京机房的主服务器数据库中的数据进行同步。
如图9所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤910,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤920,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤930,检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器。在本实施例中,可以通过Haproxy(一种工具)来检测服务器中服务的状态;服务的状态主要考虑服务是否可用,例如可以是服务是否被占用,或服务是否存在故障。
步骤940,判断数据操作对应的数据是否存储在预设的与所选服务器对应的缓存中。
步骤950,在判断结果为是时,对缓存中的数据进行数据操作。
步骤960,在判断结果为否时,执行对所选服务器上的数据存储装置进行数据操作。在本实施例中,合理利用缓存中的数据,可以避免对服务器中数据库进行频繁地操作。
根据图9,某电商网站公布了优惠清单,则当日有大量用户通过该网站页面提交查看优惠商品的请求。对某用户上午发送的查看请求,已经通过商品清单数据库查询到优惠商品,返回给用户同时也存储到缓存中,该用户下午再次进行了查询,则直接从缓存中获取优惠商品数据提供给用户。
如图10所示,本发明的一个实施例中提供给了一种数据操作方法,其包括:
步骤1010,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
步骤1020,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
步骤1030,检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器。在本实施例中,可以通过Haproxy(一种工具)来检测服务器中服务的状态;服务的状态主要考虑服务是否可用,例如可以是服务是否被占用,或服务是否存在故障。
步骤1040,判断数据操作对应的数据是否存储在预设的与所选服务器对应的缓存中。
步骤1050,在判断结果为是时,对缓存中的数据进行数据操作。
步骤1060,在判断结果为否时,执行对所选服务器上的数据存储装置进行数据操作。
步骤1070,如果缓存中的数据发生变化,根据缓存中的数据同步所选服务器中数据库的数据。在本实施例中,及时根据缓存中的数据对服务器数据库进行同步,可以保证数据库中数据的准确性。
根据图10,某网站收集用户的手机号,以进行手机号抽奖活动。其从服务器的数据库中取得记录手机号的表单并保存在缓存中,收集到用户提交的手机号后对缓存中的表单进行写操作,增加用户的手机号。然后可以根据缓存中的表单,对服务器数据库中的表单进行更新。
如图11所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1110,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1120,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1130,检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器。在本实施例中,可以通过Haproxy(一种工具)来检测服务器中服务的状态;服务的状态主要考虑服务是否可用,例如可以是服务是否被占用,或服务是否存在故障。
数据操作执行模块1140,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。根据本实施例的技术方案,在将操作请求分配给服务器集群后,能够根据服务器集群中每个服务器的状态,合理地选择处理操作请求的服务器,从而避免将不适当的服务器用来处理操作请求,以保证可以正常完成数据操作。
根据图11,假设某电商网站吸引了大量的用户,用户通过在网站网页上的一系列操作来请求购买商品。服务端获取购买商品的请求后,检测用于处理购买商品业务的4个服务器组成的服务器集群中每个服务器的服务状态,发现其中1个服务器的服务存在问题,所以从剩余3个服务器中选择1个服务器来处理购买请求,具体服务为在数据库中写入用户的资料以及要购买的商品。
如图12所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1210,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1220,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1230,检测服务器集群中每个服务器的服务的状态。服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务的地址。
来源地址获取模块1240,获取请求的来源的地址。
距离计算模块1250,根据请求的来源的地址以及服务器集群中每个服务器的服务的地址,计算请求的来源与服务器集群中每个服务器之间的距离。
服务器选择模块1230根据距离大小,来从服务器集群中选择服务器。在本实施例中,实际上是就近选择服务器来执行数据操作,这样可以避免距离过远造成的网络延迟和数据丢失的情况。
数据操作执行模块1260,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
根据图12,某考试网站在某日公布考试成绩,则当日有大量考生通过该网站页面提交查询成绩的请求。存储有考试成绩的服务器集群中,包括位于北京、上海两处的服务器。对于某内蒙古考生提交的查询成绩的请求,可根据其IP地址判断其身处内蒙古,距离北京更近,所以由北京的服务器来对考试成绩数据库进行查询。
如图13所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1310,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1320,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1330,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
操作判断模块1340,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
在数据操作包含写操作时,服务器选择模块1330从主服务器中选择具有读写服务的服务器。
在数据操作不包含写操作时,服务器选择模块1330从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
数据操作执行模块1350,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。在本实施例中,从服务器中的数据通常为主服务器数据的备份,所以从服务器不进行写操作以免影响数据的准确性,服务器可以进行读操作以分担主服务器的压力。
如图13所示,某考试网站在某日公布考试成绩,则当日有大量考生通过该网站页面提交查询成绩的请求。对某考生的查询考试成绩的请求,经分析可知仅涉及对考试成绩数据库的读操作,因此可以由预设的一从服务器来处理该请求,从其中的成绩数据库中查询到考生的成绩并发送给考生。
如图14所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1410,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1420,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1430,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
读写分离模块1440,在数据操作为读写操作时,对所述读写操作进行读写分离。因此后续可以针对分离后的操作来选择相应的服务器来执行操作。
操作判断模块1450,对读写分离后的多个数据操作分别进行判断。
在数据操作包含写操作时,服务器选择模块1430从主服务器中选择具有读写服务的服务器。
在数据操作不包含写操作时,服务器选择模块1430从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
数据操作执行模块1460,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。在本实施例中,通过读写分离,可以由不同服务器来分别处理读写操作,有利于合理稳定利用服务器集群的资源。
如图14所示,某网站进行抽奖活动,用户进行抽奖操作后能够得到自己是否抽中的结果,以及当前有哪些用户中奖的结果。用户提交抽奖请求后,分析抽奖请求对应的数据操作包含写操作和只读操作:写操作——执行抽奖策略并在数据库中写入抽奖结果,只读操作——读取数据库中的中奖人记录。由此可知,执行抽奖策略并在数据库中写入抽奖结果可以选择主服务器来执行,读取数据库中的中奖人记录可以由从服务器来执行。
如图15所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1510,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1520,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1530,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
操作判断模块1540,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
在数据操作包含写操作时,服务器选择模块1530从主服务器中选择具有读写服务的服务器。
在数据操作不包含写操作时,服务器选择模块1530从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
数据操作执行模块1550,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
第一同步模块1560,根据主服务器中数据存储装置的数据,同步从服务器中数据存储装置中的数据。在本实施例中,通过主动同步的方式可以及时更新从服务器中的数据,从而保证从服务器中数据等正确性。
根据图15,假设某公司配了一个主服务器和一个从服务器,在主服务器中数据库中进行写操作,导致主服务器数据库中的数据发生变化时进行主从同步,从而保证从服务器数据库中的数据与主服务器数据库的数据一致。
如图16所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1610,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1620,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1630,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
操作判断模块1640,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
在数据操作包含写操作时,服务器选择模块1630从主服务器中选择具有读写服务的服务器。
在数据操作不包含写操作时,服务器选择模块1630从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
数据操作执行模块1650,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
第一负载计算模块1660,在从服务器有多个时,计算从服务器的负载。在本实施例中,服务器的负载可以由服务器中服务的被使用数量体现。
第一同步顺序确定模块1670,根据负载由低到高的顺序,确定对从服务器的同步顺序。在本实施例中,由于进行数据同步也会对从服务器造成一定的压力,所以可以由负载较低的从服务器首先进行同步,负载较高的从服务器需要延迟进行同步,则同时其负载有可能已经降低。
第一同步模块1680,根据主服务器中数据存储装置的数据,同步从服务器中数据存储装置中的数据。
根据图16,假设某公司配了一个主服务器和A、B两个从服务器,在主服务器数据库中进行写操作,导致主服务器数据库中的数据发生变化时进行主从同步。此时监控两个从服务器中服务的被使用情况,得到从服务器A的负载程度较低的结果,则首先进行主服务器与从服务器A的同步,之后进行主服务器与从服务器B的同步。
如图17所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1710,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1720,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1730,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
操作判断模块1740,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
在数据操作包含写操作时,服务器选择模块1730从主服务器中选择具有读写服务的服务器。
在数据操作不包含写操作时,服务器选择模块1740从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
数据操作执行模块1750,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
第二同步模块1760,在主服务器具有多个时,根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。在本实施例的技术方案中,通过实现双主同步,可以保证某台主服务器上的数据一致,避免出现数据错误。
如图17所示,某网站在北京机房、上海机房分别设置有主服务器,则对于上海机房的主服务器完成写入操作后,其数据库中的数据发生了变更。则可以根据上海机房的主服务器数据库中的数据,对北京机房的主服务器数据库中的数据进行同步。
如图18所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1810,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1820,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1830,检测服务器集群中每个服务器的服务的状态。服务器集群中包括主服务器和从服务器,主服务器的服务为读写服务,从服务器的服务为只读服务,服务器集群中每个服务器的服务的状态包括服务器集群中每个服务器的服务是读写服务还是只读服务。
操作判断模块1840,判断数据操作是否包含写操作。在本实施例中,写操作可以是对数据库进行的增删改等操作。
在数据操作包含写操作时,服务器选择模块1830从主服务器中选择具有读写服务的服务器。
在数据操作不包含写操作时,服务器选择模块1840从主服务器中选择具有读写服务的服务器,或从服务器中选择具有只读服务的服务器。
数据操作执行模块1850,调用所选服务器的服务对所选服务器上的数据存储装置进行数据操作。
第二负载计算模块1860,在待同步的主服务器有多个时,计算待同步的主服务器的负载。在本实施例中,服务器的负载可以由服务器中服务的被使用数量体现。
第二同步顺序确定模块1870,根据负载由低到高的顺序,确定对待同步的主服务器的同步顺序。在本实施例中,由于进行数据同步也会对主服务器造成一定的压力,所以可以由负载较低的主服务器首先进行同步,负载较高的主服务器需要延迟进行同步,则同时其负载有可能已经降低。
第二同步模块1880,在主服务器具有多个时,根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。
根据图18,某网站在北京机房、上海机房、成都机房分别设置有主服务器,则对于上海机房的主服务器完成写入操作后,其数据库中的数据发生了变更。此时监控北京机房和成都机房两个主服务器中服务的被使用情况,得到北京机房的主服务器的负载程度较低的结果,对北京机房的主服务器数据库中的数据进行同步。
如图19所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块1910,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群选择模块1920,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块1930,检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器。在本实施例中,可以通过Haproxy(一种工具)来检测服务器中服务的状态;服务的状态主要考虑服务是否可用,例如可以是服务是否被占用,或服务是否存在故障。
缓存判断模块1940,判断数据操作对应的数据是否存储在预设的与所选服务器对应的缓存中。
数据操作执行模块1950,在判断结果为是时,对缓存中的数据进行数据操作;在判断结果为否时,执行对所选服务器上的数据存储装置进行数据操作。在本实施例中,合理利用缓存中的数据,可以避免对服务器中数据库进行频繁地操作。
根据图19,某电商网站公布了优惠清单,则当日有大量用户通过该网站页面提交查看优惠商品的请求。对某用户上午发送的查看请求,已经通过商品清单数据库查询到优惠商品,返回给用户同时也存储到缓存中,该用户下午再次进行了查询,则直接从缓存中获取优惠商品数据提供给用户。
如图20所示,本发明的一个实施例中提供给了一种数据操作装置,其包括:
请求接收模块2010,接收终端发送的进行数据操作的请求。在本实施例中,数据操作可以是任何类型的数据操作。
服务器集群模块2020,为操作请求选择服务器集群,服务器集群中每个服务器上均具有适于进行数据操作的数据存储装置和服务。在本实施例中,数据存储装置包括但不限于数据库,数据库可以基于Mysql(关系型数据库管理系统)等来实现;服务可以是能够完成数据操作的任何服务。在本实施例中,可以基于LVS(Linux虚拟服务器)为服务器集群提供一个对应整个服务器集群的虚拟IP地址,来响应操作请求。
服务器选择模块2030,检测服务器集群中每个服务器的服务的状态,根据检测结果从服务器集群中选择服务器。在本实施例中,可以通过Haproxy(一种工具)来检测服务器中服务的状态;服务的状态主要考虑服务是否可用,例如可以是服务是否被占用,或服务是否存在故障。
缓存判断模块2040,判断数据操作对应的数据是否存储在预设的与所选服务器对应的缓存中。
数据操作执行模块2050,在判断结果为是时,对缓存中的数据进行数据操作;在判断结果为否时,执行对所选服务器上的数据存储装置进行数据操作。
第三同步模块2060,如果缓存中的数据发生变化,根据缓存中的数据同步所选服务器中数据库的数据。在本实施例中,及时根据缓存中的数据对服务器数据库进行同步,可以保证数据库中数据的准确性。
根据图20,某网站收集用户的手机号,以进行手机号抽奖活动。其从服务器的数据库中取得记录手机号的表单并保存在缓存中,收集到用户提交的手机号后对缓存中的表单进行写操作,增加用户的手机号。然后可以根据缓存中的表单,对服务器数据库中的表单进行更新。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据操作装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
A1、一种数据操作方法,其包括:
接收终端发送的进行数据操作的请求;
为所述操作请求选择服务器集群,所述服务器集群中每个服务器上均具有适于进行所述数据操作的数据存储装置和服务;
检测所述服务器集群中每个服务器的服务的状态,根据检测结果从所述服务器集群中选择服务器;
调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作。
A2、根据A1所述的方法,其中,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务的地址;
根据检测结果从所述服务器集群中选择服务器,具体包括:
获取所述请求的来源的地址;
根据所述请求的来源的地址以及所述服务器集群中每个服务器的服务的地址,计算所述请求的来源与所述服务器集群中每个服务器之间的距离;
根据距离大小,来从所述服务器集群中选择服务器。
A3、根据A1所述的方法,其中,所述服务器集群中包括主服务器和从服务器,所述主服务器的服务为读写服务,所述从服务器的服务为只读服务,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务是读写服务还是只读服务;
根据检测结果从所述服务器集群中选择服务器,具体包括:
判断所述数据操作是否包含写操作;
在所述数据操作包含写操作时,从所述主服务器中选择具有读写服务的服务器;
在所述数据操作不包含写操作时,从所述主服务器中选择具有读写服务的服务器,或从所述从服务器中选择具有只读服务的服务器。
A4、根据A3所述的方法,其中,在判断所述数据操作是否包含写操作之前,还包括:
在所述数据操作为读写操作时,对所述读写操作进行读写分离;
判断所述数据操作是否包含写操作,具体包括:
对读写分离后的多个数据操作分别进行判断。
A5、根据A3所述的方法,其中,还包括:
根据所述主服务器中数据存储装置的数据,同步所述从服务器中数据存储装置中的数据。
A6、根据A5所述的方法,其中,在根据所述主服务器中数据存储装置的数据,同步所述从服务器中数据存储装置中的数据之前,还包括:
在所述从服务器有多个时,计算所述从服务器的负载;
根据所述负载由低到高的顺序,确定对所述从服务器的同步顺序。
A7、根据A3所述的方法,其中,所述主服务器的数量为多个,所述方法还包括:
根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。
A8、根据A7所述的方法,其中,在根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据之前,还包括:
在待同步的主服务器有多个时,计算所述待同步的主服务器的负载;
根据所述负载由低到高的顺序,确定对所述待同步的主服务器的同步顺序。
A9、根据A1至A8中任一项所述的方法,其中,在调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作之前,还包括:
判断所述数据操作对应的数据是否存储在预设的与所述所选服务器对应的缓存中;
在判断结果为是时,对所述缓存中的数据进行所述数据操作;
所述方法还包括:在判断结果为否时,执行对所选服务器上的数据存储装置进行所述数据操作。
A10、根据A9所述的方法,其中,在对所述缓存中的数据进行所述数据操作之后,还包括:
如果所述缓存中的数据发生变化,根据所述缓存中的数据同步所述所选服务器中数据库的数据。
A11、一种数据操作装置,其包括:
请求接收模块,用于接收终端发送的进行数据操作的请求;
服务器集群选择模块,用于为所述操作请求选择服务器集群,所述服务器集群中每个服务器上均具有适于进行所述数据操作的数据存储装置和服务;
服务器选择模块,用于检测所述服务器集群中每个服务器的服务的状态,根据检测结果从所述服务器集群中选择服务器;
数据操作执行模块,用于调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作。
A12、根据A11所述的装置,其中,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务的地址;所述装置还包括:
来源地址获取模块,用于获取所述请求的来源的地址;
距离计算模块,用于根据所述请求的来源的地址以及所述服务器集群中每个服务器的服务的地址,计算所述请求的来源与所述服务器集群中每个服务器之间的距离;
所述服务器选择模块根据距离大小,来从所述服务器集群中选择服务器。
A13、根据A11所述的装置,其中,所述服务器集群中包括主服务器和从服务器,所述主服务器的服务为读写服务,所述从服务器的服务为只读服务,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务是读写服务还是只读服务;所述装置还包括:
操作判断模块,用于判断所述数据操作是否包含写操作;
在所述数据操作包含写操作时,所述服务器选择模块从所述主服务器中选择具有读写服务的服务器;
在所述数据操作不包含写操作时,所述服务器选择模块从所述主服务器中选择具有读写服务的服务器,或从所述从服务器中选择具有只读服务的服务器。
A14、根据A13所述的装置,其中,还包括:
读写分离模块,用于在所述数据操作为读写操作时,对所述读写操作进行读写分离;
所述操作判断模块对读写分离后的多个数据操作分别进行判断。
A15、根据A13所述的装置,其中,还包括:
第一同步模块,用于根据所述主服务器中数据存储装置的数据,同步所述从服务器中数据存储装置中的数据。
A16、根据A15所述的装置,其中,还包括:
第一负载计算模块,用于在所述从服务器有多个时,计算所述从服务器的负载;
第一同步顺序确定模块,用于根据所述负载由低到高的顺序,确定对所述从服务器的同步顺序。
A17、根据A13所述的装置,其中,所述主服务器的数量为多个,所述装置包括:
第二同步模块,用于根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。
A18、根据A17所述的装置,其中,还包括:
第二负载计算模块,用于在待同步的主服务器有多个时,计算所述待同步的主服务器的负载;
第二同步顺序确定模块,用于根据所述负载由低到高的顺序,确定对所述待同步的主服务器的同步顺序。
A19、根据A11至A18中任一项所述的装置,其中,还包括:
缓存判断模块,用于判断所述数据操作对应的数据是否存储在预设的与所述所选服务器对应的缓存中;
在判断结果为是时,所述缓存操作模块对所述缓存中的数据进行所述数据操作;
在判断结果为否时,所述操作执行模块执行对所选服务器上的数据存储装置进行所述数据操作。
20、根据权利要求11所述的装置,其中,还包括:
第三同步模块,用于如果所述缓存中的数据发生变化,根据所述缓存中的数据同步所述所选服务器中数据库的数据。
Claims (18)
1.一种数据操作方法,其包括:
接收终端发送的进行数据操作的请求;
为所述操作请求选择服务器集群,所述服务器集群中每个服务器上均具有适于进行所述数据操作的数据存储装置和服务;
检测所述服务器集群中每个服务器的服务的状态,根据检测结果从所述服务器集群中选择服务器;
调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作;
其中,所述服务器集群中包括主服务器和从服务器,所述方法还包括:
在所述从服务器有多个时,计算所述从服务器的负载;
根据所述负载由低到高的顺序,确定对所述从服务器的同步顺序。
2.根据权利要求1所述的方法,其中,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务的地址;
根据检测结果从所述服务器集群中选择服务器,具体包括:
获取所述请求的来源的地址;
根据所述请求的来源的地址以及所述服务器集群中每个服务器的服务的地址,计算所述请求的来源与所述服务器集群中每个服务器之间的距离;
根据距离大小,来从所述服务器集群中选择服务器。
3.根据权利要求1所述的方法,所述主服务器的服务为读写服务,所述从服务器的服务为只读服务,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务是读写服务还是只读服务;
根据检测结果从所述服务器集群中选择服务器,具体包括:
判断所述数据操作是否包含写操作;
在所述数据操作包含写操作时,从所述主服务器中选择具有读写服务的服务器;
在所述数据操作不包含写操作时,从所述主服务器中选择具有读写服务的服务器,或从所述从服务器中选择具有只读服务的服务器。
4.根据权利要求3所述的方法,其中,在判断所述数据操作是否包含写操作之前,还包括:
在所述数据操作为读写操作时,对所述读写操作进行读写分离;
判断所述数据操作是否包含写操作,具体包括:
对读写分离后的多个数据操作分别进行判断。
5.根据权利要求3所述的方法,其中,还包括:
根据所述主服务器中数据存储装置的数据,同步所述从服务器中数据存储装置中的数据。
6.根据权利要求3所述的方法,其中,所述主服务器的数量为多个,所述方法还包括:
根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。
7.根据权利要求6所述的方法,其中,在根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据之前,还包括:
在待同步的主服务器有多个时,计算所述待同步的主服务器的负载;
根据所述负载由低到高的顺序,确定对所述待同步的主服务器的同步顺序。
8.根据权利要求1至7中任一项所述的方法,其中,在调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作之前,还包括:
判断所述数据操作对应的数据是否存储在预设的与所述所选服务器对应的缓存中;
在判断结果为是时,对所述缓存中的数据进行所述数据操作;
所述方法还包括:在判断结果为否时,执行对所选服务器上的数据存储装置进行所述数据操作。
9.根据权利要求8所述的方法,其中,在对所述缓存中的数据进行所述数据操作之后,还包括:
如果所述缓存中的数据发生变化,根据所述缓存中的数据同步所述所选服务器中数据库的数据。
10.一种数据操作装置,其包括:
请求接收模块,用于接收终端发送的进行数据操作的请求;
服务器集群选择模块,用于为所述操作请求选择服务器集群,所述服务器集群中每个服务器上均具有适于进行所述数据操作的数据存储装置和服务;
服务器选择模块,用于检测所述服务器集群中每个服务器的服务的状态,根据检测结果从所述服务器集群中选择服务器;
数据操作执行模块,用于调用所选服务器的服务对所述所选服务器上的数据存储装置进行所述数据操作;
其中,所述服务器集群中包括主服务器和从服务器,所述装置还包括:
第一负载计算模块,用于在所述从服务器有多个时,计算所述从服务器的负载;
第一同步顺序确定模块,用于根据所述负载由低到高的顺序,确定对所述从服务器的同步顺序。
11.根据权利要求10所述的装置,其中,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务的地址;所述装置还包括:
来源地址获取模块,用于获取所述请求的来源的地址;
距离计算模块,用于根据所述请求的来源的地址以及所述服务器集群中每个服务器的服务的地址,计算所述请求的来源与所述服务器集群中每个服务器之间的距离;
所述服务器选择模块根据距离大小,来从所述服务器集群中选择服务器。
12.根据权利要求10所述的装置,所述主服务器的服务为读写服务,所述从服务器的服务为只读服务,所述服务器集群中每个服务器的服务的状态包括所述服务器集群中每个服务器的服务是读写服务还是只读服务;所述装置还包括:
操作判断模块,用于判断所述数据操作是否包含写操作;
在所述数据操作包含写操作时,所述服务器选择模块从所述主服务器中选择具有读写服务的服务器;
在所述数据操作不包含写操作时,所述服务器选择模块从所述主服务器中选择具有读写服务的服务器,或从所述从服务器中选择具有只读服务的服务器。
13.根据权利要求12所述的装置,其中,还包括:
读写分离模块,用于在所述数据操作为读写操作时,对所述读写操作进行读写分离;
所述操作判断模块对读写分离后的多个数据操作分别进行判断。
14.根据权利要求12所述的装置,其中,还包括:
第一同步模块,用于根据所述主服务器中数据存储装置的数据,同步所述从服务器中数据存储装置中的数据。
15.根据权利要求12所述的装置,其中,所述主服务器的数量为多个,所述装置包括:
第二同步模块,用于根据一个主服务器上数据存储装置中的数据,同步另一主服务器上数据存储装置中的数据。
16.根据权利要求15所述的装置,其中,还包括:
第二负载计算模块,用于在待同步的主服务器有多个时,计算所述待同步的主服务器的负载;
第二同步顺序确定模块,用于根据所述负载由低到高的顺序,确定对所述待同步的主服务器的同步顺序。
17.根据权利要求10至16中任一项所述的装置,其中,还包括:
缓存判断模块,用于判断所述数据操作对应的数据是否存储在预设的与所述所选服务器对应的缓存中;
在判断结果为是时,所述缓存操作模块对所述缓存中的数据进行所述数据操作;
在判断结果为否时,所述操作执行模块执行对所选服务器上的数据存储装置进行所述数据操作。
18.根据权利要求17所述的装置,其中,还包括:
第三同步模块,用于如果所述缓存中的数据发生变化,根据所述缓存中的数据同步所述所选服务器中数据库的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410738454.9A CN104468777B (zh) | 2014-12-05 | 2014-12-05 | 数据操作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410738454.9A CN104468777B (zh) | 2014-12-05 | 2014-12-05 | 数据操作方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468777A CN104468777A (zh) | 2015-03-25 |
CN104468777B true CN104468777B (zh) | 2018-01-23 |
Family
ID=52914129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410738454.9A Expired - Fee Related CN104468777B (zh) | 2014-12-05 | 2014-12-05 | 数据操作方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468777B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104993953B (zh) * | 2015-06-19 | 2019-02-26 | 北京奇虎科技有限公司 | 检测网络服务状态的方法和装置 |
CN105162623B (zh) * | 2015-08-12 | 2019-01-25 | 深圳市瑞驰信息技术有限公司 | 一种云处理方法及云服务器 |
CN105404646A (zh) * | 2015-10-28 | 2016-03-16 | 无锡澳优汇国际贸易有限公司 | 动态数据的多数据库处理查询系统与方法 |
CN105589960A (zh) * | 2015-12-22 | 2016-05-18 | 北京奇虎科技有限公司 | 基于多个数据库集群的数据请求处理方法及装置 |
CN105430105B (zh) * | 2016-01-05 | 2019-01-18 | 北京卓识达软件有限公司 | 一种车载终端的数据处理方法及系统 |
CN106302710B (zh) * | 2016-08-12 | 2019-05-07 | 广州华多网络科技有限公司 | 应用处理方法和系统 |
CN108334520A (zh) * | 2017-01-19 | 2018-07-27 | 北京京东尚科信息技术有限公司 | 社交网络数据处理方法、装置、存储介质及电子设备 |
CN109218349A (zh) * | 2017-06-29 | 2019-01-15 | 北京微影时代科技有限公司 | 一种管理服务器集群的方法及装置 |
CN108762917A (zh) * | 2018-05-04 | 2018-11-06 | 平安科技(深圳)有限公司 | 访问请求处理方法、装置、系统、计算机设备和存储介质 |
CN110225087A (zh) * | 2019-05-08 | 2019-09-10 | 平安科技(深圳)有限公司 | 基于全局负载均衡的云存取方法、装置及存储介质 |
CN112169341B (zh) * | 2020-09-29 | 2022-02-25 | 苏州亿歌网络科技有限公司 | 一种游戏数据处理的方法、装置、设备及存储介质 |
CN113419767B (zh) * | 2021-06-22 | 2022-07-26 | 浪潮通用软件有限公司 | 一种通过移动端更新Linux服务器内应用的方法、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960175A (en) * | 1996-04-01 | 1999-09-28 | Advanced Micro Devices, Inc. | Identification and selection of a desired server from a plurality of servers of varying protocols on the same network via a single boot ROM |
CN1585357A (zh) * | 2003-08-19 | 2005-02-23 | 华为技术有限公司 | 一种在网络中选择服务器的方法 |
CN102053982A (zh) * | 2009-11-02 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种数据库信息管理方法和设备 |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN102447624A (zh) * | 2011-11-23 | 2012-05-09 | 成都市华为赛门铁克科技有限公司 | 在服务器集群上实现负载均衡的方法、节点服务器及集群 |
CN102624919A (zh) * | 2012-03-30 | 2012-08-01 | 电子科技大学 | 一种面向服务架构的分布式业务集成系统及其应用方法 |
-
2014
- 2014-12-05 CN CN201410738454.9A patent/CN104468777B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960175A (en) * | 1996-04-01 | 1999-09-28 | Advanced Micro Devices, Inc. | Identification and selection of a desired server from a plurality of servers of varying protocols on the same network via a single boot ROM |
CN1585357A (zh) * | 2003-08-19 | 2005-02-23 | 华为技术有限公司 | 一种在网络中选择服务器的方法 |
CN102053982A (zh) * | 2009-11-02 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种数据库信息管理方法和设备 |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN102447624A (zh) * | 2011-11-23 | 2012-05-09 | 成都市华为赛门铁克科技有限公司 | 在服务器集群上实现负载均衡的方法、节点服务器及集群 |
CN102624919A (zh) * | 2012-03-30 | 2012-08-01 | 电子科技大学 | 一种面向服务架构的分布式业务集成系统及其应用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104468777A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104468777B (zh) | 数据操作方法和装置 | |
CN107957957B (zh) | 测试用例的获取方法和装置 | |
US20190102348A1 (en) | Page Resource Placement Method and Apparatus | |
CN106484606A (zh) | 一种代码提交方法和设备 | |
US20140325480A1 (en) | Software Regression Testing That Considers Historical Pass/Fail Events | |
CN108647141A (zh) | 自动测试方法、装置、计算机可读介质及电子设备 | |
US20160042116A1 (en) | Apparatus and method for generating test cases for processor verification, and verification device | |
CN107908548A (zh) | 一种生成测试用例的方法和装置 | |
CN109542757A (zh) | 接口测试环境确定方法、装置、电子设备及存储介质 | |
CN107644100A (zh) | 信息处理方法、装置以及系统和计算机可读存储介质 | |
CN105574041B (zh) | 一种数据重组方法和装置 | |
CN109564535A (zh) | 云计算架构中的计算资源泄漏的检测 | |
CN107784230B (zh) | 页面漏洞的修复方法及装置 | |
US20190180252A1 (en) | Method and device for detecting fund transaction route in electronic payment process | |
CN108009223A (zh) | 一种交易数据的一致性检测方法及装置 | |
CN114153822A (zh) | 一种数据迁移方法、装置、电子设备及存储介质 | |
Bjørndal et al. | Migration from monolith to microservices: Benchmarking a case study | |
JP2024502516A (ja) | データ注釈方法、装置、システム、デバイスおよび記憶媒体 | |
CN106959872A (zh) | 应用上线方法和装置 | |
US20170068931A1 (en) | Method and system for providing continuous reference architecture and bill of material modeling | |
CN109828902A (zh) | 接口参数确定方法、装置、电子设备及存储介质 | |
CN109492149A (zh) | 爬虫任务处理方法及装置 | |
CN110019201A (zh) | 一种生成结构化数据的方法、装置及系统 | |
CN104572921B (zh) | 一种跨数据中心的数据同步方法和装置 | |
CN110910108A (zh) | 一种数据关联方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180123 Termination date: 20211205 |
|
CF01 | Termination of patent right due to non-payment of annual fee |