Kafka是消息中间件的一种,可以用于消息队列的处理。
Kafka官网地址:https://kafka.apache.org/
本章的官方参考资料 https://kafka.apache.org/documentation/#introduction
kafka依赖java,需要满足Java8+以上,请确保是否已安装Java8+
如果你没有安装java8+,请见yum安装和卸载JDK
java -version
下载地址:https://kafka.apache.org/downloads,版本可以自行选择,本章使用的版本是3.2.0
将下载的压缩包上传到自己定义的目录下。
或者也可以在服务器上通过wget命令下载压缩包(国内的下载速度可能会比较慢)
wget --no-check-certificate https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
解压压缩包
#解压文件
tar -xzf kafka_2.13-3.2.0.tgz
#修改文件夹名称
mv kafka_2.13-3.2.0 kafka
#进入文件夹
cd kafka/
运行以下命令以按正确顺序启动所有服务
# Start the ZooKeeper service
bin/zookeeper-server-start.sh config/zookeeper.properties
zookeeper的默认端口是 2181
打开另一个终端会话并运行
# Start the Kafka broker service
bin/kafka-server-start.sh config/server.properties
kafka的默认端口是 9092
实际上到这里,已经kafka已经下载和安装完成了,后面的内容是topic的操作,以及生产者消费者测试。
Kafka 是一个分布式事件流平台,可让您跨多台机器 读取、写入、存储和处理 事件(在文档中也称为记录或 消息)。
示例事件包括支付交易、手机的地理位置更新、运输订单、物联网设备或医疗设备的传感器测量等等。这些事件被组织并存储在 主题中。非常简化,主题类似于文件系统中的文件夹,事件是该文件夹中的文件。
打开新的一个终端会话并运行
bin/kafka-topics.sh --create --topic hello --bootstrap-server localhost:9092
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-topics.sh --describe --topic hello --bootstrap-server localhost:9092
bin/kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic hello
bin/kafka-topics.sh --help
注意: 测试时,请同时将写入和读取都打开。
Kafka 客户端通过网络与 Kafka 代理通信以写入(或读取)事件。一旦收到,代理将以持久和容错的方式存储事件,只要您需要 - 甚至永远。
运行控制台生产者客户端将一些事件写入您的主题。默认情况下,您输入的每一行都会导致将一个单独的事件写入主题。
bin/kafka-console-producer.sh --topic hello --bootstrap-server localhost:9092
打开另一个终端,并运行命令,读取客户端刚刚写入的事件
bin/kafka-console-consumer.sh --topic hello --from-beginning --bootstrap-server localhost:9092
到这里的测试成功,则表示kafka可以正常使用。