1、下载并解压
curl -L -O https://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz
tar zxvf kafka_2.11-2.1.0.tgz
注:
2、目录介绍
/bin 操作kafka的可执行脚本,还包含windows下脚本
/config 配置文件所在目录
/libs 依赖库目录
/logs 日志数据目录,目录kafka把server端日志分为5种类型,分为:server,request,state,log-cleaner,controller
3、配置
vim /config/server.properties
注:
broker.id=0
num.network.threads=2
num.io.threads=8
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=2
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=60000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=1000000
4、启动
进入kafka目录
bin/kafka-server-start.sh config/server.properties &
检测2181与9092端口
netstat -tunlp|egrep "(2181|9092)"
注:
Kafka的进程ID为28094,占用端口为9092
QuorumPeerMain为对应的zookeeper实例,进程ID为19787,在2181端口监听
5、单机连通性测试
启动2个XSHELL客户端,一个用于生产者发送消息,一个用于消费者接受消息。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
注:
producer,指定的Socket(192.168.1.181+9092),说明生产者的消息要发往kafka,也即是broker
consumer, 指定的Socket(192.168.1.181+2181),说明消费者的消息来自zookeeper(协调转发)
6、设置外网访问
1)配置
方法一、设置外网IP
1、在需要访问的机器上安装java和kafka(客户端)
2、在/usr/local/kafka/config/server.properties中配置(服务端)
advertised.listeners=PLAINTEXT://39.105.72.51(外网ip):9092
方法二、设置域名(内外网均可访问)
1、在/usr/local/kafka/config/server.properties中配置(服务端)
2、在 /etc/hosts 中配置(服务端)
2)在客户端输入
bin/kafka-console-producer.sh --broker-list 39.105.72.51:9092 --topic test
3)在服务端输入
bin/kafka-console-consumer.sh --bootstrap-server 39.105.72.51:9092 --topic test --from-beginning
注:
1)、启动kafka要先运行zookeeper(客户端与服务端都一样。客户端只需要安装kafka)
2)、再次启动kafka时,需将 log.dirs 配置的路径下的文件夹删除;或者broker.id重新设置。否则将会broker.id冲突