CN113535430A - 应用数据读写分离方法、装置、计算机设备和存储介质 - Google Patents
应用数据读写分离方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113535430A CN113535430A CN202110806768.8A CN202110806768A CN113535430A CN 113535430 A CN113535430 A CN 113535430A CN 202110806768 A CN202110806768 A CN 202110806768A CN 113535430 A CN113535430 A CN 113535430A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- external data
- write
- cluster
- 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
Links
- 238000000926 separation method Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种应用数据读写分离方法、装置、计算机设备和存储介质。所述方法包括:主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。采用本方法能够在一定程度上能够提高应用数据读写效率。
Description
技术领域
本申请涉及应用数据处理技术领域,特别是涉及一种应用数据读写分离方法、装置、计算机设备和存储介质。
背景技术
随着应用数据处理的发展,为了使应用数据在读和写的过程中不会彼此受牵制,因而出现了应用数据读写分离技术。
传统技术中,应用的读写分离功能借助数据库的主从复制功能实现,应用通过SQL向主数据库写入数据,从数据库将主数据库执行完成的SQL记录文件同步完成后,再次按同样的顺序,本地执行SQL,将数据再次写入从数据库,供应用查询。
然而,传统方法,整个过程涉及多次文件的读写操作,并且同步周期较长,当存在多个数据库备节点时,需要进行多次网络传输,在一定程度上降低了应用数据读写的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高应用数据读写效率的应用数据读写分离方法、装置、计算机设备和存储介质。
一种应用数据读写分离方法,所述方法包括:
主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
在其中一个实施例中,主集群包括一个第一主节点,从集群包括至少一个第一从节点;所述第一主节点和所述第一从节点为运行在各服务器上的进程实例;
在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序;
根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述从集群的第一从节点。
在其中一个实施例中,所述主集群还包括至少两个第一备节点,所述第一主节点和各所述第一备节点使用同一软件程序,在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序之后,还包括:
根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述第一备节点。
在其中一个实施例中,所述方法还包括:
当检测到所述第一主节点和所述第一从节点之间的连接异常时,将任意一个第一备节点作为备用主节点;
所备用主节点与第一从节点通信连接。
在其中一个实施例中,根据所述写入请求将所述外部数据同步发送给应用,包括:
根据所述写入请求,按照主集群对各所述外部数据的接收顺序,依次对各所述主集群接收的外部数据进行连续递增编号,得到各带有编号的外部数据;
通过消息确认机制,使各所述带编号的外部数据按照编号顺序,同步递交给所述应用。
在其中一个实施例中,将任意一个第一备节点作为备用主节点,包括:
获取各所述第一备节点的名称顺序,将名称顺序与所述第一主节点的名称顺序最接近的第一备节点,作为所述备用主节点。
一种应用数据读写分离装置,所述装置包括:
目标写入数据获取模块,用于主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
查询结果读取模块,用于从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
上述应用数据读写分离方法、装置、计算机设备和存储介质,“写”的过程主要是,主集群通过分布式消息中间件接收外部数据,将外部数据同步发送给应用。由应用根据外部数据的内容进行相应的数据处理,从而得到目标写入数据。应用将该目标写入数据给到数据接收端。“读”的过程主要是,系统获取数据请求端发送的查询消息;从集群通过分布式消息中间件接收该查询消息,并根据该查询消息读取目标写入数据,从目标写入数据中得到对应的查询结果,最后通过分布式消息中间件向数据请求端输出该查询结果。在整个过程中,“读”和“写”均是在应用的内存中进行计算,而没有用到数据库,不需要借助数据库即可完成主从集群的同步。不需要进行多次网络传输,即可实现应用数据的快速读/写。因而本申请在一定程度上能够提高应用数据读写效率。
附图说明
图1为一个实施例中应用数据读写分离方法的应用环境图;
图2为一个实施例中应用数据读写分离方法的流程示意图;
图3为一个实施例中应用数据读写分离装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的应用数据读写分离方法,可以应用于如图1所示的应用环境中。包括数据发送端102、主从集群104和数据请求端106,数据发送端102向主从集群104发送外部数据和写入请求,数据请求端106通过主从集群102获得查询结果。其中,一组相关的主从集群104中包括一个惟一的主集群和多个从集群。主从集104群均包括多个节点,通过节点部署在多台服务器上,彼此通过网络互联。其中,节点是运行在服务器上的进程实例;主从集群104的划分是人为定义的,由程序开发人员定义每个节点所属的集群,写入到程序的配置文件中。
在一个实施例中,如图2所示,提供了一种应用数据读写分离方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据。
其中,分布式消息中间件是指AMI(Archforce Message Interconnection),是一种分布式消息中间件,应用是与AMI在同一载体上的应用程序,AMI介于上层应用程序和操作系统之间一种基础架构。
具体地,当有外部数据写入时,主集群先通过分布式消息中间件获取外部数据的写入请求,主集群在获得该写入请求时,会根据该写入请求将外部数据同步发送给分布式消息中间件所在的上层应用,上层应用对接收到的外部数据进行数据处理,例如数学运算和逻辑处理,从输入的大量外部数据中分析获得所需的目标写入数据。例如在金融行业的股票买卖中,大量输入的外部数据是各用户购买股票的支数、风险类型、股数、股票名称、风险类型等,目标写入数据为20-30岁年龄阶段的男性用户倾向于购买何种风险类型的股票。在数据处理得到目标写入数据后,应用将通过显示界面向用户显示目标写入数据。
步骤204,从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
其中,数据请求端是使用应用的用户,用户通过分布式消息中间件,向从集群发送查询请求,查询请求中包括输入查询对象、内容等关键词,也可以是语义模糊搜索、或语音智能搜索。当查询请求数量较多时,可以部署多个从集群,同时满足不同的查询请求。
具体地,主集群在获得外部数据时会同步到从集群中,从集群通过分布式消息中间件接收数据请求端发送的查询请求,根据该查询请求,从集群读取外部数据,从中获得对应的查询结果。在这一查询读取过程中,从集群只会读取主集群获得的外部数据,而不会对外部数据进行数据处理,不会使外部数据发生实质上的改变。查询结果中包含的数据是从外部数据提取出来的数据,例如,当查询请求为“20-30岁”、“男性”、“股票风险偏好”,则对应的查询结果为20-30岁之间的男性在股票风险偏好的统计数据。
从集群在得到对应的查询结果之后,通过分布式消息中间件将查询结果发送给数据请求端。
上述应用数据读写分离方法中,“写”的过程主要是,主集群通过分布式消息中间件接收外部数据,将外部数据同步发送给应用。由应用根据外部数据的内容进行相应的数据处理,从而得到目标写入数据。应用将该目标写入数据给到数据接收端。“读”的过程主要是,系统获取数据请求端发送的查询消息;从集群通过分布式消息中间件接收该查询消息,并根据该查询消息读取目标写入数据,从目标写入数据中得到对应的查询结果,最后通过分布式消息中间件向数据请求端输出该查询结果。在整个过程中,“读”和“写”均是在应用的内存中进行计算,而没有用到数据库,不需要借助数据库即可完成主从集群的同步。不需要进行多次网络传输,即可实现应用数据的快速读/写。因而本申请在一定程度上能够提高应用数据读写效率。
在一个实施例中,主集群包括一个第一主节点,从集群包括至少一个第一从节点;所述第一主节点和所述第一从节点为运行在各服务器上的进程实例;应用数据读写分离方法包括:
在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序;根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述从集群的第一从节点。
其中,节点包括主节点和备节点,均是运行在服务器上的进程实例。在主集群中,通常包括一个第一主节点。在从集群中,通常包括至少一个从节点,从节点可以是主节点或者备节点,从集群相对主集群而言,只是一个与之网络互联的一个或多个节点,为了名称的统一性,因此将其称为从集群。
在主集群中,主节点(即第一主节点)用于接收输入的外部数据,并对外产生输出。在从集群中,从节点可以是主节点,也可以是备节点,如果从节点包括一个主节点和多个备节点,则从集群中的主节点对外输出查询结果,备节点接收来自主集群的外部数据。
具体地,主集群的第一主节点在接收到外部数据时,将会根据外部数据生成全局消息顺序。全局消息顺序是主集群接收各外部数据的顺序,全局消息顺序是主集群将外部数据同步到主集群中各备节点的依据,也是主集群将外部数据同步到从集群中各从节点的依据。
本实施例中,通过第一主节点根据外部数据,生成全局消息顺序,从而使外部数据能根据改全局消息顺序同步到各从集群中,使从集群接收到的外部数据和主集群接收到的外部数据在顺序上保持一致,从而不会出现数据遗漏错位的现象。
在一个实施例中,所述主集群还包括至少两个第一备节点,所述第一主节点和各所述第一备节点使用同一软件程序,在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序之后,还包括:
根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述第一备节点。
其中,主集群包括一个主节点,和多个第一备节点,备节点的作用是为了备份第一主节点获得的外部数据,与主集群在数据上保持一致,从而当第一主节点出现不可恢复的故障时,可以由主集群中的其他第一备节点代替该第一主节点继续工作,且在数据上不会出现断层。为了使第一备节点能够在第一主节点出现不可恢复的事故时,能够实现自如切换,备份主集群中的外部数据,因此使第一主节点和第一备节点使用同一软件程序。
具体地,在第一主节点生成全局消息顺序时,第一主节点在根据该全局消息顺序将外部数据同步到应用时,同时还根据该全局消息顺序将外部数据同步到各个第一备节点,使各个第一备节点对第一主节点中的外部数据进行实时备份。
本实施例中,通过第一主节点生成全局消息顺序,由第一主节点将外部数据同步到各第一备节点,从而使各第一备节点获得了第一主节点中的外部数据备份,当第一主节点因故障不可工作时,可随时替代第一主节点,以保证服务整体状态的一致性和连续性。
在一个实施例中,应用数据读写分离方法还包括:
当检测到所述第一主节点和所述第一从节点之间的连接异常时,将任意一个第一备节点作为备用主节点;
所述备用主节点与第一从节点通信连接。
其中,第一主节点和第一从节点在正常情况下,连接正常,检测时得到的检测结果为连接正常,则不会执行将第一备节点作为备用主节点的步骤。当第一主节点和第一从节点之间的连接异常时,通常引起连接异常的因素可能有:由于自然地质灾害、断电等导致的主、从集群之间的网络中断且人工确定短时间内不可恢复。
具体地,当检测到第一主节点和第一从节点之间的连接异常时,由于短时间内难以恢复,此时会将多个备节点中的一个作为备用主节点,将该备用主节点和第一从节点实现通信连接,从而使主集群和从集群之间的通信变为:备用主节点和第一从节点。
本实施例中,在检测到第一主节点和第一从节点之间的连接异常时,将其中任意一个第一备节点作为备用主节点,使该备用主节点替代原先的第一主节点,和从集群的第一从节点通信连接。使从集群和主集群之间的通信连接不会由于第一主节点的故障而陷入瘫痪。
在一个实施例中,根据所述写入请求将所述外部数据同步发送给应用,包括:
根据所述写入请求,按照主集群对各所述外部数据的接收顺序,依次对各所述主集群接收的外部数据进行连续递增编号,得到各带有编号的外部数据;
通过消息确认机制,使各所述带编号的外部数据按照编号顺序,同步递交给所述应用。
其中,写入请求作为一种信号,提醒主集群即将有外部数据写入。接收顺序是主集群接收外部数据时,接收各外部数据的先后顺序。
具体地,主集群接收外部数据时,会对外部数据进行连续递增编号,可以按照阿拉伯数字递增编号,例如第一个获得的外部数据记为“1”,第二个获得的外部数据记为“2”等。连续递增编号也可以是英文字母加阿拉伯数字的多位数结合,例如”a1”、“a2”...或者“A11”、“A12”...等。主集群对外部数据进行连续递增编号后,得到各带有编号的外部数据。
消息确认机制的设置是为了防止消息丢失。本申请中采用ACK确认这一确认机制,以使各个从集群能够完整地接收到来自主集群的数据,数据即各带编号的外部数据。
本实施例中,通过主集群对各外部数据按照编号顺序,通过消息确认机制,使各带编号的外部数据按照编号顺序,能同步完整的发送给应用,在发送过程中使数据保持完整性。
在一个实施例中,将任意一个第一备节点作为备用主节点,包括:
获取各所述第一备节点的名称顺序,将名称顺序与所述第一主节点的名称顺序最接近的第一备节点,作为所述备用主节点。
其中,名称顺序是各备节点名称的顺序,例如备节点1、备节点2等。
具体地,在第一主节点故障时,活跃的第一备节点会进行重新选举,并由分布式消息中间件的仲裁服务节点决定哪个第一备节点会成为新的第一主节点,第一备节点之间,默认按照节点的名称顺序选举,可以通过配置优先级的方式,指定优先选举的第一备节点,在多个备节点存活的情况下,优先级高的备节点会优先选为备用主节点。
本实施例中,通过选取名称顺序最接近第一主节点的名称顺序的第一备节点,从而在再次甚至多次发生类似故障时,可以将历史上被选为备用主节点的第一备节点排除,缩小搜索范围并提高正确率。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种应用数据读写分离装置,包括:目标写入数据获取模块301、查询结果读取模块模块302,其中:
目标写入数据获取模块301,用于主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
查询结果读取模块302,用于从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
在一个实施例中,应用数据读写分离装置,还包括:全局消息顺序生成模块和从集群同步模块,其中:
全局消息顺序生成模块,用于在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序;
从集群同步模块,用于根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述从集群的第一从节点。
在一个实施例中,应用数据读写分离装置,还用于根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述第一备节点。
在一个实施例中,应用数据读写分离装置,还包括:连接异常检测模块和通信连接模块,其中:
连接异常检测模块,用于当检测到所述第一主节点和所述第一从节点之间的连接异常时,将任意一个第一备节点作为备用主节点;
通信连接模块,用于所备用主节点与第一从节点通信连接。
在一个实施例中,目标写入数据获取模块,还包括:
外部数据获取模块,用于根据所述写入请求,按照主集群对各所述外部数据的接收顺序,依次对各所述主集群接收的外部数据进行连续递增编号,得到各带有编号的外部数据;
外部数据递交模块,用于通过消息确认机制,使各所述带编号的外部数据按照编号顺序,同步递交给所述应用。
在一个实施例中,连接异常检测模块,还用于获取各所述第一备节点的名称顺序,将名称顺序与所述第一主节点的名称顺序最接近的第一备节点,作为所述备用主节点。
关于应用数据读写分离装置的具体限定可以参见上文中对于应用数据读写分离方法的限定,在此不再赘述。上述应用数据读写分离装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据可靠传输数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据可靠传输方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种应用数据读写分离方法,其特征在于,所述方法包括:
主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
2.根据权利要求1所述的应用数据读写分离方法,其特征在于,主集群包括一个第一主节点,从集群包括至少一个第一从节点;所述第一主节点和所述第一从节点为运行在各服务器上的进程实例;所述方法还包括:
在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序;
根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述从集群的第一从节点。
3.根据权利要求2所述的应用数据读写分离方法,其特征在于,所述主集群还包括至少两个第一备节点,所述第一主节点和各所述第一备节点使用同一软件程序,在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序之后,还包括:
根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述第一备节点。
4.根据权利要求3所述的应用数据读写分离方法,其特征在于,所述方法还包括:
当检测到所述第一主节点和所述第一从节点之间的连接异常时,将任意一个第一备节点作为备用主节点;
所述备用主节点与第一从节点通信连接。
5.根据权利要求1所述的应用数据读写分离方法,其特征在于,根据所述写入请求将所述外部数据同步发送给应用,包括:
根据所述写入请求,按照主集群对各所述外部数据的接收顺序,依次对各所述主集群接收的外部数据进行连续递增编号,得到各带有编号的外部数据;
通过消息确认机制,使各所述带编号的外部数据按照编号顺序,同步递交给所述应用。
6.根据权利要求4所述的应用数据读写分离方法,其特征在于,将任意一个第一备节点作为备用主节点,包括:
获取各所述第一备节点的名称顺序,将名称顺序与所述第一主节点的名称顺序最接近的第一备节点,作为所述备用主节点。
7.一种应用数据读写分离装置,其特征在于,所述装置包括:
目标写入数据获取模块,用于主集群通过所述分布式消息中间件接收对外部数据的写入请求,根据所述写入请求将所述外部数据同步发送给应用;所述应用用于根据所述外部数据进行相应的数据处理,得到所述目标写入数据;
查询结果读取模块,用于从集群通过分布式消息中间件接收数据请求端发送的查询请求,并根据所述查询请求读取所述外部数据,得到对应的查询结果,将所述查询结果通过所述分布式消息中间件发送给所述数据请求端。
8.根据权利要求7所述的应用数据读写分离装置,其特征在于,查询结果获取模块,还包括:
消息顺序获取模块,用于在所述第一主节点接收到所述外部数据时,所述第一主节点根据所述外部数据,生成全局消息顺序;
第一从节点消息同步模块,用于根据所述全局消息顺序,由所述第一主节点将所述外部数据同步到各所述从集群的第一从节点。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110806768.8A CN113535430A (zh) | 2021-07-16 | 2021-07-16 | 应用数据读写分离方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110806768.8A CN113535430A (zh) | 2021-07-16 | 2021-07-16 | 应用数据读写分离方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535430A true CN113535430A (zh) | 2021-10-22 |
Family
ID=78099869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110806768.8A Pending CN113535430A (zh) | 2021-07-16 | 2021-07-16 | 应用数据读写分离方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535430A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661818A (zh) * | 2022-03-17 | 2022-06-24 | 杭州欧若数网科技有限公司 | 图数据库中集群间数据实时同步的方法、系统和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390041A (zh) * | 2013-07-18 | 2013-11-13 | 杭州东信北邮信息技术有限公司 | 一种基于中间件提供数据服务的方法和系统 |
CN106372115A (zh) * | 2016-08-23 | 2017-02-01 | 成都乾威科技有限公司 | 一种数据读写方法、系统及数据库系统 |
CN109547512A (zh) * | 2017-09-22 | 2019-03-29 | 中国移动通信集团浙江有限公司 | 一种基于NoSQL的分布式Session管理的方法及装置 |
CN111400285A (zh) * | 2020-03-25 | 2020-07-10 | 杭州浮云网络科技有限公司 | mySQL数据分片处理方法、装置、计算机设备和可读存储介质 |
CN113094431A (zh) * | 2021-03-30 | 2021-07-09 | 北京达佳互联信息技术有限公司 | 读写分离方法、装置及服务器 |
-
2021
- 2021-07-16 CN CN202110806768.8A patent/CN113535430A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390041A (zh) * | 2013-07-18 | 2013-11-13 | 杭州东信北邮信息技术有限公司 | 一种基于中间件提供数据服务的方法和系统 |
CN106372115A (zh) * | 2016-08-23 | 2017-02-01 | 成都乾威科技有限公司 | 一种数据读写方法、系统及数据库系统 |
CN109547512A (zh) * | 2017-09-22 | 2019-03-29 | 中国移动通信集团浙江有限公司 | 一种基于NoSQL的分布式Session管理的方法及装置 |
CN111400285A (zh) * | 2020-03-25 | 2020-07-10 | 杭州浮云网络科技有限公司 | mySQL数据分片处理方法、装置、计算机设备和可读存储介质 |
CN113094431A (zh) * | 2021-03-30 | 2021-07-09 | 北京达佳互联信息技术有限公司 | 读写分离方法、装置及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661818A (zh) * | 2022-03-17 | 2022-06-24 | 杭州欧若数网科技有限公司 | 图数据库中集群间数据实时同步的方法、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8127174B1 (en) | Method and apparatus for performing transparent in-memory checkpointing | |
US9940206B2 (en) | Handling failed cluster members when replicating a database between clusters | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN100472461C (zh) | 分布式容错计算系统中复制品集合的有效改变 | |
US20150213100A1 (en) | Data synchronization method and system | |
US9037905B2 (en) | Data processing failure recovery method, system and program | |
CN104182297A (zh) | 用于从主存储卷的故障中恢复的方法和系统 | |
US11748215B2 (en) | Log management method, server, and database system | |
CN114238495A (zh) | 数据库主备集群切换方法、装置、计算机设备及存储介质 | |
CN112000735A (zh) | 一种数据处理方法、装置、系统 | |
CN116521083A (zh) | 一种分布式存储集群数据的存储方法、装置及介质 | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN113297173B (zh) | 分布式数据库集群管理方法及装置、电子设备 | |
CN113535430A (zh) | 应用数据读写分离方法、装置、计算机设备和存储介质 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN112417043A (zh) | 数据处理系统及方法 | |
CN113934792A (zh) | 分布式数据库的处理方法、装置、网络设备和存储介质 | |
JP2007293821A (ja) | データベースシステム管理方法及びデータベースシステム | |
CN111338574B (zh) | 基于区块链的数据自修复方法、装置、介质及电子设备 | |
CN114443341A (zh) | 宕机服务器的探测方法、数据库的高可用恢复方法及装置 | |
CN111522688B (zh) | 分布式系统的数据备份方法及装置 | |
CN113626252A (zh) | 一种基于集群的城市级容灾方法、装置、电子设备及介质 | |
CN112632188A (zh) | 一种异步复制数据的方法和设备 | |
CN111522883A (zh) | 对象数据的备份方法、装置、设备及存储介质 | |
CN112000733B (zh) | 图数据存储的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 2301, building 5, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Huarui Distributed Technology Co.,Ltd. Address before: Room 2301, building 5, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen City, Guangdong Province Applicant before: SHENZHEN ARCHFORCE FINANCIAL TECHNOLOGY Co.,Ltd. |