kafka介绍
根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:
- 发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因
- 以容错的方式记录消息流,kafka以文件的方式来存储消息流
- 可以再消息发布的时候进行处理
使用场景
- 在系统或应用程序之间构建可靠的用于传输实时数据的管道,消息队列功能
- 建实时的流数据处理程序来变换或处理数据流,数据处理功能
Kafka目前主要作为一个分布式的发布订阅式的消息系统使用 下图为消息传输流程

- Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic,上图展示了两个producer发送了分类为topic1的消息,另外一个发送了topic2的消息。
- Topic即主题,通过对消息指定主题可以将消息分类,消费者可以只关注自己需要的Topic中的消息
- Consumer即消费者,消费者通过与kafka集群建立长连接的方式,不断地从集群中拉取消息,然后可以对这些消息进行处理。
下载
在kafka官网 http://kafka.apache.org/downloads下载到最新的kafka安装包,选择下载二进制版本的tgz文件
安装
- 首先确保你的机器上安装了jdk,kafka需要java运行环境,以前的kafka还需要zookeeper,新版的kafka已经内置了一个zookeeper环境,所以我们可以直接使用。
- 如果只需要进行最简单的尝试的话我们只需要解压到任意目录即可,这里我们将kafka压缩包解压到/home目录

kafka解压目录下下有一个config的文件夹,里面放置的是我们的配置文件
consumer.properites 消费者配置
producer.properties 生产者配置
server.properties kafka服务器的配置,此配置文件用来配置kafka服务器 目前仅介绍几个最基础的配置
- broker.id 申明当前kafka服务器在集群中的唯一ID,需配置为integer,并且集群中的每一个kafka服务器的id都应是唯一的,我们这里采用默认配置即可
- listeners 申明此kafka服务器需要监听的端口号,如果是在本机上跑虚拟机运行可以不用配置本项,默认会使用localhost的地址,如果是在远程服务器上运行则必须配置,例如:
listeners=PLAINTEXT:// 192.168.180.128:9092。并确保服务器的9092端口能够访问 - zookeeper.connect 申明kafka所连接的zookeeper的地址 ,需配置为zookeeper的地址,由于本次使用的是kafka高版本中自带zookeeper,使用默认配置即可
zookeeper.connect=localhost:2181
运行
启动zookeeper
#前台启动
[root@CentOS124 home]# cd kafka2.11/
[root@CentOS124 kafka2.11]# bin/zookeeper-server-start.sh config/zookeeper.properties
#后台启动
[root@CentOS124 kafka2.11]# bin/zookeeper-server-start.sh config/zookeeper.properties 1>/dev/null 2>&1 &
[1] 18466
#查看是否启动成功
[root@CentOS124 ~]# ps -ef|grep kafka
启动kafka
[root@CentOS124 kafka2.11]# bin/kafka-server-start.sh config/server.properties
#后台启动
[root@CentOS124 kafka2.11]# bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
#创建 topic
[root@CentOS124 kafka2.11]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
#查看Kafka 中的 topic 列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
配置kafka集群
- 条件有限,在同一个机器上启动三个broker来模拟kafka集群,三个broker使用另外安装的同一个zookeeper服务(实际集群中,每个broker通常在不同的机器上,也会使用不同host的zookeeper)
#复制server.properties配置文件为三份,分别起名为server.properties,server-2.properties,server-3.properties
三份配置中都要修改以下
#三个配置中分别修改为0,2,3
broker.id=0
#三个配置中分别修改为9092,9093,9094
port=9092
#kafka-logs,kafka-logs-2,kafka-logs-3
log.dirs=/tmp/kafka-logs
#都设置为3,即每个topic默认三个partition
num.partitions=3
#zookeeper集群地址,外部可以配置,这里环境有限 使用默认既可
zookeeper.connect=localhost:2181
#分别进入kafka目录下 执行如下命令启动服务控制台输出日子完成了
bin/kafka-server-start.sh config/server.properties
bin/kafka-server-start.sh config/server-2.properties
bin/kafka-server-start.sh config/server-3.properties

本文详细介绍了Apache Kafka的安装、配置和使用,包括在SpringBoot中集成Kafka的方法。讨论了Kafka作为分布式流媒体平台的角色,它的发布订阅消息功能,以及在实时数据处理中的应用。此外,还提供了下载Kafka、设置环境和启动服务的步骤,以及在SpringBoot项目中创建生产者和消费者的关键配置。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



