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