前言
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连接(无关语言的)。此协议已版本化,并保持向下兼容。
具体如图所示:
About me: 资深大猪蹄子