Java配置41-搭建Kafka服务器
目录
1.服务器环境
2.安装kafka
1)上传安装介质
2)解压安装
3)修改配置文件
4)启动zookeeper
5)启动kafka
6)测试
1.服务器环境
系统版本:Red Hat Enterprise Linux Server release 6.8
2.安装kafka
1)上传安装介质
kafka官网:https://kafka.apache.org/
2)解压安装
解压命令:
sudo tar -xzvf kafka_2.12-1.1.0.tgz
3)修改配置文件
解压完成后,进入解压后的目录。
cd kafka_2.12-1.1.0
切至config
cd config
修改前备份
sudo cp server.properties server.properties.20182728.bak
修改文件
sudo vim server.properties
修改zookeeper.connect
Zookeeper默认的端口号是2181,这里填写本机IP加2181端口即可。
然后,再增加以下几行:
#kafka端口
port=9092
#kafka主机名
host.name=ip(注意修改)
listeners=PLAINTEXT://ip:9092
advertised.listeners=PLAINTEXT://ip:9092
备注:listeners一定要配置成为IP地址;如果配置为localhost或服务器的hostname,在使用java发送数据时就会抛出异 常:org.apache.kafka.common.errors.TimeoutException: Batch Expired 。因为在没有配置advertised.host.name 的情况下,Kafka并没有像官方文档宣称的那样改为广播我们配置的host.name,而是广播了主机配置的hostname。远端的客户端并没有配置 hosts,所以自然是连接不上这个hostname的
4)启动zookeeper
本版本的kafka集成了zookeeper,所以不需要另外安装了。
切至kafka安装目录,执行命令
sudo bin/zookeeper-server-start.sh config/zookeeper.properties &
5)启动kafka
切至kafka安装目录
执行命令:
sudo bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
6)测试
创建topic
切至kafka安装目录,执行命令:
sudo bin/kafka-topics.sh --create --replication-factor 1 --partitions 1 --zookeeper ip(注意修改):2181 --topic test
查看创建的topic,命令:
sudo bin/kafka-topics.sh --list --zookeeper ip(注意修改):2181
创建生产者
sudo bin/kafka-console-producer.sh --broker-list ip(注意修改):9092 --topic test
创建消费者
执行命令:
sudo bin/kafka-console-consumer.sh --bootstrap-server ip(注意修改):9092 --topic test --from-beginning
可以得到生产者发送的消息
低版本的kafka创建消费者的命令:
sudo bin/kafka-console-consumer.sh --zookeeper ip(注意修改):2181 --topic test --from-beginning