频道栏目
首页 > 资讯 > 云计算 > 正文

Apache Kafka简介

16-12-21        来源:[db:作者]  
收藏   我要投稿

Apache Kafka简介:Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache Kafka项目的一部分。Apache Kafka是一种快速、可扩展的、设计内在就是分布式的,分区和可复制的提交日志服务。

Apache Kafka与传统消息系统相比有以下不同

它被设计为一个分布式系统,易于向外扩展 它同时为发布和订阅提供高吞吐量 它支持多订阅者,当失败时能自动平衡消费者 它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序

Apache Kafka架构

生产者(Producer)是能够发布消息到话题的任何对象。 已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。 话题(Topic)是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。


- Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群。
- Topic:一类消息,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发。
- Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。
- Segment:partition物理上由多个segment组成。
- offset:每个partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到partition中。partition中的每个消息都有一个连续的序列号叫做offset,用于partition唯一标识一条消息.


kafka的负载均衡与HA

producer根据用户指定算法,将消息发送到指定的Partition 存在多个Partition,每个Partition有自己的replica(副本),每个replica分布在不同的broker节点上 多个Partition时需要通过zookeeper的选取机制选取出leader Partition,leader Partition负责读写,并由zookeeper负责fail over 通过zookeeper管理broker与consumer的动态加入与离开

kafka特点

支持高Throughput(高吞吐量)的应用,源自多分区 无需停机即可扩展机器 持久化:通过将数据持久化到硬盘以及replication防止数据丢失 支持online(实时消费)和offline(离线消费,比如按天消费)的场景。 依赖Zookeeer集群,状态信息都写在Zookeeer集群里
相关TAG标签
上一篇:关于opentack的(3)novaapi简析
下一篇:spark与kafka连接测试
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站