Kafka基本概念

Kafka是一个分布式的流处理平台,主要用于发布和订阅实时数据流。以下是Kafka的基本概念:

1. Producer(生产者):负责将数据发布到Kafka集群中的特定主题(topic)。

2. Consumer(消费者):从Kafka集群中的特定主题中订阅数据,并进行相应的处理。

3. Topic(主题):一个主题可以被看作是一个数据流的类别或名称,用于区分不同类型的数据。

4. Partition(分区):一个主题可以被分为多个分区,每个分区可以在不同的服务器上。

5. Offset(偏移量):每个分区都有一个唯一的连续编号,称为偏移量,用于标识分区中的每条消息。

6. Broker(代理服务器):Kafka集群中的每个服务器节点都被称为代理服务器,负责接收和处理生产者和消费者的请求。

7. Consumer Group(消费者组):多个消费者可以组成一个消费者组,共同消费一个主题。每条消息只能被消费者组中的一个消费者消费。

8. Replication(副本):为了提高数据的可靠性和冗余性,Kafka将每个分区的数据副本存储在多个服务器上。

9. ZooKeeper:Kafka使用ZooKeeper来协调和管理集群中的各个组件,例如监控健康状态、分配分区等。

Kafka中基础架构图

Kafka名词释义

创建Topic

上一篇文章中我们介绍了Kafka是重Topic的消息队列,那么创建Topic就显得尤为重要了。下面演示的案例希望大家能够认真阅读学习!

1、通过Kafka命令向zk中创建一个Topic主题
下面的命令是创建一个名字为test的topic主题

./kafka-topics.sh --create --zookeeper 172.16.222.32:8080 --replication-factor 1 --partitions 1 --topic test
#--replication-factor 1表示创建1个副本
#--partitions 1表示只创建1个分区
#--topic表示主题名称

2、查看当前zk中所有的主题

./kafka-topics.sh --list --zookeeper 172.16.222.32:8080

发送消息

Kafka自带了一个producer命令客户端,可以从本地文件中读取内容,或者也可以在命令行中直接输入内容,并将这些内容以消息的形式发送到Kafka集群中。在默认的情况下,每一行会被当成一个独立的消息

想使用Kafka发送消息的客户端,需要指定发送到的Kafka服务器地址和topic

./kafka-console-priducer.sh --broker-list 10.31.167.10:9092 --topic test(test是创建的主题)

消费消息

对于consumer,Kafka同样也携带了一个命令客户端,会将获取到的内容在命令中进行输出,默认是消费最新的消息
想使用Kafka消费消息客户端,需要从指定Kafka服务器中指定的topic中消费消息
方式一:从最后一条消息的偏移量+1开始消费

解释什么是消息偏移量:
所谓消息偏移量,指的是消费者在消费消息的时候,如果当前主题下已经存在了3条消息,那么该方式会从3+1也就是第4条消息的位置开始消费,前3条消息不会被消费

./kafka-console-consumer.sh --bootstarp-server 10.310167.10.9092 --topic test

方式二:从头开始消费(生产者生产的消息,消费者会从第一条开始消费)

./kafka-console-consumer.sh --bootstarp-server 10.310167.10.9092 --from-beginning --topic test

注意:
1、消息会被存储
消息会存储在某个主题所在的Broker服务器中的/user/local/kafka/data/kafka-logs/主题-分区/00000000.log路径下,消费者消费消息也不是取走服务器中的消息,而是获取,生产的消息还会存储在Broker服务器中
2、消息是顺序存储的
通过offset偏移量来描述消息的有序性
3、消息是有偏移量的
消费者消费消息的时候,通过offset偏移量确定当前消费消息的位置
4、消费时可以指明偏移量进行消费

至此,关于Kafka的基本知识介绍完毕,后续还会持续的更新,希望大家能够持续的关注!!!

笔者在此抱拳啦,希望能和大家共同学习、探索、进步......

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐