Kafka(一)介绍

一、简介

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的简介,我们简单聊到这里,后面的文章会谈的更加具体。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Kakfa介绍 Kafka是什么 Kafka最初是LinkedIn的内部内部基础设施系统。它被认为是一个流平台,在...
    零度沸腾_yjz阅读 6,080评论 0 72
  • 背景 Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部...
    Bloo_m阅读 3,868评论 0 2
  • Apache Kafka是一个分布式流式平台。 流平台有三个关键的能力: 发布和订阅记录流,类似于消息队列或企业消...
    扫地神僧_min阅读 172评论 0 0
  • 什么是Kafka? Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据...
    scottzcw阅读 433评论 0 0
  • 1.1. 主要功能 根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能: 1:It ...
    畅唯Kenneth阅读 701评论 0 0