前言

Kafka是一款由linkedln(领英)公司开发,并由Apache基金会开源的中间件。
Kafka由Scala和Java写成,主要负责分布式消息订阅,它可以处理生产者和消费者之间的动作流,作为消息队列为业界所使用。
 

Kafka的介绍(根据官网)

 

Kafka作为一个分布式的流平台,究竟意味着什么?

一个流平台具备以下三种能力:

  • 发布、订阅消息流,就好像一个消息队列或企业信息系统
  • 以容错的持久方式保存数据流
  • 处理发生的信息流。

 

kafka常被用作两大类应用。

  • 建立实时的流数据管道,在系统和应用之间连接数据。
  • 建立实时的流数据管道,对数据流进行转化或相应。
     

几个重要概念

  • Kafka是按照集群方式运行的,集群内各个节点可以跨越多个数据中心。
  • Kafka集群按照不同的topic记录数据流,不同topic记录不同的数据流。
  • 每个记录包括一个key,一个value,一个时间戳。

 

Kafka的四个核心API:

  • Product API允许应用向一个或多个topic发布一个数据流信息
  • Consumer API允许应用订阅一个或这个topic并处理生成给它们的数据流信息。
  • Streams API允许某个应用做为流处理器,使用来自一个或多个topic的输入流,并生成一个或多个输出topic的输出流。
  • Connector API允许建立和运行可重用的生产者或消费者,并将Kafka topic连接到现在的应用程序和数据系统。例如,连接到关系数据库的connector可能会捕获到对数据表的更改。

Kafka保证了客户端和服务期间的沟通是简单的、高可用的、TCP连接(无关语言的)。此协议已版本化,并保持向下兼容。
 
具体如图所示:

posted on 2019-12-30 01:55  eryoung2  阅读(195)  评论(0编辑  收藏  举报