kafka学习笔记

消息流平台的三个特性

Kafka 介绍及特性

Kafka™用于构建实时数据流水线和流媒体应用。它具有水平可扩展性,容错性,快速恶化,并在数千家公司生产。 它被用于两大类应用程序: * 构建可在系统或应用程序之间,可靠的获取数据的实时数据流水线 * 构建对数据流进行转换或反应的实时流应用程序

特性:

  1. Kafka以一个或多个服务器上的集群来运行的程序
  2. kafka集群以​​名为topics 的类别的方式记录流并存储下来。
  3. 每个记录由一个键、一个值和一个时间戳组成

二、Kafka 架构

kafka架构

kafka架构

三、Kafka 学习笔记

  1. kafka 是一个分布式的消息缓存系统
  2. kafka集群中的服务器节点都叫做Broker(经纪人)
  3. kafka有两种客户端,一种叫producer(消息生产者),另一种叫consumer(消息消费者)。客户端和broker服务器之间的通信走TCP协议
  4. kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区(根据用户设定,分块到每个broker),以分担消息读写负载。
  5. 每一个分区都可以有多个副本,以防止数据的丢失
  6. 某一个分区中的数据如果需要更新,都必须通过该分区所有副本中的leader来更新。
  7. 消费者可以分组
  8. 消费者在具体消费某个topic中的消息时,可以指定起始偏移量。

参考:

https://www.confluent.io/blog/apache-kafka-security-authorization-authentication-encryption/ https://endocode.com/blog/2015/04/08/building-a-stream-processing-pipeline-with-kafka-storm-and-cassandra-part-1-introducing-the-components/