[发明专利]一种集群中单机多节点的实现方法有效
申请号: | 201210447644.6 | 申请日: | 2012-11-09 |
公开(公告)号: | CN102999571A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 曹继光 | 申请(专利权)人: | 深圳市宜搜科技发展有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 518026 广东省深圳市福田区滨*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 集群 单机 节点 实现 方法 | ||
技术领域
本发明涉及数据库配置领域,特别涉及一种集群中单机多节点的实现方法。
背景技术
Cassandra 是目前在分布式大数据存储领域,应用比较广泛的一种非关系数据库。分布式数据库可以称为为集群,一般分布式数据库有两个核心模块,存储引擎模块和分布式模块。Cassandra的存储引擎模块类似于Google的BigTable模型,而分布式模块来自于Amazon的Dynamo模型。两种模块的完美结合,成为存储和处理大规模非结构化及半结构化数据最理想的解决方案。与领域内其它分布式非关系数据库相比,其突出优势在于:
1、无单点故障:Cassandra 集群中没有中心节点,任何一台服务器发生故障都不会影响整个集群的对外服务质量,这意味着其可以提供不间断的稳定服务。
2、便利的故障恢复及水平扩展能力:通过简单的替换故障服务器实现故障恢复,通过添加新服务器来实现水平扩展, 支持迅速扩张的数据规模;恢复和扩展期间,不需改动或重启现有节点。
3、写入速度快,性能高:在Cassandra中,写操作被均匀的分散到集群的各个节点上,且数据首先被保存在内存中,达到一定量再批量持久化到磁盘;所以,其写入性能极佳。
Cassandra 集群的部署策略,基于Dynamo模型来实现。Cassandra集群由若干个节点组成,每个节点都保存集群内所有其它节点的信息列表, 每个节点的信息和其所在服务器的IP地址一一对应。节点之间的通讯,通过Gossip协议相互发送各种状态和事件消息进行通讯,进行集群内的状态同步和事件通知。消息体中包含发送者的IP地址,以表明来源;这种机制,使得一台服务器上只能部署一个Cassandra节点。如图1所示,为Cassandra 集群的拓扑结构图,其中,9个节点组成一个集群,共使用了9台服务器。
按照BigTable 模型, Cassandra集群中,每个节点的数据文件到了一定数目,将按一定规则进行合并成更大的文件。合并机制的存在,使得一个节点不能很好的利用多块磁盘,如果合并后的大文件超出了一块磁盘的容量,将无法存放。
Cassandra 使用的Dynamo模型,要求集群中节点和服务器必须一一对应,同时Cassandra所采用的BigTable 存储引擎,也限制了一个节点只能使用一块磁盘,大大限制了对多磁盘服务器的硬件利用率。
发明内容
本发明解决的技术问题在于提供了一种集群中单机多节点的实现方法,以克服Cassandra只能在一台服务器上部署一个节点,无法充分利用多块磁盘的局限。
为解决上述问题,本发明提供的一种集群中单机多节点的实现方法包括,
在集群中服务器上部署多个节点后,为每个节点增加一个节点信息类;将节点信息类加入节点信息列表,将节点信息类加入到消息的消息头,并更新网络连接模块中的节点信息列表,通知到集群中所有节点;
将服务器磁盘进行编号,并列出服务器磁盘的二维列表;
按照节点数目计算出把一致性哈希环等分的令牌Token列表;
按照深度优先策略遍历二维表,将磁盘编号和Token一一对应起来;
挑选两个以上节点做种子节点,所述种子节点不能在同一台服务器上,将种子节点与token信息写入到程序的配置文件, 部署到节点对应的磁盘文件系统,然后启动种子节点,再依次启动其它节点,以完成集群搭建。
上述的方法,其中,所述节点信息类封装所在服务器的IP地址,以及节点间通讯端口;以IP地址以及内部通讯端口作为一个节点的唯一标识。
上述的方法,其中,所述通知到集群中所有节点具体通过Gossip协议通知其他节点;Gossip协议的实现过程:当一个节点信息发生改变,随机选择2-3个节点,根据IP地址和端口号告知信息的变化,随机选择的2-3个节点又会随机的选择其他节点告知,依次类推,所有的节点都会接收到集群中任一节点信息的改变。
上述的方法,其中,把哈希环等分是使集群中各节点所分配的数据是等量的。
上述的方法,其中,所述启动种子节点,再依次启动其它节点,以完成集群搭建具体包括,
种子节点先启动,其他节点启动之后即刻将自身的信息发给种子节点,然后种子节点再将收到的信息转发集群中所有节点,如此循环往复,实现集群中所有节点信息的共享,完成集群搭建。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市宜搜科技发展有限公司,未经深圳市宜搜科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210447644.6/2.html,转载请声明来源钻瓜专利网。