Apache Kafka---(1)

初识kafka

Apache Kafka是一种分布式发布-订阅消息系统。具有分布式,可划分的特点,提供冗余备份的持久性日志服务。用于处理活跃的流式数据。

那么Apache Kafka因何而生的呢?
由于一个大系统由各个小的子系统组成,同时搞定在线应用(消息)和离线应用(数据文件,日志)会存在相应的难度,Kafka便由此而来。

相对比于其他消息系统(Active MQ和Rabbit MQ等),Kafka具有如下优点:
1.降低了系统组网复杂度
2.降低了编程复杂度

Apache Kafka的构架

如图所示
这里写图片描述
kafka的构架为显示分布式构架,producers和consumers实现kafka的注册的接口,数据从producers发送至brokers(承担一个中间缓存,分发的角色),brokers再将数据分发注册到系统中的consumer,实现活跃的数据和离线处理系统之间的缓存。

几个基本概念

1.Topic:特指kafka处的消息源(feeds of messages)的不同分类
2.Partition:Topi物理上的分组,一个Topic可分为多个partition
3.Message:消息,它是通信的基本单位,每个producer可以向一个Topic发布一些消息
4.Producers:消息和数据生产者,向kafka的一个topic发布消息的过程
5.Consumers:消息和数据的消费者,订阅Topic并处理其发布的消息
6.Broker:缓存处理

消息的发送过程

这里写图片描述
1.Producer根据指定的partition的方法,将消息发送给指定topic的partition里
2.kafka集群接收到producer发送过来的消息,并将其持久化到硬盘
3.Consumer从kafka集群pull数据

Kafka的设计要点

1.直接使用linux文件系统的cache,高效缓存数据
2.数据在磁盘上存取代价为O(1)
3.显式分布式,所有的Producer,Consumer和Broker都会有多个,并且均为分布式的,Producer和Broker没有负载均衡,然而所有的Broker和Consumer都有在zookeeper注册,保存一些元数据信息,如果有任意一个进行了修改,那么zookeeper便会通知其他的Broker和Consumer更新信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章