一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库系统、服务器及存储介质的制作方法

2021-11-05 20:56:00 来源:中国专利 TAG:


1.本技术实施例涉及数据库技术领域,特别涉及一种数据库系统、服务器及存储介质。


背景技术:

2.数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内、有组织、可共享、统一管理的大量数据的集合。物联网中的数据库通常需要具备数据完整且能够实时查询的条件,为了防止数据库异常导致数据丢失且无法查询数据,开发人员通常将数据库部署在高可用性的数据库系统中。
3.相关技术中,高可用性数据库系统的工作方式要包括主从方式,即主机正常工作时通过共享存储系统将数据备份至备用机,当主机异常时,备用机接管主机的工作,当主机恢复正常时,备用机恢复待机监控状态;多活方式,即控制器将数据处理任务分配至一台主机,当该主机异常时,控制器将任务分配至其它主机。
4.然而,相关技术中的数据库系统,若仅包含一台主机,则数据库读写数据效率低,且主机异常恢复后,完善数据所需时间较长,同样会降低数据处理效率;若包含多台主机,则需要设置控制器判断各个主机的工作状态,成本高且异常上报效率受限。


技术实现要素:

5.本技术实施例提供了一种数据库系统、服务器及存储介质。所述技术方案如下:
6.一方面,本技术实施例提供了一种数据库系统,所述数据库系统包括:至少两个数据库服务器和负载均衡器,所述至少两个数据库服务器互为关联数据库服务器且存储的数据相同;
7.所述负载均衡器,用于向所述数据库服务器发送数据写入请求,所述数据写入请求中包含目标数据;
8.所述数据库服务器,用于依据接收到的所述数据写入请求存储所述目标数据;
9.所述数据库服务器,还用于将所述目标数据发送至消息队列中的关联分组,所述关联分组为所述关联数据库服务器对应的分组;
10.所述数据库服务器,还用于提取所述消息队列目标分组中的队列数据,并存储所述队列数据,所述队列数据由所述关联数据库服务器发送至所述目标分组,所述目标分组为所述数据库服务器对应的分组。
11.另一方面,本技术实施例提供了一种服务器,所述服务器包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的数据库系统中数据库服务器或负载均衡器的功能。
12.另一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所
述的数据库系统中数据库服务器或负载均衡器的功能。
13.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该服务器实现上述方面的各种可选实现方式中提供的数据库系统中数据库服务器或负载均衡器的功能。
14.本技术实施例提供的技术方案带来的有益效果至少包括:
15.本技术实施例中,数据库系统的各个数据库服务器均具有数据写入能力,并且数据库服务器在存储目标数据的同时,相互之间通过消息队列自动进行数据同步,使数据库系统中各个数据库服务器所存储的数据相同,提高了数据写入效率以及数据库系统的安全性和高可用性;负载均衡器只需随机向一个数据库服务器发送数据写入请求,即可实现数据同步,无需在每一次发送数据请求前监控各个数据库服务器的运行状态,降低了负载均衡器的负担,无需设置额外的控制器,能够满足各种类型的数据库对于高可用性的需求。
附图说明
16.图1是本技术一个示例性实施例提供的实施环境的示意图;
17.图2是本技术一个示例性实施例提供的数据写入的流程图;
18.图3是本技术另一个示例性实施例提供的数据写入的流程图;
19.图4是本技术一个示例性实施例提供的数据库修改的流程图;
20.图5是本技术一个示例性实施例提供的数据读取的流程图;
21.图6是本技术另一个示例性实施例提供的数据写入的流程图;
22.图7是本技术一个示例性实施例提供的同步器进行数据写入的流程图;
23.图8是本技术另一个示例性实施例提供的数据写入的流程图;
24.图9是本技术另一个示例性实施例提供的数据读取的流程图;
25.图10是本技术另一个示例性实施例提供的服务器的结构框图。
具体实施方式
26.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
27.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
28.相关技术中,高可用性数据库系统的工作方式要包括主从方式,即主机正常工作时通过共享存储系统将数据备份至备用机,当主机异常时,备用机接管主机的工作,当主机恢复正常时,备用机恢复待机监控状态;多活方式,即控制器将数据处理任务分配至一台主机,当该主机异常时,控制器将任务分配至其它主机;共享存储方式,对于关系型数据库管理系统(my structured query language,mysql),在共享磁盘中存储mysql数据库的二进制日志(binlog)文件,当主服务器宕机时,备用机通过binlog文件获取数据,并作为主服务器进行数据的读写工作。
29.然而,相关技术中的数据库系统,若仅包含一台主机,则数据库读写数据效率低,且主机异常恢复后,完善数据所需时间较长,同样会降低数据处理效率;若包含多台主机,则需要设置控制器判断各个主机的工作状态,成本高且异常上报效率受限;或者,主服务器与备用服务器之间需要通过特殊的文件实现数据共享,无法适用于其它类型的数据库系统。
30.为了解决上述问题,本技术实施例提供了一种数据库系统,该数据库系统的结构如图1所示。
31.负载均衡器110用于接收数据读写请求、数据库修改指令等,并将接收到的请求和指令随机发送至数据库系统中的任意一个数据库服务器。其中,对于数据读取请求,若负载均衡器110确定接收到数据读写请求的数据库服务器存在异常,无法进行数据读取,则负载均衡器110将数据读写请求发送至数据库系统中的其它数据库服务器。
32.数据库服务器120、数据库服务器130和数据库服务器140之间互为关联数据库服务器,用于读写数据、进行数据库修改以及实现数据库之间的数据同步等。在一种可能的实施方式中,当其中一台数据库服务器接收到数据写入请求时,在完成数据写入后,将目标数据发送至消息队列,各个数据库服务器通过访问消息队列,提取其它数据库服务器所存放的数据,并写入数据库中。对于数据库修改指令,当一台数据库服务器接收到该数据库修改指令后,在执行该指令的同时,将该指令转发至其它数据库服务器中,以使得数据库系统中的各个数据块服务器进行同样的修改,保证数据库的一致性。
33.相较于相关技术中提供的数据库系统,本技术实施例中的数据库服务器在存储目标数据的同时,相互之间通过消息队列自动进行数据同步,使数据库系统中各个数据库服务器所存储的数据相同,提高了数据写入效率以及数据库系统的安全性和高可用性;负载均衡器只需随机向一个数据库服务器发送数据写入请求,即可实现数据同步,无需在每一次发送数据请求前监控各个数据库服务器的运行状态,降低了负载均衡器的负担,无需设置额外的控制器,能够满足各种类型的数据库对于高可用性的需求。
34.请参考图2,其示出了本技术一个实施例提供的数据库系统写入数据时的交互流程图,该流程包括:
35.步骤201,负载均衡器向数据库服务器发送数据写入请求,数据写入请求中包含目标数据。
36.其中,负载均衡器是用于接收数据写入请求以及其它请求、指令(例如数据读取请求、数据库修改请求)等,并反馈请求响应的服务器。负载均衡器与物联网设备、物联网用户的计算机设备或者负责采集数据的计算机设备,以及数据库服务器相连。
37.为了提高数据库系统的高可用性,避免在一台或几台数据库服务器发生异常时,由于运维人员无法及时到达异常服务器所在地进行维修而导致数据丢失和无法读取数据的情况,在一种可能的实施方式中,数据库系统包含至少两个数据库服务器,且该数据库系统中的各个数据库服务器之间互为关联数据库服务器,每个数据库服务器中数据库所存储的数据相同,从而避免在一台数据库服务器宕机时导致数据丢失的情况。
38.对于一个数据写入请求,负载均衡器只需将其发送至一个数据库服务器,或者部分数据库服务器,无需将数据写入请求转发至数据库系统中的所有数据库服务器。
39.可选的,负载均衡器按照一定的循环顺序依次将接收到的数据写入请求发送至数
据库服务器,例如,数据库系统中包含三个数据库服务器,分别为数据库服务器a、数据库服务器b和数据库服务器c,若负载均衡器将当前接收到的数据写入请求发送至数据库服务器a,则在下一次接收到数据写入请求时将其发送至数据库服务器b,并按照数据库服务器a、数据库服务器b和数据库服务器c、数据库服务器a的顺序循环发送数据写入请求以及其它请求或指令;或者,负载均衡器将接收到的数据写入请求随机发送至一个数据库服务器,开发人员在负载均衡器的程序代码中设置请求分配参数,使得负载均衡器向各个数据库服务器发送数据写入请求的概率相同,从而平均分配数据库服务器的工作量,提高数据存储效率。本技术实施例对此不作限定。
40.步骤202,数据库服务器依据接收到的数据写入请求存储目标数据。
41.数据库服务器分别依据接收到的数据写入请求进行数据存储,例如,数据库服务器a接收到包含目标数据a的数据写入请求,则将目标数据a存储在数据库中,数据库服务器b接收到包含目标数据b的数据写入请求,则将目标数据b存储在数据库中。
42.步骤203,数据库服务器将目标数据存放至消息队列(message queue,mq)中的关联分组,关联分组为关联数据库服务器对应的分组。
43.本技术实施例所提供的数据库系统是一种多活高可用的系统,为了提高数据库系统的高可用性,需要保证各个数据库服务器所存储的数据一致,以使得数据库系统中任何一个数据库服务器宕机时,其它的数据库服务器依然存储有完整数据且能够继续进行数据读写。
44.在一种可能的实施方式中,数据库服务器之间利用消息队列实现数据同步。消息队列是在消息传输过程中保存消息的容器,数据库服务器把要传输的数据(消息)放在队列中,用队列机制来实现消息传递。为了便于数据同步,本技术实施例中的消息队列被划分为n个分组,n为数据库系统中数据库服务器的个数,各个数据库服务器都对应有一个消息队列的分组。数据库服务器对目标数据进行存储后,将目标数据存放至关联数据库服务器对应的消息队列分组,即关联分组。
45.示意性的,消息队列存储独立于负载均衡器和数据库服务器以外的服务器中。
46.示意性的,数据库系统中包含数据库服务器a、数据库服务器b和数据库服务器c,数据库服务器a在接受到数据写入请求,并将目标数据存储至数据库之后,再将目标数据存放至消息队列中数据库服务器b和数据库服务器c对应的分组,以使得数据库服务器b和数据库服务器c后续提取目标数据进行存储,从而实现数据库系统中所有的数据库服务器都存储有该目标数据。
47.步骤204,数据库服务器提取消息队列目标分组中的队列数据,并存储队列数据,队列数据由关联数据库服务器存放至目标分组,目标分组为数据库服务器对应的分组。
48.在一种可能的实施方式中,数据库服务器主动访问消息队列的目标分组,查看是否存在队列数据,若存在,则将队列数据提取并存储至数据库中。
49.值得一提的是,步骤204与步骤202和203为并列关系,即数据库服务器在存储目标数据并将目标数据存放至消息队列的同时,能够将消息队列中的队列数据提取并存储至数据库。
50.综上所述,本技术实施例中,数据库系统的各个数据库服务器均具有数据写入能力,并且数据库服务器在存储目标数据的同时,相互之间通过消息队列自动进行数据同步,
使数据库系统中各个数据库服务器所存储的数据相同,提高了数据写入效率以及数据库系统的安全性和高可用性;负载均衡器只需随机向一个数据库服务器发送数据写入请求,即可实现数据同步,无需在每一次发送数据请求前监控各个数据库服务器的运行状态,降低了负载均衡器的负担,无需设置额外的控制器,能够满足各种类型的数据库对于高可用性的需求。
51.在一种可能的实施方式中,数据库服务器包括同步器和数据库,从而使数据库服务器实现数据存储和数据同步。图3示出了本技术一个实施例提供的数据库系统写入数据时的交互流程图,该流程包括:
52.步骤301,负载均衡器向同步器发送数据写入请求,数据写入请求中包含目标数据。
53.在一种可能的实施方式中,负载均衡器与数据库服务器中的同步器进行通信,向同步器发送数据写入请求。
54.步骤301的具体实施方式可以参考上述步骤201,本技术实施例在此不再赘述。
55.步骤302,同步器接收数据写入请求,并将目标数据发送至数据库。
56.步骤303,同步器启动计时器。
57.在一种可能的实施方式中,同步器依据数据写入请求确定目标数据,并将目标数据发送至数据库,使数据库进行数据存储。为了监测数据库是否存在异常,同步器在执行步骤302的同时,执行步骤303启动计时器,开始计时,并在计时器时长内获取数据库对目标数据的存储情况,若能够得到数据库的正常反馈,则数据库无异常,同步器可以继续执行后续步骤,若未能在计时器时长内得到数据库的正常反馈,或者获取到数据库的异常反馈,则确定数据库异常。
58.步骤304,数据库存储目标数据。
59.数据库正常工作时,能够接收同步器发送的目标数据并进行存储。若数据库异常,则无法接收同步器发送的目标数据,或者无法对目标数据进行存储。
60.步骤305,数据库在完成对目标数据的存储后,向同步器发送已存储消息。
61.在一种可能的实施方式中,数据库正常写入数据之后,通知同步器,从而使同步器确定数据库正常而继续进行数据处理。数据库在完成对目标数据的存储后,立即向同步器发送已存储消息。
62.在另一种可能的实施方式中,若数据库无法存储目标数据,则向同步器发送存储失败的消息,使同步器及时得知数据库存在异常。
63.步骤306,同步器在接收到已存储消息后,将目标数据存放至关联分组。
64.在一种可能的实施方式中,若同步器在计时器达到计时器时长之前接收到已存储消息,则确定数据库正常,已成功存储目标数据,因此只需将目标数据存放至关联分组,以便关联服务器对应的同步器提取目标数据,从而完成目标数据在数据库系统中各个数据库服务器的写入。
65.为了便于同步器正确存放和提取数据,在一种可能的实施方式中,数据库服务器中存储有配置文件,该配置文件中包含数据库服务器和关联数据库服务器的配置信息,即数据库系统中所有数据库服务器的配置信息。其中,配置信息包括服务器标识、服务器端口、分组标识、分组端口中的至少一种,且服务器标识与服务器端口一一对应,分组标识与
分组端口一一对应。数据库服务器在进行数据读写工作之前存储该配置文件。
66.基于上述配置文件所包含的信息,步骤306还包括如下步骤:
67.步骤306a,同步器依据配置文件中关联数据库服务器对应的分组标识确定关联分组端口,并通过关联分组端口将目标数据存放至关联分组。
68.在一种可能的实施方式中,配置文件中包含各个数据库服务器的服务器标识、对应分组的分组标识和分组端口。同步器基于服务器标识和分组标识,查询得到关联分组的关联分组端口,从而通过关联分组端口与消息队列所在的服务器进行通信,将目标数据存放至关联分组。
69.步骤307,当计时器达到计时器时长,且未接收到已存储消息时,同步器确定数据库处于异常状态,并将目标数据存放至关联分组和目标分组。
70.若计时器达到计时器时长,同步器仍未接收到已存储消息,则同步器确定数据库处于异常状态,此时不仅需要将目标数据存放至关联分组,使得关联服务器对目标数据进行存储,还需要将目标数据存放至目标分组,方便后续数据库恢复正常后,从目标分组中获取未能写入的目标数据,进行数据恢复。通过这种方式进行数据写入,无需控制器判断各个数据库服务器的状态,数据库服务器之间能够实现数据自动备份。
71.可选的,当计时器达到计时器时长,且未接收到已存储消息时,同步器确定数据库处于异常状态;当计时器达到计时器时长,且接收到存储失败的消息时,同步器确定数据库处于异常状态。
72.在一种可能的实施方式中,目标分组中存储有关联数据库服务器所存放的队列数据,和/或数据库异常期间同步器所存放的目标数据,在数据库处于正常状态时,数据库需要将目标分组中的数据进行存储。本技术实施例中的数据写入流程还包括如下步骤:
73.步骤一,同步器在数据库未处于异常状态时,提取目标分组中的队列数据,并将队列数据发送至数据库。
74.可选的,同步器实时将接收到的数据写入请求中包含的目标数据发送至数据库,并通过监测计时器时长内是否接收到已存储消息判断数据库是否异常,若数据库异常则仍将目标数据存放至目标分许,若正常则将目标分组中的队列数据发送至数据库;或者,同步器在确定数据库异常后,直接将目标数据存放至目标分组,并每隔预定时长将目标分组中的队列数据发送至服务器,以判断是否恢复正常。
75.基于配置文件中的信息,在一种可能的实施方式中,步骤一包括:同步器通过配置文件中目标分组对应的目标分组端口提取队列数据。
76.同步器利用配置文件查询自身所在数据库服务器对应的目标分组以及目标分组端口,并通过目标分组端口与消息队列所在的服务器进行通信,将目标分组中包含的队列数据进行提取,并发送至数据库。
77.步骤二,数据库存储队列数据。
78.步骤三,数据库在完成对队列数据的存储后,向同步器发送已存储消息。
79.为了便于同步器及时得知数据库是否存在异常,数据库在成功存储队列数据后,同样需要向同步器发送已存储消息。若同步器在计时器时长内未接收到数据库发送的已存储消息,则确定数据库存在异常,需要将队列数据存放回目标分组中;若数据库在计时器时长内接收到已存储消息,则确定队列数据已被数据库存储。
80.在一种可能的实施方式中,当同步器确定数据库存在异常时,通过负载均衡器向对应运维人员的计算机设备发送异常警告,或者数据库服务器直接向计算机设备发送异常警告,以通知运维人员及时处理异常。
81.本技术实施例中,同步器通过检测计时器时长内是否接受到数据库成功存储目标数据的反馈,判断数据库是否存在异常,并在确定数据库异常时将目标数据存放至消息队列中的关联分组和目标分组,使得关联数据库服务器能够存储目标数据,并在数据库恢复正常后能够通过存储目标分组中的队列数据自动进行数据恢复,提高了数据库系统的高可用性,避免异常情况下数据丢失。
82.上述实施例说明了本技术中数据库系统在进行数据写入时的流程,当负载均衡器接收到数据库修改指令时,同样需要数据库系统中的每一个数据库服务器都进行同样的修改,才能够保证各个数据库所存储的数据一致。图4示出了本技术一个实施例提供的数据库系统进行数据库修改操作时的交互流程图,该流程包括:
83.步骤401,负载均衡器向数据库服务器发送数据库修改指令,数据库修改指令由计算机设备生成。
84.用户通过计算机设备进行数据库的库、表修改操作,包括库、表的增加、删除和调整等,计算机设备根据用户操作生成相应的数据库修改指令,发送至数据库服务器。
85.与数据写入指令相同,负载均衡器将接收到的数据库修改指令随机发送至一个数据库服务器,或按照预设的顺序进行平均分配。
86.步骤402,数据库服务器依据数据库修改指令执行数据库修改操作。
87.数据库服务器在接收到负载均衡器转发的数据库修改指令后,依据数据库修改指令对数据库进行相应的修改操作,在一种可能的实施方式中,数据库服务器中的同步器接收数据库修改指令,并对数据库进行修改。
88.步骤403,数据库服务器向负载均衡器发送已修改消息或修改失败消息。
89.为了便于负载均衡器获取数据库修改结果,数据库服务器在数据库执行数据库修改指令之后,根据修改结果向负载均衡器发送已修改消息或修改失败消息,使得负载均衡器根据接收到的消息向计算机设备进行反馈,以便用户在发现异常时及时采取措施。
90.步骤404,数据库服务器通过关联数据库服务器对应的服务器端口,向关联数据库服务器转发数据库修改指令,关联数据库服务器用于依据数据库修改指令执行数据库修改操作,并向负载均衡器发送已修改消息或修改失败消息。
91.由于数据库系统中各个数据库服务器之间需要数据同步,因此在数据库服务器进行数据库修改操作后,数据库系统中的其它数据库,即关联数据库也需要进行同样的数据库修改操作。
92.在一种可能的实施方式中,数据库服务器中的同步器向关联数据库服务器中的同步器转发数据库修改指令。同步器基于配置文件查询获取关联数据库服务器的服务器端口,并通过服务器端口向关联数据库服务器中的同步器发送数据库修改指令。
93.当关联数据库服务器中的同步器接收到数据库修改指令后,同样地,对数据库进行修改,并基于修改结果向负载均衡器发送已修改消息或修改失败消息,以便负载均衡器获取数据库系统中各个数据库服务器的执行结果。
94.步骤405,负载均衡器当接收到修改失败消息时,向计算机设备发送修改失败提示
信息。
95.当负载均衡器接收到一次修改失败消息,或者在预定时长内未接收到所有数据库服务器发送的已修改消息时,确定存在数据库服务器执行数据库修改指令失败,并向计算机设备发送修改失败提示信息。
96.在一种可能的实施方式中,负载均衡器向计算机设备发送修改失败提示信息,提示用户此次修改失败,需要再次进行相应操作。若负载均衡器连续接收到修改失败消息的次数达到次数阈值,且每一次修改失败的数据库服务器相同,则负载均衡器将对应发送修改失败消息的数据库服务器的服务器标识发送至计算机设备,以便用户对该数据块服务器进行检查和维护。
97.本技术实施例中,负载均衡器接收到数据库修改指令后,只需随机向一台数据库服务器发送数据库修改指令,数据库服务器之间通过同步器进行消息转发,实现对数据库的同步修改,保证数据库的一致性;当存在数据库服务器操作失败时,负载均衡器即向计算机设备发送操作失败的提示信息,以便提示用户再次进行操作或进行异常处理。
98.除了数据写入以及数据库修改操作之外,本技术实施例中的数据库系统还具有数据读取功能,图5示出了本技术一个实施例提供的数据库系统进行数据读取时的交互流程图,该流程包括:
99.步骤501,负载均衡器向数据库服务器发送数据读取请求,数据读取请求用于指示待读取数据。
100.用户通过计算机设备进行数据读取操作,计算机设备基于用户操作生成数据读取请求,该数据读取请求用于指示待读取数据,例如当用户需要查询某一时间段内物联网设备a所生成的数据时,该数据读取请求中包含物联网设备a在数据库中对应的设备标识,以及查询条件中的时间段。
101.与数据写入请求以及数据库修改指令相同,负载均衡器将接收到的数据读取请求随机发送至一个数据库服务器,或按照预设的顺序进行平均分配。
102.步骤502,数据库服务器向负载均衡器发送待读取数据。
103.数据库服务器基于数据读取请求中的查询条件,从数据库中筛选得到待读取数据,并将待读取数据发送至负载均衡器,由负载均衡器向计算机设备返回查询结果。
104.步骤503,负载均衡器当预设时长内未接收到待读取数据时,将数据读取请求发送至关联数据库服务器。
105.为了避免接收数据读取指令的数据库服务器异常,而导致无法读取数据的情况,负载均衡器在向数据库服务器发送数据读取指令后开始计时,若预设时长内负载均衡器未接收到数据库服务器发送的待读取数据,或者负载均衡器接收到数据库服务器发送的数据读取失败消息,则确定该数据库服务器存在异常,并将数据读取请求发送至任意一个关联数据库服务器,使关联数据库服务器进行数据读取。
106.在一种可能的实施方式中,若数据读取失败的次数大于预设次数,则确定数据库中不包含满足数据读取指令的待读取数据,或者数据库中数据丢失,负载均衡器向计算机设备上报数据读取失败的提示信息。若数据库服务器进行数据读取失败,而关联数据库服务器数据读取成功,则确定数据库服务器数据丢失或存在异常,并向对应的计算机设备发送数据库异常警告,以便运维人员及时处理。
107.本技术实施例中,由负载均衡器随机向数据库服务器发送数据读取请求,若数据库服务器存在异常,导致负载均衡器未接收到待读取数据时,负载均衡器向其它数据库服务器转发数据读取请求,从而实现在一台数据库服务器存在异常,无法读取数据的情况下,仍然能够进行数据查询,实现数据库系统的实时查询功能。
108.结合上述各个实施例,在一个示意性的例子中,数据库系统进行数据写入的流程如图6所示。图中仅示出了包含两个数据库服务器(数据库服务器a和数据库服务器b)的数据库系统,在其它的实施方式中,数据库系统可能包含更多的数据库服务器,本技术实施例对此不作限定。
109.步骤601,负载均衡器向同步器a发送数据写入请求。
110.步骤602,同步器a向数据库a发送目标数据。
111.步骤603,同步器a将目标数据存放至消息队列的分组b。
112.步骤604,同步器b提取分组b中的数据。
113.步骤605,同步器b将提取到的数据发送至数据库b。
114.其中,同步器所执行步骤的具体流程如图7所示。
115.步骤701,确定消息队列中目标分组是否存在数据。若是,则执行步骤702,否则继续执行步骤701。
116.步骤702,将数据写入数据库。
117.步骤703,确认是否接受到数据写入请求。若是则执行步骤704和705,否则继续执行步骤703。
118.步骤704,将数据写入数据库。
119.步骤705,将数据存放至消息队列中的关联分组。
120.上述步骤701至702,与步骤703至705之间属于并列关系。
121.结合上述各个实施例,在一个示意性的例子中,当数据库服务器a存在异常时,数据库系统进行数据写入的流程如图8所示。图中仅示出了包含两个数据库服务器(数据库服务器a和数据库服务器b)的数据库系统,在其它的实施方式中,数据库系统可能包含更多的数据库服务器,本技术实施例对此不作限定。
122.步骤801,负载均衡器向同步器a发送数据写入请求。
123.步骤802,同步器a向数据库a发送目标数据。此时确定数据库a存在异常,则继续执行步骤803。
124.步骤803,同步器a将目标数据存放至消息队列的分组a和分组b。
125.步骤804,同步器b提取分组b中的数据。
126.步骤805,同步器b将提取到的数据发送至数据库b。
127.当同步器a确定数据库a恢复正常时,执行步骤806。
128.步骤806,数据库a恢复正常后,同步器a将分组a中的数据发送至数据库a。
129.结合上述各个实施例,在一个示意性的例子中,数据库系统进行数据读取的流程如图9所示。
130.步骤901,随机选取数据库服务器并发送数据读取请求。
131.步骤902,判断该数据库服务器是否正常。若是,则执行步骤903,否则返回步骤901。
132.步骤903,发送数据读取请求。
133.请参考图10,其示出了本技术一个示例性实施例提供的服务器的结构示意图,该计算机设备可以实现成为数据库系统中的负载均衡器,或实现成为数据库服务器。
134.其中,服务器1000包括中央处理单元(central processing unit,cpu)1001、随机存取存储器(random access memory,ram)1002和只读存储器(read

only memory,rom)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。服务器1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(input/output系统,i/o系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
135.基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
136.大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。大容量存储设备1007及其相关联的计算机可读介质为服务器1000提供非易失性存储。也就是说,大容量存储设备1007可以包括诸如硬盘或者光盘只读存储器(compact disc read

only memory,cd

rom)之类的计算机可读介质(未示出)。
137.不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、计算机存储器(erasable programmable read only memory,eprom)、读写存储器(electrically erasable programmable read only memory,eeprom)、闪存或其他固态存储其技术,cd

rom、数字通用光盘(digital versatile disc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
138.存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1001执行,一个或多个程序包含用于实现上述服务器功能的指令,中央处理单元1001执行该一个或多个程序实现上述各个实施例中服务器的功能。
139.根据本技术的各种实施例,服务器1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1000可以通过连接在系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
140.存储器还包括一个或者一个以上的程序,该一个或者一个以上程序存储于存储器中,一个或者一个以上程序包含用于进行本技术实施例提供的由服务器所执行的步骤。
141.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如上各个实施例所述的数据库系统中数据库服务器或负载均衡器的功能。
142.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该服务器实现上述方面的各种可选实现方式中提供的数据库系统中数据库服务器或负载均衡器的功能。
143.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
144.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献