Kafka简单入门01

目录

Kafka的核心组件

Kafka的分区有序

Kafka的多副本机制

Kafka的安装部署

Kafka的基本操作


Kafka简单入门01_第1张图片

Apache Kafka 是一个高吞吐量的分布式流数据平台,通常用于构建实时数据流处理应用程序。

Kafka的核心组件
  1. 主题(Topic):主题是 Kafka 中消息的类别或分类。生产者将消息发布到主题,而消费者订阅主题以接收消息。主题可以看作是一个消息通道,多个生产者可以将消息发布到同一个主题,而多个消费者可以从同一个主题订阅消息。

  2. 生产者(Producer):生产者是负责将消息发布到 Kafka 主题的组件。它们可以将消息批量发送到主题,允许实时或批处理应用程序将数据写入 Kafka 集群。

  3. 消费者(Consumer):消费者是订阅 Kafka 主题并接收消息的组件。它们可以订阅一个或多个主题,然后从这些主题接收消息,并将消息处理为应用程序的输出。消费者可以以不同的方式处理消息,例如实时流处理或离线批处理。

  4. 代理节点(Broker):代理节点是 Kafka 集群中的服务器节点,负责存储消息并处理生产者和消费者之间的消息传递。Kafka 集群由多个代理节点组成,每个节点都包含完整的主题数据副本。代理节点协调主题的分区分布,负责领导者选举,以及处理消息的存储和传递。

  5. 分区(Partition):主题可以被分为多个分区,每个分区是消息的逻辑容器。分区可以水平扩展和分布到不同的代理节点上。分区使得 Kafka 可以支持大规模数据,同时提供了并行性和容错性。

  6. ZooKeeper:Kafka 依赖于 ZooKeeper 作为协调服务,用于管理代理节点的状态、领导者选举和集群的元数据。

    Kafka简单入门01_第2张图片
Kafka的分区有序

Kafka中的消息以主题为单位进行归类,生产者将消息发送到特定的主题(发送到Kafka集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。

主题可以分为很多个区,一个分区只属于单个主题。同一主题下的不同分区包含的信息是不同的,把分区类比为可追加的日志文件,消息在追加时会分配一个特定的偏移量(offset)。offset是消息在分区中的唯一标识,Kafka通过它保证消息在分区内的顺序性,但offset并不跨区,所以kafaka是分区有序的,不是主题有序。

Kafka的多副本机制

Kafka为分区引入了多副本机制,目的是通过副本的数量增加容灾能力。同一分区不同副本相同信息:副本之间一主多从,Leader副本负责读写,Follower副本只负责与Leader消息同步。Leader故障的情况下会重新选举:副本处在不同的broker中,这样也实现了故障自动转移。当某个broker失效时仍能保证服务可用。

以下是 Kafka 多副本机制的主要特点和工作原理:

  1. 数据冗余:每个分区可以配置多个副本,通常是 2 或更多。这些副本包含相同的消息数据,以提供冗余备份。如果一个代理节点出现故障,数据仍然可以从其他副本中获得。

  2. 领导者和跟随者:对于每个分区,其中一个副本被选为领导者(leader),其余的副本被称为跟随者(follower)。领导者负责处理生产者和消费者的请求,而跟随者只负责复制领导者的数据。这种模型提供了高可用性和数据一致性。

  3. 数据同步:领导者定期将消息发送给跟随者,以确保它们的数据保持同步。这意味着即使领导者节点出现故障,数据也不会丢失,因为跟随者拥有相同的数据。

  4. 故障恢复:如果领导者节点出现故障,Kafka 会自动从跟随者中选举出新的领导者。这确保了数据的可用性和系统的可靠性。

  5. 读取负载均衡:客户端可以从任何副本读取数据,不仅仅是从领导者。这允许 Kafka 在多个节点上分布读取请求,以提高读取性能。

  6. 数据保留策略:Kafka 允许配置数据的保存时间和大小限制,一旦数据达到保留策略的限制,它将被删除。

Kafka简单入门01_第3张图片

Kafka的安装部署

1.下载kafka https://kafka.apache.org/downloads

Kafka简单入门01_第4张图片

2.安装

把下载包进行解压就可以了

tar -zxvf  kafka_2.12-3.6.0.tgz

3.配置zookeeper

kafka依赖Zookeeper做master选举和集群控制,先启动kafka内置的Zookeeper服务

zookeeper-server-start.sh
zookeeper-server-stop.sh

4.通过config配置启动Zookeeper服务

sh zookeeper-server-start.sh -daemon ../config/zookeeper.properties

5.启动和停止Kafka

  • 修改server.properties, 增加zookeeper的配置

    zookeeper.connect=localhost:2181
  • 启动Kafka

    sh kafka-server-start.sh -damoen config/server.properties
  • 停止Kafka

    sh kafka-server-stop.sh -daemon config/server.properties
Kafka的基本操作

1.创建topic

sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --
partitions 1 --topic test

2.查看topic

sh kafka-topics.sh --list --zookeeper localhost:2181

3.查看topic属性

sh kafka-topics.sh --describe --zookeeper localhost:2181 --topic first_topic

4.消费消息(192.168.13.106是Zookeeper节点)

sh kafka-console-consumer.sh --bootstrap-server 192.168.13.106:9092 --topic test
--from-beginning

5.发送消息(192.168.244.128是Zookeeper节点)

sh kafka-console-producer.sh --broker-list 192.168.244.128:9092 --topic
first_topic

你可能感兴趣的:(消息队列,kafka,分布式)