环境
kafka_2.10-0.9.0.0.tgz
jdk
创建目录
mkdir -p /opt/data/kafka
mkdir -p /opt/data/zookeeper
解压安装kafka
tar -zxf kafka_2.10-0.9.0.0.tgz
1. 配置zookeeper.properties
serverid=1
dataDir=/opt/data/zookeeper
clientPort=2181
maxClientCnxns=0
initLimit=10
syncLimit=5
#集群server配置, 2888是follower和leader进行通讯的端口, 3888是选举leader时使用的端口(因为是单机,所以不写以下配置)
#server.1=xxx.xxx.xxx.xxx:2888:3888
#server.2=xxx.xxx.xxx.xxx:2888:3888
#server.3=xxx.xxx.xxx.xxx:2888:3888
2.vi /opt/data/zookeeper/myid写入serverid中配置的值
myid文件里写入
serverid=1
3.配置server.properties(适情况修改)
#每台机器不一样
broker.id=42
# The port the socket server listens on
port=9092
#根据服务器IP设置
host.name=xxx.xxx.xxx.xxx
#根据服务器IP设置
advertised.host.name=xxx.xxx.xxx.xxx
# it will publish the same port that the broker binds to.
advertised.port=9092
#日志路径
log.dirs=/opt/data/kafka-logs
#超时后执行的操作
log.cleanup.policy=delete
#是否允许自动创建topic
auto.create.topics.enable=true
#自动创建topic的默认副本数
default.replication.factor =3
#控制器关闭的尝试次数
controlled.shutdown.max.retries =3
#每次关闭尝试的时间间隔
controlled.shutdown.retry.backoff.ms =5000
#leader的不平衡比例,若是超过这个数值,会对分区进行重新的平衡
leader.imbalance.per.broker.percentage =10
#检查leader是否不平衡的时间间隔
leader.imbalance.check.interval.seconds =300
zookeeper.connect=xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181
4.启动zookeeper
kafka运行环境是要在jdk生效的时候才可以使用,所以要执行本地配置的bash_profile,我配置的是home目录下生效,所以要进入到home目录执行 source /home/.bash_profile。
cd /home/kafka目录/
bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties (如果有集群,分别在各个集群上运行)
5.启动kafka
bin/kafka-server-start.sh -daemon ./config/server.properties
6. 另外开启两个shell5窗口
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test (发送消息,topic:test)
注册消息:123
7.拉取消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning (中文不乱码)
收到消息:123