安装版本
zookeeper:3.8.0
kafka:2.13-3.2.0
一、安转zookeeper
zookeeper下载
https://zookeeper.apache.org/releases.html#download
https://archive.apache.org/dist/zookeeper/
解压
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
mv apache-zookeeper-3.8.0-bin zookeeper
配置核心文件
cd zookeeper/
mkdir data
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
clientPort=2181
server.1=127.0.0.1:2888:3888
dataDir=/Users/sijing.tong/Public/bin/zookeeper/data
主要配置项
tickTime | Zookeeper心跳时间,以毫秒为单位,默认2000ms(2s). 它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime。 |
initLimit | 用于集群初始化时,follower(从)节点连接并同步到leader(主)节点的初始化连接时间,以tickTime的倍数来表示. 总的时间长度就是 10*2000=20 s |
syncLimit | 用于集群通信期间,leader(主)节点与leader(从)节点之间发送消息,请求和应答时间长度(心跳机制)。 比如:syncLimit=5 leader和follower之间发送消息, 请求和应答的最大时间长度超过5个tickTime后,说明leader和follower之间超时了。 总的时间长度就是 5*2000=10 s |
clientPort | 连接服务器的端口,默认是2181 dataDir 快照日志目录,存放内存数据库快照的位置,必须配置 |
dataLogDir | 事务日志目录,不配置则和dataDir共用 |
dataDir | 存放内存数据库快照的位置 |
server.{x}={ip}:{port1}:{port2} | {x} : 服务器编号(也就是myid里面的值) 伪集群,同一个ip,端口不同即可 |
环境变量
vim ~/.bash_profile
#zookeeper
export ZOOKEEPER_HOME=/Public/bin/zookeeper
export PATH=$PATH:${ZOOKEEPER_HOME}/bin
source ~/.bash_profile
启动并查看状态
./bin/zkServer.sh start|stop|restart|status
客户端查看
./bin/zkCli.sh -server localhost:2181
./bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 15] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 16] ls /zookeeper
[config, quota]
[zk: localhost:2181(CONNECTED) 17] quit
zookeeper 可视化工具
1.ZooInspector
Apache官方基于Java的zookeeper可视化工具
https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
解压ZooInspector
java -jar ZooInspector/build/zookeeper-dev-ZooInspector.jar
mac环境打开界面看不到,听说是编码问题,我就换了一个工具
2.PrettyZoo
https://github.com/vran-dev/PrettyZoo/releases
二、安转kafka
kafka下载
https://kafka.apache.org/downloads
解压
tar -zxf kafka_2.13-3.2.0.tgz
mv kafka_2.13-3.2.0 kafka
环境变量
vim ~/.bash_profile
#kafka
export KAFKA_HOME=/Users/sijing.tong/Public/bin/kafka
export PATH=$PATH:${KAFKA_HOME}/bin
source ~/.bash_profile
配置核心文件
vim config/server.properties
broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/Public/bin/kafka/logs
zookeeper.connect=localhost:2181
启动
./bin/kafka-server-start.sh ../config/server.properties &
创建topics
2.8+的kafka,已经不需要依赖zookeeper来创建topic,新版本使用 --bootstrap-server 参数
./bin/kafka-topics.sh --bootstrap-server localhost:9092--create --topic my_test_topic --partitions 1
./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test_topic
查看主题
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
创建生产者和消费者
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning