kafka初体验基础认知部署

kafka 基础介绍

Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。

Kafka是一个分布式的发布-订阅消息系统,可以快速地处理高吞吐量的数据流,并将数据实时地分发到多个消费者中。Kafk消息系统由多个**broker(服务器)组成,这些broker可以在多个数据中心之间分布式部署,以提供高可用性和容错性。Kafka的基本架构 由生产者、消费者和主题(topic)**组成。生产者可以将数据发布到指定的主题,而消费者可以订阅这些主题并消费其中的数据。同时,Kafka还支持数据流的处理和转换,可以在管道中通过Kafka Streams API进行流式计算,例如过滤、转换、聚合等。Kafka使用高效的数据存储和管理技术,能够轻松地处理TB级别的数据量。其优点包括高吞吐量、低延迟、可扩展性、持久性和容错性等。

Kafka在企业级应用中被广泛应用,包括实时流处理、日志聚合、监控和数据分析等方面。同时,Kafka还可以与其他大数据工具集成,如Hadoop、Spark和Storm等,构建一个完整的数据处理生态系统

如何部署一个单机的kafka

安装jdk

下载zookeeper

下载kafka

kafka自带的脚本

bash 复制代码
[root@localhost kafka_2.13-3.5.1]# ls bin/
connect-distributed.sh        kafka-e2e-latency.sh           kafka-server-stop.sh
connect-mirror-maker.sh       kafka-features.sh              kafka-storage.sh
connect-standalone.sh         kafka-get-offsets.sh           kafka-streams-application-reset.sh
kafka-acls.sh                 kafka-jmx.sh                   kafka-topics.sh
kafka-broker-api-versions.sh  kafka-leader-election.sh       kafka-transactions.sh
kafka-cluster.sh              kafka-log-dirs.sh              kafka-verifiable-consumer.sh
kafka-configs.sh              kafka-metadata-quorum.sh       kafka-verifiable-producer.sh
kafka-console-consumer.sh     kafka-metadata-shell.sh        trogdor.sh
kafka-console-producer.sh     kafka-mirror-maker.sh          windows
kafka-consumer-groups.sh      kafka-producer-perf-test.sh    zookeeper-security-migration.sh
kafka-consumer-perf-test.sh   kafka-reassign-partitions.sh   zookeeper-server-start.sh
kafka-delegation-tokens.sh    kafka-replica-verification.sh  zookeeper-server-stop.sh
kafka-delete-records.sh       kafka-run-class.sh             zookeeper-shell.sh
kafka-dump-log.sh             kafka-server-start.sh

启动注册中心

单机演示直接使用kafka内部自带的zookeeper

bash 复制代码
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &

启动kafka服务(broker)

bash 复制代码
nohup bin/kafka-server-start.sh config/server.properties &

创建topic

bash 复制代码
#在机器localhost:9092上创建Topic test  
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092
#查看Topic
bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092

发送消息

bash 复制代码
# 生产消息topic为test  指定kafka机器为localhost:9092 
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

消费消息

bash 复制代码
# 指定消费kafka机器为localhost:9092 ,topic为test的消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

从头开始消费

bash 复制代码
# 从头开始消费
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --
topic test

指定偏移量消费

例如用于线上故障后的消息回溯

bash 复制代码
# 从第0partition的第4个消息消费
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --partition 0 --offset 4 --topic test

分组消费

一个消费者组下包含多个消费者,消费者即是本地机器上启动的消费者线程

一个Partition只能被同一消费者组里的一个消费者消费

一个消费者却可以消费多个Partition

Kafka会记录每个Partition被每个conuser-group消费的偏移量(消费到第几条了)

bash 复制代码
#两个消费者实例属于同一个消费者组
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer-property group.id=testGrroup --topic test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer-property group.id=testGrroup --topic test
#这个消费者实例属于不同的消费者组
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer-property group.id=testGrroup2 --topic test

查看分组消费信息

相关推荐
清风19812 小时前
kafka消息可靠性传输语义
数据库·分布式·kafka
小诸葛的博客2 小时前
Kafka、RocketMQ、Pulsar对比
分布式·kafka·rocketmq
数据智能老司机5 小时前
CockroachDB权威指南——SQL调优
数据库·分布式·架构
数据智能老司机5 小时前
CockroachDB权威指南——应用设计与实现
数据库·分布式·架构
数据智能老司机5 小时前
CockroachDB权威指南——CockroachDB 模式设计
数据库·分布式·架构
数据智能老司机1 天前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机1 天前
CockroachDB权威指南——开始使用
数据库·分布式·架构
数据智能老司机1 天前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
IT成长日记1 天前
【Kafka基础】Kafka工作原理解析
分布式·kafka
州周1 天前
kafka副本同步时HW和LEO
分布式·kafka