ZooKeeper源码解析——学习ApacheZookeeper原理,掌握其核心组件的数据模型、监听通知机制等

作者:禅与计算机程序设计艺术

1.简介

随着互联网的飞速发展,各种信息数据越来越多,数据的存储也越来越依赖于分布式文件系统或NoSQL数据库。而传统的单机数据库往往不具备弹性可扩展性和高可用容错能力,在面对海量数据时难免会遇到性能瓶颈。为了解决这一问题,人们又提出了分布式文件系统或NoSQL数据库,但这类数据库通常都采用Master-Slave模式,需要一个单点的协调者(Master)负责全局管理,并且不具备水平扩展能力。因此,当数据量达到一定规模后,仍然会面临如何横向扩展的问题。
在分布式系统中,最知名的就是 Apache Hadoop,它是一个开源的框架,提供大数据集并行处理的能力,其底层依赖 HDFS 来存储数据,同时支持MapReduce编程模型来进行大数据分析。HDFS 有着很好的扩展性,但是当数据规模比较小或者需要频繁访问时,它的延迟较高;另外,Hadoop 的 Master 节点虽然可以做到高可用,但是无法做到动态扩缩容。
当我们考虑到实时计算的需求时,分布式系统还需要一种可靠的消息队列服务来支持异步通信,Apache Kafka 是目前最流行的开源分布式消息队列服务。但是,Kafka 不能直接用来作为存储系统来存储海量数据,因为 Kafka 本身只能作为一个轻量级的分布式日志收集系统,不具备关系型数据库管理功能。因此,我们需要另一种高吞吐量、低延迟、支持关系型数据库功能的存储系统。
总之,当我们考虑到海量数据存储、实时计算和快速响应要求时,那么 Apache Hadoop + Apache Kafka + Apache Cassandra 将成为实现分布式系统的理想选择。Apache Cassandra 是一个基于

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132014014