Kafka(一)介绍

作者: 我犟不过你 | 来源:发表于2021-02-01 14:13 被阅读0次

一、简介

Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

我们知道流处理平台有以下三种特性:
1)可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。
2)可以储存流式的记录,并且有较好的容错性。
3)可以在流式记录产生时就进行处理。

二、场景

1、构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于message queue)
2、构建实时流式应用程序,对这些流数据进行转换或者影响。 (就是流处理,通过kafka stream topic和topic之间内部进行变化)

三、设计

Kafka将消息以topic为单位进行归纳:
1、将向Kafka topic发布消息的程序称为producer
2、将预订topics并消费消息的程序成为consumer
3、Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker
producers通过网络将消息发送到Kafka集群,集群向消费者提供消息。

kafka架构.png

除了上述的三个组件broker、producer和consumer之外,还需要zookeer的支持。
zookeeper是强一致性的,所以其主要作用是为集群分布式一致性提供服务,以及在早期kafka版本保存消息相关元数据。
关于zk的简介可以参考:https://www.jianshu.com/p/60c4eb2bf13a

四、特性

1)多生产者
2)多消费者:这与别的消息系统不同,别的消息系统(mq)消息一旦被一个消费者消费掉之后,别的消费者是无法在获取的。
3)持久化:信息保存在磁盘中。这里有一个问题,磁盘问什么还会那么快?
参考下面这篇文章:https://www.jianshu.com/p/927487c21893
4)可扩展性
5)高性能

以上是关于kafka的简介,我们简单聊到这里,后面的文章会谈的更加具体。

相关文章

网友评论

    本文标题:Kafka(一)介绍

    本文链接:https://www.haomeiwen.com/subject/vfrjtltx.html