登录
首页大数据时代关于Kafka,你还需要知道这些!
关于Kafka,你还需要知道这些!
2020-07-16
收藏

关于Kafka,相信大家都不陌生,一个消息流的处理平台,目前很多开发人员都把它当做一个生产&消费的中间件。今天小编就跟大家系统介绍一下Kafka,希望对大家有所帮助。

一、Kafka概念

Kafka是一个消息系统,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。Kafka是由LinkedIn开发出来的,一个分布式基于发布/订阅的消息系统,使用Scala进行编写。 Kafka具有更高的吞吐量,内置的分区也使得kafka具有更好的容错和伸缩性,这些特性使得 Kafka应用广泛,是大型消息处理应用的首选之策。

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。简单来理解,Kafka就像是一个邮箱,生产者可以当做发送邮件的人,消费者就是收邮件的人,Kafka是用来存东西的平台,只不过Kafka提供了一些处理邮件的机制。

二、Kafka基本架构

Broker:Kafka节点,一个Kafka节点就是一个broker,多个broker能够组成一个Kafka集群

Topic:一类消息,消息存放的目录也就是主题,比兔page view日志、click日志等,都能够以topic的形式存在,Kafka集群可以同时负责多个topic的分发

massage: Kafka中最基本的传递对象。

Partition:topic物理上的分组,每个topic包含partition,每个partition是一个有序的队列

Segment:partition物理上由多个segment组成,每个Segment存着message信息

Producer : 生产者,负责生产message发布到topic

Consumer : 消息消费者,订阅topic并消费message, consumer从broker拉取(pull)数据并进行处理。

Consumer Group:消费者组,一个Consumer Group包含多个consumer

Offset:偏移量,消息partition中的索引即可

三、Kafka优势

1. 分布式

大数据处理业务中极为重要的流处理框架,分布式是Kafka的天然属性。

2. 高性能:

Kafka高性能体现在两方面:(1)高吞吐量,最高能达到几十万每秒的级别的吞吐量;(2)低延时,这使得Kafka能够很好的配合SparkStreaming等其它流式处理框架的进行数据实时性处理。

3. 持久性和扩展性:

这两点是Kafka区别于其它消息队列的重要特点,主要体现在:(1)数据可持久化,(2) 容错性;(3)大水平方向上扩展;(4) 消息自动平等,避免热点问题。

四、Kafka常用场景

(1)消息队列

(2)网站活性跟踪

(3)可操作的监控数据

(4)日志收集

数据分析咨询请扫描二维码

客服在线
立即咨询