来源
在技术的发展过程中,与人类世界是一样的一样的。现在的人都非常看重出身,当然这里不是否定出身差的就不能成功,成材。只是概率相对低。这也是现在社会的基本情况,社会阶级的固化,对于一般人只能出现意外才可以打破阶级的壁垒,而且只能是一点一点的打破,一个暴发户短时间内,甚至一代人都不能成为上层阶级。
技术领域也是这种现象,Kafka 起初是LinkedIn公司采用Scala语言开发的一个多分区,多副本且基于Zookeeper协调的分布式消息系统,现已捐献给Apache基金会,成为顶级项目。目前的Kafka已经是一个分布式流式处理平台,因具备高吞吐,可以持久化,可水平扩展,支持流数据处理等多种特性而广泛使用。
从Kafka的背景可以看出,Kafka 出生名门,后又进入最顶级的研究所培育,最终成为当下最热门的分布式流式处理工具。
Kafka 能有当下的地位,出身是一部分,自身又具备那些特点呢?
消息系统:Kafka 与传统的消息系统(ActiveMQ,RabbitMQ)都具备解耦功能,存储,扩展性,削峰,可恢复性,缓冲,异步通信。Kafka 还具备一些一般消息系统不具备的消息顺序性及快照回溯消费的功能。
存储系统:Kafka把消息持久化到硬盘,相比于基于内存存储的系统更加可靠,降低数据丢失的风险。Kafka 的持久化和多副本机制,可以把Kafka当作长期存储系统使用。
流式处理平台:Kafka 不仅为每个流行的流式处理工具提供了数据来源,还提供了一个完整的流式处理类库、
ZooKeeper 简介
由于Kafka依赖于ZooKeeper,简单介绍下Zookeeper。
ZooKeeper为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper曾经是Hadoop的一个子项目,但现在是一个独立的顶级项目。
ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥有一个共享的配置服务。更新是全序的。
Kafka体系结构
Kafka 包含Producer(生成者),broker,Consumer(消费者) 及ZooKeeper 集群。
ZooKeeper 用于节点的维护,选举。早期的Kafka(0.9)版本中,offset 数据记录在Zookeeper,新的版本中都记录在Kafka 内部topic __consumer_offsets 。
流程: Producer 负责将消息发送至Broker ,Broker 把接收到的消息存储到磁盘中,Consumer 在Broker 订阅并消费消息。
体系涉及的术语
Producer:生产者,消息的发送方。
Broker:服务节点。可以简单的理解为一个独立的Kafka服务节点或Kafka服务实例,一般情况还可以看作是一台Kafka服务器,前提是这台服务器只部署了一个Kafka实例.多个Broker组成一个Kafka集群。
Consumer:消费者,消息的接收方。
头条号
微信公告号
来源:oschina
链接:https://my.oschina.net/u/3247419/blog/3163157