zookeeper:3.8.0
kafka:2.13-3.2.0
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
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
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 &
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