CN105306514A - 基于Zookeeper的录音文件分布存储方法和系统 - Google Patents
基于Zookeeper的录音文件分布存储方法和系统 Download PDFInfo
- Publication number
- CN105306514A CN105306514A CN201410370823.3A CN201410370823A CN105306514A CN 105306514 A CN105306514 A CN 105306514A CN 201410370823 A CN201410370823 A CN 201410370823A CN 105306514 A CN105306514 A CN 105306514A
- Authority
- CN
- China
- Prior art keywords
- node
- storage server
- recording storage
- zookeeper
- recording
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于Zookeeper的录音文件分布式存储方法,该方法包括:利用开源Zookeeper软件搭建一个Zookeeper集群,所有的录音存储服务器和语音交换设备都作为Zookeeper客户端连接到Zookeeper集群,并注册为临时节点;每个录音存储服务器周期性的将自己的负载情况和存储路径写入自己对应的临时节点,每个语音交换设备实时监测所有录音存储服务器对应的临时节点的负载情况,通过监测到的负载情况选择录音存储服务器进行录音存储。本发明通过负载情况来选择存储服务器,极大的提高了读写性能。
Description
技术领域
本发明涉及通信领域,尤其涉及基于Zookeeper的录音文件分布式存储方法和系统。
背景技术
在特种通信行业(如公安、银行、保险、电力等)的语音交换网中,录音用于对关键岗位的全面监控,是一种存在依据。这些语音交换网需要多台语音交换设备同时工作,对正在进行的用户通话进行录音,并存储为录音文件,存储到存储节点上。
为了解决大数据量的语音存储问题,传统方案是在机房布置大容量的存储,但这些大容量存储的价格高昂、不易扩展,并且不支持分布式,易地容灾性能差。目前较好的方案是:引入Zookeeper协调服务,将所有的语音存储服务器作为Zookeeper客户端,注册到Zookeeper的树节点上,所有的语音交换设备也注册到Zookeeper的树节点上,语音交换设备从ZK(Zookeeper的简称)树上的存储节点中,通过轮询、负荷分担、或LRU(最近最少使用)的机制选出一个存储节点来存储数据。这种方法解决了大容量存储问题,支持分布式存储,而且通过一定手段可做到异地容灾(比如同时向位于不同物理地点的存储节点写数据),但其缺点在于,录音文件不能集中管理,做不到很细致的去分担读写操作。
发明内容
为了克服现有技术的缺陷,提高存储服务器的读写性能,本发明提出了一种新的基于Zookeeper的录音文件分布式存储方法,该方法包括:
利用开源Zookeeper软件搭建一个Zookeeper集群,所有的录音存储服务器和语音交换设备都作为Zookeeper客户端连接到Zookeeper集群,并注册为临时节点;每个录音存储服务器周期性的将自己的负载情况和存储路径写入自己对应的临时节点,每个语音交换设备实时监测所有录音存储服务器对应的临时节点的负载情况,通过监测到的负载情况选择录音存储服务器进行录音存储。
优选的,所述Zookeeper集群采用树形结构,根目录下包含一个存储节点父目录和一个交换设备节点父目录,存储节点父目录下包含所有的录音存储服务器对应的临时节点,交换设备节点父目录下包含所有的语音交换设备对应的临时节点;每个语音交换设备在存储节点父目录上挂接water,并在该父目录下的每个录音存储服务器对应的临时节点上挂接watcher;当录音存储服务器对应的临时节点的负载发生变化时,每个语音交换设备在该临时节点上挂接的watcher被触发,该临时节点的负载情况会同步到每个语音交换设备。
优选的,通过监测到的负载情况选择录音存储服务器进行录音存储具体为:每个语音交换设备内部保存每个录音存储服务器对应的临时节点的负载情况,当要存储某个语音文件时,当前工作的语音交换设备从中选取负载最少的临时节点,并读取该节点上的存储路径,将数据存储到该节点对应的录音存储服务器。
优选的,在不同的物理地点部署录音存储服务器。
基于相同的构思,本发明还提出一种基于Zookeeper的录音文件分布式存储系统,包括:利用开源Zookeeper软件搭建的一个Zookeeper集群,所有的录音存储服务器和语音交换设备都作为Zookeeper客户端连接到Zookeeper集群,并注册为临时节点;每个录音存储服务器周期性的将自己的负载情况和存储路径写入自己对应的临时节点,每个语音交换设备实时监测所有录音存储服务器对应的临时节点的负载情况,通过监测到的负载情况选择录音存储服务器进行录音存储。
优选的,所述Zookeeper集群采用树形结构,根目录下包含一个存储节点父目录和一个交换设备节点父目录,存储节点父目录下包含所有的录音存储服务器对应的临时节点,交换设备节点父目录下包含所有的语音交换设备对应的临时节点;每个语音交换设备在存储节点父目录上挂接water,并在该父目录下的每个录音存储服务器对应的临时节点上挂接watcher;当录音存储服务器对应的临时节点的负载发生变化时,每个语音交换设备在该临时节点上挂接的watcher被触发,该临时节点的负载情况会同步到每个语音交换设备。
进一步的,通过监测到的负载情况选择录音存储服务器进行录音存储具体为:每个语音交换设备内部保存每个录音存储服务器对应的临时节点的负载情况,当要存储某个语音文件时,当前工作的语音交换设备从中选取负载最少的临时节点,并读取该节点上的存储路径,将数据存储到该节点对应的录音存储服务器。
优选的,所述录音存储服务器部署在不同的物理地点。
本发明的优点在于:1,可以存储海量录音文件;2,支持分布式部署,大大降低了硬件成本,提高了安全性;3,通过负载情况来选择存储服务器,极大的提高了读写性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的录音文件存储过程的流程图;
图2是本发明实施例的Zookeeper树结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例;需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例以某行业专网为例,用户规模在30万左右,需要对所有的用户语音通话进行录音,根据计算,一天所需的存储空间大概为100G左右,语音文件保存6个月,则需要的存储容量为6*30*100=18,000G。本实施例采用10个录音存储服务器,部署在不同的地点,每个录音存储服务器的容量为2T,如果不满足业务需求,可以通过再增加服务器解决,另外还配置3台语音交换设备,每台支持10万左右用户。
本实施例的录音文件的存储过程如图1所示,具体步骤如下:
(1)录音存储服务器在Zookeeper集群上注册临时节点。为了实现分布式存储,本实施例首先搭建一个3台服务器组成的Zookeeper(简称ZK)集群。工作时,在10个录音存储服务器上安装ZK客户端,这些客户端连接到ZK集群中的任意一台服务器,并在ZK树上创建自已的临时节点(存储服务器退出时,该节点自动消失),录音存储服务器周期性的向自己对应的节点更新自已的磁盘使用情况和存储路径。
(2)3台语音交换设备也作为ZK客户端连接上ZK集群,并在ZK树上创建自已的临时节点。本实施例的ZK树结构如图2所示,根目录/Root下包含一个存储节点父目录/Storage和一个交换设备节点父目录/PBX,/Storage目录下包含所有的录音存储服务器对应的临时节点(/Node1、/Node2……/Node10),交换设备节点父目录下包含所有的语音交换设备对应的临时节点(/Pbx1、/Pbx2、Pbx3)。
每个交换设备实时监测/Node1、/Node2……/Node10的负载情况,具体实现为:每个语音交换设备在/Storage目录上挂接water,并在/Storage目录下的/Node1、/Node2……/Node10上挂接watcher;当某个临时节点的负载发生变化时,每个语音交换设备在该临时节点上挂接的watcher被触发,该临时节点的负载情况就会同步到每个语音交换设备;每个语音交换设备内部保存/Node1、/Node2……/Node10的负载情况,并形成一个链表。
(3)用户进行语音通话。
(4)当要对某个通话进行录音并存储为某个语音文件时,当前工作的语音交换设备从节点负载情况链表中选取负载最少的临时节点。
(5)当前工作的语音交换设备读取选中的节点上的存储路径,将数据存储到该节点对应的录音存储服务器。同理,存储下一个语音文件时,再选取下一个存储服务器。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种基于Zookeeper的录音文件分布式存储方法,其特征在于,该方法包括:
利用开源Zookeeper软件搭建一个Zookeeper集群,所有的录音存储服务器和语音交换设备都作为Zookeeper客户端连接到Zookeeper集群,并注册为临时节点;
每个录音存储服务器周期性的将自己的负载情况和存储路径写入自己对应的临时节点,每个语音交换设备实时监测所有录音存储服务器对应的临时节点的负载情况,通过监测到的负载情况选择录音存储服务器进行录音存储。
2.根据权利要求1所述的方法,其特征在于:
所述Zookeeper集群采用树形结构,根目录下包含一个存储节点父目录和一个交换设备节点父目录,存储节点父目录下包含所有的录音存储服务器对应的临时节点,交换设备节点父目录下包含所有的语音交换设备对应的临时节点;
每个语音交换设备在存储节点父目录上挂接water,并在该父目录下的每个录音存储服务器对应的临时节点上挂接watcher;当录音存储服务器对应的临时节点的负载发生变化时,每个语音交换设备在该临时节点上挂接的watcher被触发,该临时节点的负载情况会同步到每个语音交换设备。
3.根据权利要求1或2所述的方法,其特征在于,通过监测到的负载情况选择录音存储服务器进行录音存储具体为:
每个语音交换设备内部保存每个录音存储服务器对应的临时节点的负载情况,当要存储某个语音文件时,当前工作的语音交换设备从中选取负载最少的临时节点,并读取该节点上的存储路径,将数据存储到该节点对应的录音存储服务器。
4.根据权利要求1或2所述的方法,其特征在于:在不同的物理地点部署录音存储服务器。
5.一种基于Zookeeper的录音文件分布式存储系统,其特征在于,该系统包括:
利用开源Zookeeper软件搭建的一个Zookeeper集群,所有的录音存储服务器和语音交换设备都作为Zookeeper客户端连接到Zookeeper集群,并注册为临时节点;
每个录音存储服务器周期性的将自己的负载情况和存储路径写入自己对应的临时节点,每个语音交换设备实时监测所有录音存储服务器对应的临时节点的负载情况,通过监测到的负载情况选择录音存储服务器进行录音存储。
6.根据权利要求5所述的系统,其特征在于:
所述Zookeeper集群采用树形结构,根目录下包含一个存储节点父目录和一个交换设备节点父目录,存储节点父目录下包含所有的录音存储服务器对应的临时节点,交换设备节点父目录下包含所有的语音交换设备对应的临时节点;
每个语音交换设备在存储节点父目录上挂接water,并在该父目录下的每个录音存储服务器对应的临时节点上挂接watcher;当录音存储服务器对应的临时节点的负载发生变化时,每个语音交换设备在该临时节点上挂接的watcher被触发,该临时节点的负载情况会同步到每个语音交换设备。
7.根据权利要求5或6所述的系统,其特征在于,通过监测到的负载情况选择录音存储服务器进行录音存储具体为:每个语音交换设备内部保存每个录音存储服务器对应的临时节点的负载情况,当要存储某个语音文件时,当前工作的语音交换设备从中选取负载最少的临时节点,并读取该节点上的存储路径,将数据存储到该节点对应的录音存储服务器。
8.根据权利要求5或6所述的系统,其特征在于:所述录音存储服务器部署在不同的物理地点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410370823.3A CN105306514A (zh) | 2014-07-30 | 2014-07-30 | 基于Zookeeper的录音文件分布存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410370823.3A CN105306514A (zh) | 2014-07-30 | 2014-07-30 | 基于Zookeeper的录音文件分布存储方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105306514A true CN105306514A (zh) | 2016-02-03 |
Family
ID=55203262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410370823.3A Pending CN105306514A (zh) | 2014-07-30 | 2014-07-30 | 基于Zookeeper的录音文件分布存储方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105306514A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302648A (zh) * | 2016-07-29 | 2017-01-04 | 北京小米移动软件有限公司 | 业务处理方法及装置 |
WO2017143704A1 (zh) * | 2016-02-22 | 2017-08-31 | 中兴通讯股份有限公司 | 一种录音方法、主终端、子终端和系统 |
CN107483640A (zh) * | 2017-09-25 | 2017-12-15 | 山东浪潮云服务信息科技有限公司 | 一种缓存更新方法、服务器及业务系统 |
CN109525649A (zh) * | 2018-10-29 | 2019-03-26 | 北京神州泰岳软件股份有限公司 | 一种zookeeper客户端的数据处理方法及装置 |
CN110071975A (zh) * | 2019-04-23 | 2019-07-30 | 深圳易帆互动科技有限公司 | 异步上报的动态服务器管理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1819054A2 (en) * | 2006-02-02 | 2007-08-15 | Samsung Electronics Co., Ltd. | LDPC decoding apparatus and method based on node memory |
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN103078805A (zh) * | 2012-12-31 | 2013-05-01 | 北京京东世纪贸易有限公司 | 使Zookeeper的读性能支持水平扩展的系统和方法 |
CN103475718A (zh) * | 2013-09-11 | 2013-12-25 | 北京京东尚科信息技术有限公司 | 一种数据缓存的方法和系统 |
CN103581276A (zh) * | 2012-08-09 | 2014-02-12 | 北京亿赞普网络技术有限公司 | 集群管理装置、系统、业务客户端及相应方法 |
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
-
2014
- 2014-07-30 CN CN201410370823.3A patent/CN105306514A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1819054A2 (en) * | 2006-02-02 | 2007-08-15 | Samsung Electronics Co., Ltd. | LDPC decoding apparatus and method based on node memory |
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN103581276A (zh) * | 2012-08-09 | 2014-02-12 | 北京亿赞普网络技术有限公司 | 集群管理装置、系统、业务客户端及相应方法 |
CN103078805A (zh) * | 2012-12-31 | 2013-05-01 | 北京京东世纪贸易有限公司 | 使Zookeeper的读性能支持水平扩展的系统和方法 |
CN103475718A (zh) * | 2013-09-11 | 2013-12-25 | 北京京东尚科信息技术有限公司 | 一种数据缓存的方法和系统 |
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
Non-Patent Citations (1)
Title |
---|
窦春斌等: "一种宽带集群系统录音服务器会话数据的存储策略", 《电信科学》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017143704A1 (zh) * | 2016-02-22 | 2017-08-31 | 中兴通讯股份有限公司 | 一种录音方法、主终端、子终端和系统 |
CN106302648A (zh) * | 2016-07-29 | 2017-01-04 | 北京小米移动软件有限公司 | 业务处理方法及装置 |
CN106302648B (zh) * | 2016-07-29 | 2019-05-07 | 北京小米移动软件有限公司 | 业务处理方法及装置 |
CN107483640A (zh) * | 2017-09-25 | 2017-12-15 | 山东浪潮云服务信息科技有限公司 | 一种缓存更新方法、服务器及业务系统 |
CN109525649A (zh) * | 2018-10-29 | 2019-03-26 | 北京神州泰岳软件股份有限公司 | 一种zookeeper客户端的数据处理方法及装置 |
CN109525649B (zh) * | 2018-10-29 | 2021-09-17 | 鼎富智能科技有限公司 | 一种zookeeper客户端的数据处理方法及装置 |
CN110071975A (zh) * | 2019-04-23 | 2019-07-30 | 深圳易帆互动科技有限公司 | 异步上报的动态服务器管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019192B2 (en) | Policy-based hierarchical data protection in distributed storage | |
CN105306514A (zh) | 基于Zookeeper的录音文件分布存储方法和系统 | |
US9936268B2 (en) | User partitioning in a communication system | |
CN101808012B (zh) | 一种云环境下的数据备份方法 | |
WO2019152117A1 (en) | Systems and methods for synchronizing microservice data stores | |
US11997148B1 (en) | User configurable data storage | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
CN111130835A (zh) | 数据中心双活系统、切换方法、装置、设备及介质 | |
CN102737130A (zh) | 处理hdfs元数据的方法及系统 | |
US11442827B2 (en) | Policy-based hierarchical data protection in distributed storage | |
CN112202853B (zh) | 数据同步方法、系统、计算机设备和存储介质 | |
CN104050102A (zh) | 一种电信系统中的对象存储方法及装置 | |
CN103581229A (zh) | 分布式文件系统、文件访问方法以及客户端 | |
CN109165112A (zh) | 一种元数据集群的故障恢复方法、系统及相关组件 | |
CN105760398A (zh) | 一种日志记录系统及日志记录操作方法 | |
US20140351210A1 (en) | Data processing system, data processing apparatus, and storage medium | |
CN102883077A (zh) | 一种集散式录音系统及录音查询方法 | |
US11256584B2 (en) | One-step disaster recovery configuration on software-defined storage systems | |
CN111176904B (zh) | 一种私有云架构下的数据备份的方法、系统、设备及介质 | |
CN105338069A (zh) | 跨web容器的会话共享方法、系统及web应用服务器 | |
US8982902B1 (en) | Backup server architecture in a VoIP system | |
CN103176861A (zh) | 用于数据备份的存储系统及备份方法 | |
CN104601491A (zh) | 分布式队列处理方法及系统 | |
US9460046B1 (en) | Common computer hierarchal system for virtualization of network function | |
CN109788007B (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: 20160203 |
|
WD01 | Invention patent application deemed withdrawn after publication |