安装kafka之前需要安装java8+以上版本
yum install java-1.8.0-openjdk.x86_64
yum install java-1.8.0-openjdk-devel.x86_64
安装kafka
软件下载地址:https://kafka.apache.org/downloads
我下载的是当前的最新版 3.4.0
单节点单代理配置
1. 解压
tar -xzf kafka_2.13-3.4.0.tgz
cd kafka_2.13-3.4.0
2. 启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
3. 启动kafka Broker (kafka实例)需新打开一个终端窗口
bin/kafka-server-start.sh config/server.properties
4. 使用zookeeper终端查看kakfa节点等信息 需新打开一个终端窗口
bin/zookeeper-shell.sh localhost:2181
#输出
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is disabled
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
#查看节点ids
ls /
ls /brokers/ids
#输出
[0]
5. 创建kafka主题 topic
- kafka实例默认端口9092
- 此版本kafka需要如下命令创建,--zookeeper命令v2.8版本之后已废弃 localhost:9092为kakfa服务节点实例
bin/kafka-topics.sh --create --topic test_topic --bootstrap-server localhost:9092
- 之前版本可能需要如下命令
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test_topic
6. 查看已创建的主题topic 列表
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
- 之前版本可能需要如下命令
bin/kafka-topics.sh --list --zookeeper localhost:2181
7. 启动生产者producer发送消息
在config / producer.properties 文件中指定默认生产者属性
bin/kafka-console-producer.sh --topic test_topic --bootstrap-server localhost:9092
- 之前版本可能需要如下命令
- --broker-list(代理列表) - 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties 文件包含代理端口 ID,因为我们知道我们的代理正在侦听端口 9092,因此您可以直接指定它。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
8. 启动消费者consumer接收消息 需新打开一个终端窗口
在config / consumber.properties 文件中指定了缺省使用者属性
bin/kafka-console-consumer.sh --topic test_topic --from-beginning --bootstrap-server localhost:9092
- 之前版本可能需要如下命令
bin/kafka-console-consumer.sh --zookeeper localhost:2181 —-topic test_topic --from-beginning
单节点多代理配置(后续更新)
--zookeeper 和 --bootstrap.server 区别
- --zookeeper : 是旧版Kafka的参数(v2.8以前)
- --bootstrap.server : 新版Kafka的参数。Kafka开发团队重写了ZooKeeper的Quorum控制器代码并嵌入到Kafka中。所以从v2.8版本开始,Kafka不再依赖ZooKeeper。(bootstrap.servers参数,只在启动客户端连接Kafka服务时使用。并且,即使列表里面填了多个节点,只要有一个可用就行了。)
-
旧版(<v2.2):
kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181/kafka --create --topic ..
旧版用--zookeeper参数,主机名(或IP)和端口用ZooKeeper的2181,也就是server.properties文件中zookeeper.connect属性的配置值. ps:使用--zookeeper参数还需要指定kafka的Broker路径,注意不是在根目录下,是在/kafka路径下。
-
新版(>v2.2):
kafka-topics.sh --bootstrap-server node1:9092 --create --topic ..
新版用--bootstrap-server参数,主机名(或IP)和端口用某个节点的即可,即主机名(或主机IP):9092。9092是Kafka的监听端口
其他参考:
https://www.w3cschool.cn/apache_kafka/apache_kafka_introduction.html