CN112084171A - 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 - Google Patents
基于Cassandra数据库的操作日志写入方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112084171A CN112084171A CN202010819501.8A CN202010819501A CN112084171A CN 112084171 A CN112084171 A CN 112084171A CN 202010819501 A CN202010819501 A CN 202010819501A CN 112084171 A CN112084171 A CN 112084171A
- Authority
- CN
- China
- Prior art keywords
- database
- cassandra
- writing
- operation instruction
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000007246 mechanism Effects 0.000 claims abstract description 35
- 238000003860 storage Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 10
- 238000004140 cleaning Methods 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000006872 improvement Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 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
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于Cassandra数据库的操作日志写入方法、装置、设备及介质,包括:接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。本说明书实施例在写入操作日志时具有高可靠性,在Cassandra数据库中,多个数据库节点组成一个集群,彼此数据同步,保证节点数据级别的一致性,能够在数据库节点发生故障时,不中断操作日志的写入。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于Cassandra数据库的操作日志写入方法、装置、设备及介质。
背景技术
在软件定义网络(Software Defined Network,SDN)技术中,控制器对全网资源进行监控管理,技术人员会通过应用界面对SDN控制器下发指令,来修改或者添加一些网络资源或者配置,控制器长时间运行以后,技术人员将要实施很多操作,一旦系统故障或者某一项关键配置被修改,需要查看操作日志排查问题。
在现有技术中,操作日志在写入时可靠性较差,若是操作日志的存储节点损坏,后期无法通过操作日志排查问题。
发明内容
有鉴于此,本申请实施例提供了一种基于Cassandra数据库的操作日志写入方法、装置、设备及介质,用于解决现有技术中操作日志在写入时可靠性较差的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种基于Cassandra数据库的操作日志写入方法,所述方法包括:
接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
需要说明的是,本说明书实施例在写入操作日志时具有高可靠性,在Cassandra数据库中,多个数据库节点组成一个集群,彼此数据同步,保证节点数据级别的一致性,能够在数据库节点发生故障时,不中断操作日志的写入。
进一步的,所述Cassandra数据库的集群读写数据机制具体包括:
SDN控制器配置多个数据库节点的IP地址;
SDN控制器将任意一个数据库节点作为主数据库节点;
当SDN控制器接收到所述应用下发的操作指令时,判断是否能连接所述主数据库节点;
若SDN控制器判断出能连接所述主数据节点,触发数据库集群同步机制,以便将所述操作指令对应的操作信息同步到其他数据库节点。
进一步的,若SDN控制器判断出不能连接所述主数据节点,所述方法还包括:
连接另一个数据库节点;
若SDN控制器能连接成功,将所述另一个数据库节点设置为主数据库节点;
触发数据库集群同步机制,以便将所述操作指令对应的操作信息同步到其他数据库节点。
需要说明的是,上述公开了集群读写数据机制的具体过程,SDN控制器通过数据库的集群读写数据机制,保证了写入操作日志的可靠性。
进一步的,所述将所述操作日志写入Cassandra数据库,具体包括:
根据预先设置的数据库表,将所述操作日志进行封装,并将封装后的操作日志写入Cassandra数据库。
需要说明的是,上述公开了将操作日志写入Cassandra数据库的具体过程,由于Cassandra数据库存储信息的特性,需要将操作日志进行封装,以适应Cassandra数据库的存储要求。
进一步的,若所述操作指令为读取数据,所述方法还包括:
通过索引,在Cassandra数据库中查找出所需读取的操作日志,其中,所述索引包括所述操作日志写入Cassandra数据库的时间和/或所述操作指令;
将所述操作日志组装成预设格式,并将组装后的操作日志发上传至所述应用进行展示。
需要说明的是,在数据库中索引时,本说明书实施例可以根据写入数据库的时间进行索引,也可以根据操作指令的内容进行索引,此外,只是根据写入数据库的时间或操作指令的内容进行索引,在数据库中查找出的操作日志可能有多个结果,也可以根据写入数据库的时间与操作指令的内容一同进行索引,可以提高索引的精确度。
进一步的,若所述操作指令为写入数据之后,所述方法还包括:
判断所述Cassandra数据库内的操作日志的存储时间是否达到预先设置的阈值;
若判断出所述Cassandra数据库内的操作日志的存储时间未达到预先设置的阈值,执行所述记录所述操作指令对应的操作信息的步骤。
进一步的,若判断出所述Cassandra数据库内的操作日志的存储时间已达到预先设置的阈值,所述方法还包括:
将Cassandra数据库内的操作日志进行备份或清理,并执行所述记录所述操作指令对应的操作信息的步骤。
需要说明的是,对于老旧的操作日志,可以根据用户的需求,选择性的删除和备份数据,这样能保证数据库表里的数据不是持续增长,数据不会特别庞大。好处有几方面,首先用户在读数据的时候,响应更快;其次缓解服务器压力;最后还能缓解浏览器压力,因为浏览器一次性加载大量数据,会造成卡顿。
本申请实施例还提供一种基于Cassandra数据库的操作日志写入装置,所述装置包括:
接收单元,用于接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
写入单元,用于若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
本申请实施例还提供一种基于Cassandra数据库的操作日志写入设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
本申请实施例还提供一种基于Cassandra数据库的操作日志写入介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书实施例在写入操作日志时具有高可靠性,在Cassandra数据库中,多个数据库节点组成一个集群,彼此数据同步,保证节点数据级别的一致性,能够在数据库节点发生故障时,不中断操作日志的写入。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例一提供的一种基于Cassandra数据库的操作日志写入方法的流程示意图;
图2为本说明书实施例二提供的一种基于Cassandra数据库的操作日志写入方法的流程示意图;
图3为本说明书实施例提供的操作日志写入系统框架示意图;
图4为本说明书实施例提供的操作日志写入系统的执行流程;
图5为本说明书实施例三提供的一种基于Cassandra数据库的操作日志写入装置的结构示意图。
具体实施方式
现有技术中存在以下问题:
1、可靠性差,没有提供操作日志存储数据的集群备份保障;
2、抗压能力差,缺少垃圾回收机制,长时间运行的环境,会产生大量的操作日志,加重存储负担,对于时间久远的操作日志,对现阶段来说,是没有任何作用的;
3、缺少操作日志持久化的数据库解决方案。
针对这上述问题,本说明书实施例的目的为:
1、基于Cassandra数据库提供一套高可靠的操作日志写入方式,解决现有操作日志写入方式落后的问题;
2、可靠性强,支持集群备份数据,集群之间数据会自动同步,某一数据库节点故障时,操作日志依然能正常使用,数据库节点恢复后,可以自动同步新增数据;
3、提供合理的集群主节点选举机制;
4、垃圾回收机制,对于无用的操作日志,会定期清理,节省系统资源;
5、提供Cassandra数据库驱动程序,Cassandra数据库是非关系型数据库,天然支持键值对的存储,支持按条件索引查询,可以完美匹配操作日志的需求。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例一提供的一种基于Cassandra数据库的操作日志写入方法的流程示意图,本说明书实施例可以由SDN控制执行下述步骤,具体步骤可以包括:
步骤S101,接收应用通过北向接口下发的操作指令,其中,操作指令是由用户下发至应用的指令。
在本说明书实施例的步骤S101中,本说明书实施例的应用面向用户,用户可以在应用上下发各类操作指令。应用通过调用SDN控制器的北向接口的rest协议来下发这些操作指令。其中,本说明书实施例的应用可以为Web应用,
步骤S102,若操作指令为写入数据,记录操作指令对应的操作信息,得到操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将操作日志写入Cassandra数据库。
在本说明书实施例的步骤S102中,SDN控制器向上提供标准的rest北向接口供应用调用,向下记录应用下发的操作指令。处理操作指令数据时,需要封装成定义好的数据库表模板,写入底层Cassandra数据库,当上层应用需要调用历史操作日志时,SDN控制器从Cassandra数据库进行查询,并将查询结果返回给上层应用。
需要说明的是,Cassandra数据库是开源分布式NoSQL数据库系统,采用Key-Value存储方式,与操作日志的需求匹配。数据库可以接收SDN控制器写入的各类操作数据,由于是集群,控制器只会将数据存入主数据库节点,当主数据库节点数据发生变化时,另外的备用节点会接收主数据库节点的同步数据请求,完成数据的同步,最终所有的数据库节点的数据始终保持一致。比如,数据库集群中存在三个数据库节点,若主数据库节点发生故障而失去连接的时候,其中的一个备用数据库节点将成为主数据库节点,这个时候,上层SDN控制器依然能正常读写数据,并不会因为数据库节点的故障,而造成数据的丢失。
与本说明书实施例一相对应的是,图2为本说明书实施例二提供的一种基于Cassandra数据库的操作日志写入方法的流程示意图,本说明书实施例可以由SDN控制执行下述步骤,具体步骤可以包括:
步骤S201,接收应用通过北向接口下发的操作指令,其中,操作指令是由用户下发至应用的指令。
在本说明书实施例的步骤S201中,本说明书实施例的应用面向用户,用户可以在应用上下发各类操作指令。应用通过调用SDN控制器的北向接口的rest协议来下发这些操作指令。其中,本说明书实施例的应用可以为Web应用,
步骤S202,若操作指令为写入数据,记录操作指令对应的操作信息,得到操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将操作日志写入Cassandra数据库。
在本说明书实施例的步骤S202中,SDN控制器向上提供标准的rest北向接口供应用调用,向下记录应用下发的操作指令。处理操作指令数据时,写入底层Cassandra数据库,当上层应用需要调用历史操作日志时,SDN控制器从Cassandra数据库进行查询,并将查询结果返回给上层应用。
进一步的,在本说明书实施例的步骤S202中,Cassandra数据库的集群读写数据机制具体包括:
SDN控制器配置多个数据库节点的IP地址;
SDN控制器将任意一个数据库节点作为主数据库节点;
当SDN控制器接收到应用下发的操作指令时,判断是否能连接主数据库节点;
若SDN控制器判断出能连接主数据节点,触发数据库集群同步机制,以便将操作指令对应的操作信息同步到其他数据库节点;
若SDN控制器判断出不能连接主数据节点,连接另一个数据库节点;
若SDN控制器能连接成功,将另一个数据库节点设置为主数据库节点;
触发数据库集群同步机制,以便将操作指令对应的操作信息同步到其他数据库节点。
进一步的,在本说明书实施例的步骤S202中,将操作日志写入Cassandra数据库,具体包括:
根据预先设置的数据库表,将操作日志进行封装,并将封装后的操作日志写入Cassandra数据库。
需要说明的是,Cassandra数据库是开源分布式NoSQL数据库系统,采用Key-Value存储方式,与操作日志的需求匹配。数据库可以接收SDN控制器写入的各类操作数据,由于是集群,控制器只会将数据存入主数据库节点,当主数据库节点数据发生变化时,另外的备用节点会接收主数据库节点的同步数据请求,完成数据的同步,最终所有的数据库节点的数据始终保持一致。比如,数据库集群中存在三个数据库节点,若主数据库节点发生故障而失去连接的时候,其中的一个备用数据库节点将成为主数据库节点,这个时候,上层SDN控制器依然能正常读写数据,并不会因为数据库节点的故障,而造成数据的丢失。
步骤S203,若操作指令为读取数据,通过索引,在Cassandra数据库中查找出所需读取的操作日志,其中,索引包括操作日志写入Cassandra数据库的时间和/或操作指令。
步骤S204,将操作日志组装成预设格式,并将组装后的操作日志发上传至应用进行展示。
在本说明书实施例的步骤S204中,预设格式与应用的类型有关,将操作日志组装成预设格式,是为了应用可以显示该操作日志。
进一步的,若操作指令为写入数据之后,本说明书实施例还可以执行下述步骤:
判断Cassandra数据库内的操作日志的存储时间是否达到预先设置的阈值;
若判断出Cassandra数据库内的操作日志的存储时间未达到预先设置的阈值,执行记录操作指令对应的操作信息的步骤;
若判断出Cassandra数据库内的操作日志的存储时间已达到预先设置的阈值,将Cassandra数据库内的操作日志进行备份或清理,并执行记录操作指令对应的操作信息的步骤。其中,阈值可以为1个月。
需要说明的是,在网络环境中,应用会下发各类操作指令到SDN控制器,用户希望记录这些操作日志,以便出现问题的时候,可以通过操作日志快速定位故障,快速恢复业务。如附图3所示,本说明书实施例的操作日志写入系统框架主要分为三个部分,Web APP、SDN控制器和Cassandra数据库。
Web APP面向用户,用户可以在APP上下发各类操作指令,APP调用SDN控制器的rest接口来下发操作指令,操作指令下发完成后,写入至Cassandra数据库,同时,用户可以在APP界面上查看操作日志的历史记录。
SDN控制器向上提供标准的rest北向接口供Web APP调用,向下记录APP下发的操作指令,处理指令数据,封装成定义好的数据库表模板,写入底层Cassandra数据库,当上层APP需要调用操作日志历史记录的时候,控制器从数据库查询数据,并处理以后返回给上层APP。
Cassandra数据库是开源分布式NoSQL数据库系统,采用Key-Value存储方式,与操作日志的需求匹配。数据库接收控制器存入的各类操作数据,由于是集群,控制器只会将数据存入主数据库节点,当主数据库节点数据发生变化时,另外两个备用节点会接收主节点的同步数据请求,完成数据的同步,最终三台数据库节点的数据始终保持一致,实际生产环境中,当某一台节点发生故障而失去连接的时候,备用节点就会选一台成为主节点,这个时候,上层控制器依然能正常读写数据,并不会因为节点的故障,而造成数据的丢失。
本说明书实施例中操作日志写入系统的执行流程如附图4所示。控制器提供标准的北向rest接口供Web APP调用,当用户开始在APP上进行操作时,会触发rest接口输入数据。所有的rest接口输入操作,如果是增删改操作,则进入写数据库的流程;如果是读取数据库历史记录的操作,则通过索引查找数据库,组装成JSON格式后通过rest接口返回给APP,APP可以立即以图表的形式呈现出来。需要说明的是,增删改操作即为写入数据的操作,读取数据库历史记录的操作即为读取数据的操作。
其中,写数据库的流程具体如下,判断是否设置历史记录时间,如果设置,则根据要求备份或者清理老旧的日志数据,缓解服务器压力;如果不设置历史时间,则为常规的增删改操作,提取APP发过来的有用数据,封装成数据库表要求的对象格式,触发数据库集群主节点选举机制,写入数据库。其中,历史记录时间可以预先设置时间阈值,当前的时间达到时间阈值时,可以备份或清理老旧的操作日志。
数据库集群读写数据机制可以具体包括:
控制器内部会存储三个Cassandra数据库节点的ip地址,三个cassandra数据库在正常情况下,存储上是一个级别,也就是始终数据一致。控制器最开始会选一个节点作为主数据库节点,随后所有的写数据库操作,都会连接这台主节点数据库,当主节点数据库有数据变化时,会触发集群同步机制,另外两台数据库节点也会同步更新数据,保持与主节点数据一致。
实际生产环境中,如果主节点发生故障而导致不可用时,控制器此时连接不上主节点,会主动寻找三个数据库集群中的另一个数据库节点,连接成功后,切换主节点为当前连接的节点,继续正常工作。当故障节点恢复后,集群可以感知节点状态由down变为up,随即同步更新的数据,依然保持三个集群节点的数据一致性。如此,数据库具有高可靠性,操作日志不易丢失。
本说明书实施例具有以下优点:
1、具有高可靠性,能够在数据库节点发生故障时,不中断操作日志的读写,用户继续使用,数据不会丢失;
2、垃圾回收机制,对于老旧的日志,用户可以根据自己的需求,选择性的删除和备份数据,这样能保证数据库表里的数据不是持续增长,数据不会特别庞大。好处有几方面,首先用户在读数据的时候,响应更快;其次缓解服务器压力;最后还能缓解浏览器压力,因为浏览器一次性加载大量数据,会造成卡顿;
3、具有完整的数据库集群解决方案,多个数据库节点组成一个集群,彼此数据同步,保证节点数据级别的一致性,提高了数据库的抗风险能力;
4、提供完整的数据库客户端服务端方案,客户端在控制器发起连接,服务端在底层Cassandra数据库集群被动连接,满足操作日志的读写、存储、高可靠等需求。
需要说明的是,本说明书实施例提供了一套从应用到控制器端再到底层数据库的操作日志写入方法;本说明书实施例的SDN控制器端有完整的读写数据库的机制;本说明书实施例的数据库端有完整的集群数据同步机制,能够使多台集群节点数据保持一致;本说明书实施例的控制器对于数据库集群的多个节点据有监控功能,主节点具有选举机制,能够根据实际情况变化主节点;本说明书实施例的控制器对于老旧的操作日志数据,能根据用户自己的设定,来选择清理或者备份。
与本说明书实施例二相对应的是,图5为本申请实施例三提供的一种基于Cassandra数据库的操作日志写入装置的结构示意图,装置包括:接收单元1与写入单元2。
接收单元1用于接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令。
写入单元2用于若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
本申请实施例还提供一种基于Cassandra数据库的操作日志写入设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
本申请实施例还提供一种基于Cassandra数据库的操作日志写入介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于Cassandra数据库的操作日志写入方法,其特征在于,所述方法包括:
接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
2.根据权利要求1所述的基于Cassandra数据库的操作日志写入方法,其特征在于,所述Cassandra数据库的集群读写数据机制具体包括:
SDN控制器配置多个数据库节点的IP地址;
SDN控制器将任意一个数据库节点作为主数据库节点;
当SDN控制器接收到所述应用下发的操作指令时,判断是否能连接所述主数据库节点;
若SDN控制器判断出能连接所述主数据节点,触发数据库集群同步机制,以便将所述操作指令对应的操作信息同步到其他数据库节点。
3.根据权利要求2所述的基于Cassandra数据库的操作日志写入方法,其特征在于,若SDN控制器判断出不能连接所述主数据节点,所述方法还包括:
连接另一个数据库节点;
若SDN控制器能连接成功,将所述另一个数据库节点设置为主数据库节点;
触发数据库集群同步机制,以便将所述操作指令对应的操作信息同步到其他数据库节点。
4.根据权利要求1所述的基于Cassandra数据库的操作日志写入方法,其特征在于,所述将所述操作日志写入Cassandra数据库,具体包括:
根据预先设置的数据库表,将所述操作日志进行封装,并将封装后的操作日志写入Cassandra数据库。
5.根据权利要求1所述的基于Cassandra数据库的操作日志写入方法,其特征在于,若所述操作指令为读取数据,所述方法还包括:
通过索引,在Cassandra数据库中查找出所需读取的操作日志,其中,所述索引包括所述操作日志写入Cassandra数据库的时间和/或所述操作指令;
将所述操作日志组装成预设格式,并将组装后的操作日志发上传至所述应用进行展示。
6.根据权利要求1所述的基于Cassandra数据库的操作日志写入方法,其特征在于,若所述操作指令为写入数据之后,所述方法还包括:
判断所述Cassandra数据库内的操作日志的存储时间是否达到预先设置的阈值;
若判断出所述Cassandra数据库内的操作日志的存储时间未达到预先设置的阈值,执行所述记录所述操作指令对应的操作信息的步骤。
7.根据权利要求6所述的基于Cassandra数据库的操作日志写入方法,其特征在于,若判断出所述Cassandra数据库内的操作日志的存储时间已达到预先设置的阈值,所述方法还包括:
将Cassandra数据库内的操作日志进行备份或清理,并执行所述记录所述操作指令对应的操作信息的步骤。
8.一种基于Cassandra数据库的操作日志写入装置,其特征在于,所述装置包括:
接收单元,用于接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
写入单元,用于若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
9.一种基于Cassandra数据库的操作日志写入设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
10.一种基于Cassandra数据库的操作日志写入介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
接收应用通过北向接口下发的操作指令,其中,所述操作指令是由用户下发至所述应用的指令;
若所述操作指令为写入数据,记录所述操作指令对应的操作信息,得到所述操作信息对应的操作日志,并根据Cassandra数据库的主节点选举机制,将所述操作日志写入Cassandra数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010819501.8A CN112084171B (zh) | 2020-08-14 | 2020-08-14 | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010819501.8A CN112084171B (zh) | 2020-08-14 | 2020-08-14 | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084171A true CN112084171A (zh) | 2020-12-15 |
CN112084171B CN112084171B (zh) | 2024-04-12 |
Family
ID=73729119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010819501.8A Active CN112084171B (zh) | 2020-08-14 | 2020-08-14 | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084171B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612851A (zh) * | 2020-12-24 | 2021-04-06 | 南京三眼精灵信息技术有限公司 | 多中心数据同步方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737131A (zh) * | 2012-06-21 | 2012-10-17 | 广州从兴电子开发有限公司 | 一种针对数据库重做日志的处理方法及系统 |
US20150074052A1 (en) * | 2012-10-30 | 2015-03-12 | Vekatachary Srinivasan | Method and system of stateless data replication in a distributed database system |
CN105512266A (zh) * | 2015-12-03 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 一种实现分布式数据库操作一致性的方法及装置 |
US9400607B1 (en) * | 2015-07-28 | 2016-07-26 | Igneous Systems, Inc. | Stateless processing of replicated state for distributed storage systems |
CN106372160A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库及管理方法 |
US20170032007A1 (en) * | 2015-07-02 | 2017-02-02 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
CN106648994A (zh) * | 2017-01-04 | 2017-05-10 | 华为技术有限公司 | 一种备份操作日志的方法,设备和系统 |
CN107016039A (zh) * | 2017-01-06 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 数据库写入的方法和数据库系统 |
US20180300205A1 (en) * | 2017-04-18 | 2018-10-18 | Netapp, Inc. | Systems and methods for backup and restore of master-less distributed database clusters |
US20200065199A1 (en) * | 2018-08-25 | 2020-02-27 | Panzura, Inc. | Journaling data received in a cloud-based distributed computing environment |
-
2020
- 2020-08-14 CN CN202010819501.8A patent/CN112084171B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737131A (zh) * | 2012-06-21 | 2012-10-17 | 广州从兴电子开发有限公司 | 一种针对数据库重做日志的处理方法及系统 |
US20150074052A1 (en) * | 2012-10-30 | 2015-03-12 | Vekatachary Srinivasan | Method and system of stateless data replication in a distributed database system |
US20170032007A1 (en) * | 2015-07-02 | 2017-02-02 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
US9400607B1 (en) * | 2015-07-28 | 2016-07-26 | Igneous Systems, Inc. | Stateless processing of replicated state for distributed storage systems |
CN105512266A (zh) * | 2015-12-03 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 一种实现分布式数据库操作一致性的方法及装置 |
CN106372160A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库及管理方法 |
CN106648994A (zh) * | 2017-01-04 | 2017-05-10 | 华为技术有限公司 | 一种备份操作日志的方法,设备和系统 |
CN107016039A (zh) * | 2017-01-06 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 数据库写入的方法和数据库系统 |
US20180300205A1 (en) * | 2017-04-18 | 2018-10-18 | Netapp, Inc. | Systems and methods for backup and restore of master-less distributed database clusters |
US20200065199A1 (en) * | 2018-08-25 | 2020-02-27 | Panzura, Inc. | Journaling data received in a cloud-based distributed computing environment |
Non-Patent Citations (2)
Title |
---|
朱建生;汪健雄;张军锋;: "基于NoSQL数据库的大数据查询技术的研究与应用", 中国铁道科学, no. 01 * |
赵春扬;肖冰;郭进伟;钱卫宁;: "一致性协议在分布式数据库系统中的应用", 华东师范大学学报(自然科学版), no. 05 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612851A (zh) * | 2020-12-24 | 2021-04-06 | 南京三眼精灵信息技术有限公司 | 多中心数据同步方法及装置 |
CN112612851B (zh) * | 2020-12-24 | 2024-03-08 | 南京三眼精灵信息技术有限公司 | 多中心数据同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112084171B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170768B (zh) | 数据库同步方法、装置及可读介质 | |
CN110413685B (zh) | 数据库服务切换方法、装置、可读存储介质和计算机设备 | |
CN110162512B (zh) | 一种日志检索方法、装置及存储介质 | |
CN110807013B (zh) | 用于分布式数据存储集群的数据迁移方法和装置 | |
CN102158540A (zh) | 分布式数据库实现系统及方法 | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
CN111506253B (zh) | 一种分布式存储系统及其存储方法 | |
RU2653254C1 (ru) | Способ, узел и система управления данными для кластера базы данных | |
CN109284066B (zh) | 一种数据处理方法、装置、设备及系统 | |
CN106990979A (zh) | 一种配置信息更新方法、系统、客户端及服务器 | |
CN112307045A (zh) | 一种数据同步方法及系统 | |
CN112860697A (zh) | 分布式数据库表结构变更方法、装置及系统 | |
CN112783868A (zh) | 分布式数据库表结构灰度升级方法、装置及系统 | |
CN115391337A (zh) | 数据库分区的方法、装置、存储介质及电子设备 | |
CN110895545B (zh) | 共享数据同步方法及装置 | |
CN114443768A (zh) | 分布式数据库的主备切换方法、装置及可读存储介质 | |
CN112084171A (zh) | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 | |
CN111865632A (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
US20190050455A1 (en) | Adaptive page rendering for a data management system | |
US20180225333A1 (en) | Data write/import performance in a database through distributed memory | |
CN113326288A (zh) | 数据处理方法、装置、电子设备 | |
CN115934742A (zh) | 一种故障处理方法、装置、设备及存储介质 | |
CN115827590A (zh) | 数据迁移、上云方法、计算设备及计算机存储介质 | |
CN112699129A (zh) | 一种数据处理系统、方法及装置 | |
CN113687935A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |