一、下载
下载链接https://www.apache.org/dyn/closer.cgi?path=/kafka/3.4.0/kafka_2.13-3.4.0.tgz

二、安装
2.1 解压
1
| tar -xzvf kafka_2.13-3.4.0.tgz
|
2.2 Zookeeper
- 启动Zookeeper命令
1
| bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
|
输出的信息在保存在执行目录的logs/zookeeper.out文件中。
- 关闭Zookeeper命令
1
| bin/zookeeper-server-stop.sh -daemon config/zookeeper.properties
|
- Zookeeper的配制文件是config/zookeeper.properties
2.3 Kafka
- 修改配置文件
- broker.id是kafka broker的编号,集群里每个broker的id需不同。
- listeners是监听地址,需要提供外网服务的话,要设置本地的IP地址。
- log.dirs是日志目录,需要设置
- zookeeper.connect是zookeeper集群地址
- num.partitions 为新建Topic的默认Partition数量,partition数量提升,一定程度上可以提升并发性。
- 内部consumer_offsets和transaction_state两个topic,分组元数据的复制因子,为了保证可用性,在生产上建议设置大于1。
- default.replication.factor为kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务,是在自动创建topic时的默认副本数,可以设置为3。
- 启动Kafka
1
| ./bin/kafka-server-start.sh -daemon ./config/server.properties
|
三、验证
使用jps查看是否启动正常

3.1 创建topic
1
| ./bin/kafka-topics.sh --create --bootstrap-server ip:9092 --replication-factor 1 --partitions 1 --topic mytest
|
3.2 生产者
1
| ./bin/kafka-console-producer.sh --bootstrap-server ip:9092 --topic mytest
|

3.3 消费者
1
| ./bin/kafka-console-consumer.sh --bootstrap-server ip:9092 --topic mytest --from-beginning
|

四、注意事项
1
| ./bin/kafka-topics.sh --bootstrap-server ip:9092 –list
|

可以看到kafka3.4中,必须使用bootstrap-server参数。如果不小心使用了旧命令,则报错如下。修正该错误很简单,即使用3.4对应的命令(如上),而不是网上所说的:降低版本。