centos7安装单机kafka
下载安装包并进行解压:kafka_2.12-2.2.1.tgz
#解压
tar -zxvf /usr/local/kafka/kafka_2.12-2.2.1.tgz
- consumer.properties 是消费者的相关配置
- producer.properties 是生产者的相关配置
- server.properties 是 kafka 服务的配置
- zookeeper.properties 是 zookeeper 的相关配置
- zookeeper 中记录kafka的broker等信息
#修改服务配置:server.properties
vi /usr/local/kafka/kafka_2.12-2.2.1/config/server.properties
# 唯一标识,集群里每个broker的id需不同
broker.id=0
#定义 Kafka Broker 实际监听的地址和端口
listeners=PLAINTEXT://192.168.159.100:9092
#定义客户端连接 Broker 的地址
advertised.listeners=PLAINTEXT://192.168.159.100:9092
# 日志路径,路径需提前创建好,且必须有读写权限
log.dirs=/tmp/kafka-logs
#设置zk的连接地址及端口。申明kafka所连接的zookeeper的地址 ,需配置为zookeeper的地址。
zookeeper.connect=192.168.159.100:2181
启动kafka:
#进入目录
cd /usr/local/kafka/kafka_2.12-2.2.1
#启动
./bin/kafka-server-start.sh -daemon config/server.properties
验证kafka是否启动成功
#查看java进程
jps
#输出:
43267 QuorumPeerMain
45498 Kafka
63343 Jps
kafka-topics.sh创建topic:
./bin/kafka-topics.sh --bootstrap-server 192.168.159.100:9092 --create --topic testTopic --partitions 1 --replication-factor 1
# --bootstrap-server 表示要连接到哪台机器上
# --create 表示要创建一个 topic
# --topic 表示要创建的topic的名称,这里是 testTopic
# --partitions 表示分区数
# --replication-factor 表示副本数,不能大于 kafka 的节点数
kafka-console-consumer.sh 使用 consumer 控制台订阅 topic
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.159.100:9092 --topic testTopic --from-beginning
# --from-beginning 消费者订阅topic之前,生产者如果已经发布了一个event,这时消费者是拿不到这个event的,如果想要拿到之前已经发布的event,就加上该参数。
kafka-console-producer.sh 使用 producer 控制台发布 event
./bin/kafka-console-producer.sh --broker-list 192.168.159.100:9092 --topic testTopic
# 在箭头后输入要发送的 event,每行代表一个 event
测试:
生产者发送消息:
消费者收到消息: