centos7.5安装kafka(支持外部连接)
- 安装kafka之前确保安装环境已经安装好jdk以及zk,并启动,以上有详细步骤,这里不再重复.
- zk安装地址https://blog.csdn.net/LXYuuuuu/article/details/107605769
- 上传相应kafka安装包到/export/software/
- tar -zxvf kafka_2.11-1.0.0.tgz -C /export/servers/
- cd /export/servers/kafka_2.11-1.0.0/config/
- vim server.properties
文件只保留以下内容,其余均注释掉即可 broker.id=0 host.name=本机ip(本处可直接设置为localhost,如果想让其他机器连接,需要设置成本机ip,如遇到腾讯云环境部署时,因威望地址在ifconfig中查不到,所以可以直接编写ifconfig中显示的内网地址,访问时外网内部映射找到内网该服务) num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/export/servers/kafka_2.11-1.0.0/kafka-logs(本处文件夹需自己手动创建) log.cleaner.enable=true num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=本机ip:2181/kafka(地址可设置为localhost,同时也可设置为本机安装zk的ip) zookeeper.connection.timeout.ms=6000 group.initial.rebalance.delay.ms=0
- cd ../
- mkdir kafka-logs(创建配置文件中提到的log目录)
- 开始启动kafka
nohup bin/kafka-server-start.sh config/server.properties >> /dev/null & 上面代码nohup代表把任务放到后台作为服务运行,有些脚本不像之前的二进制程序一样可以一直跑在服务器上,虽然后面加上&表示在后台运行,但是一段时间后可能会退出,nohup可以让程序一直跑在后台,输入以上命令后命令行会卡住,然后需要再次输入一次回车回到命令行,另外我们退出shell时必须使用logout退出,切不可直接关闭窗口,否则程序也可能异常退出
- 创建一个消息队列
bin/kafka-topics.sh --create --replication-factor 1 --partitions 1 --topic test --zookeeper 本机ip(server.properties里面配置的对应信息):2181/kafka 创建队列的时候,replication-factor只能是1个,因为是单节点,而partitions分区可以是1个或者2个都可以,测试环境建议是1个即可 查看topic bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
- 创建一个消费者
bin/kafka-console-consumer.sh --zookeeper 本机ip(server.properties里面配置的对应信息):2181/kafka --topic test 如果上述方式报错可采用如下方式 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic logtopic --from-beginning
- 新开窗口,进入kafka目录,创建一个生产者
bin/kafka-console-producer.sh --broker-list 本机ip(server.properties里面配置的对应信息):9092 --topic test
- 同样这个时候命令行进入运行状态,输入一个字符串
- 此时打开刚才创建消费者的窗口,会看到刚才的输入消息被消费了
- 到现在,Kafka单机消息队列基本的配置和运行都是正常的,单机环境配置基本上就是这些
- 同时可用jps查看当前服务器上运行的服务情况