kafka 安装和基本操作

一、简单说明什么是kafka

Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情。

举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。

鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、https什么的),也称为报文,也叫“消息”。

消息队列满了,其实就是篮子满了,”鸡蛋“ 放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。

各位现在知道kafka是干什么的了吧,它就是那个"篮子"。


二、安装和简单操作 

1、java环境

java -v

2、下载kafka

https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
解压
tar -xf kafka_2.13-3.2.0.tgz

3、启动zookeeper

cd kafka_2.13-3.2.0
nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties &

4、修改日志目录

vim server.properties
log.dirs=/opt/apps/kafka_2.11-2.1.1/kafka-logs

5、启动kafka

nohup ./bin/kafka-server-start.sh ./config/server.properties &

6、命令行操作

创建topic

./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic topic_sdk_log
./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

显示topic详细

./bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic topic_sdk_log

显示所有topic

./bin/kafka-topics.sh --list --bootstrap-server localhost:9092

删除topic

./bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test

生产者发送消息(在提示框输入即可)

注:每次回车表示触发“发送”操作,回车后可直接使用“Ctrl + c”退出生产者控制台。
[root@localhost kafka_2.13-3.2.0]# ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
>hello kafka
>123456

消费者订阅消息(新开一个shell,可以看到刚生产的消息)

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
hello kafka
123456


三、遇到的一些问题:

1、zookeeper is not a recognized option
解决:
打开kafka消费者端

这个是0.9之后的打开方式
/usr/java/kafka_2.12-2.2.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

这个是0.9之前的打开方式
/usr/java/kafka_2.12-2.2.0/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
如果0.9之后使用这个命令打开会报这样的错误
zookeeper is not a recognized option

2、OpenJDK 64-Bit Server VM warning
解决:虚拟机的核心数,调整成两个就可以的。

posted @ 2022-05-22 22:10  超级宝宝11  阅读(119)  评论(0编辑  收藏  举报