Kafka基础了解一下

版权声明:Designed By JiaMingcan https://blog.csdn.net/qq_41571900/article/details/84190860

Kafka简介

Kafka是一个分布式的流式信息处理平台。通俗的来说,它可以被理解为是一个帮助我们临时存储消息的插件,也就是消息中间件或者消息队列。
而它适用于什什么时候呢? 试想,当我们获取到的数据量特别大,而进行计算的集群无法及时进行处理,会造成数据堆积,对集群的影响很大,甚至可能造成数据的丢失。但是,如果我们先将数据存放在kafka服务器集群上,这样的话,计算多少就拉取多少数据,不会造成数据堆积,而且kafka服务器可以设置保留数据七天,当我们在计算中发现逻辑错误或者是机器故障的时候,可以从kafka上重新拉取数据进行计算。

Kafka组件介绍

那既然它是一个临时存储的插件,那么存储的消息由哪来?又用于哪呢?由什么来控制读取的是想要的消息呢?接下来我向大家介绍一下它其中的组件。

  1. 生产者(producer):由生产者来生产消息并将消息发送到kafka的服务器上。例如:Flume,由Flume这个日志聚集工具,将我们想要的信息聚集过来并放入kafka服务器中。
  2. 消费者(consumer):消费者从kafka服务器上拉取想要消费的消息,然后进行消费。 例如:Spark Streaming,可以分批次的从kafka上拉取数据进行准实时性流式计算。
  3. Topic:用于建立生产者和消费者之间的订阅关系。生产者可以指定向哪个Topic上发送消息,而消费者也可以指定从哪个Topic上拉取消息进行消费。
  4. TopicPartition:顾名思义就是Topic下的分区,用于将数据分开存储。这个分区数量是由用户来指定的,而且为了提高容错性,分区还可以设置副本数,副本数也可以指定。分区有主从结构,当拉取消息时,是从主partition处拉取,而从partition负责同步数据,当主partition所在机器出现故障,从partition中的一个就担任主partition的职责。
  5. Broker:就是kafka集群中的主机,每一个BrokerId对应kafka集群中的一台主机,BrokerId不能重复。
  6. 消费者组:消费者组由多个消费者组成,可以协调消费一个或多个Topic下的消息。每一个分区只能被同一个消费者组下的消费者消费,一个消费者可以消费一个或多个分区下的消息。当然,如果同时有两个不同的消费者组消费同一个Topic的话,同一个partition可以同时被两个消费者所消费,前提是这两个消费者来自不同的消费者组。
  7. Offset:偏移量,拉取数据的时候就是根据偏移量所进行拉取。否则的话,岂不是每次都从头开始读取,造成了数据的二次甚至多次消费,影响结果。

Kafka常用的命令

  1. 新建一个Topic
    bin/kafka-topics.sh --create --zookeeper [ip:port] --partition [分区数] --replication-factor [副本数] --topic [name]
  2. 查看Topic
    查看Topic的列表: bin/kafka-topics.sh --list --zookeeper [ip:port]
    详细查看一个Topic信息:bin/kafka-topics.sh --describe --zookeeper [ip:port] --topic [name]
  3. 删除Topic
    bin/kafka-topics.sh --delete --zookeeper [ip:port] --topic [name]
  4. 增加分区
    bin/kafka-topics.sh --alter --zookeeper [ip:port] --partition [new num] --topic [name]
  5. 启动生产者
    ./bin/kafka-console-producer.sh --broker-list [ip:port] --topic [name]
  6. 启动消费者
    bin/kafka-console-consumer.sh --zookeeper [ip:port] --topic [name] --from-beginning

本人其他关于kafka的博客:
消费者分区分配策略
SparkStreaming读取kafka数据的两种方式

									 summed up by JiaMingcan
									 转载请署名:JiaMingcan

猜你喜欢

转载自blog.csdn.net/qq_41571900/article/details/84190860