最近想在自己的虚拟机上布一下测试环境,需要部署一套kafka,也不用集群部署,只是实现最基本的功能,记录一下过程,应该很适合想体验一下什么是kafka和zookeeper的,或者是想利用kafka消息队列进行一些简单测试等等最基本功能的盆友们。
一. jdk安装
想要安装kafka或者zookeeper就需要有java的环境!
1.1 想简单?用openjdk!这不就来了嘛!
yum install java
1.2 有强迫症?俺就用oracle JDK?
安装包自己解决一下嗷oracle官网下载地址
登陆用户:root,解压jdk-8u144-linux-x64.tar.gz到/usr/local目录
cd /usr/local
tar xvf jdk1.8.0_144.tar.gz
chown -R root:root /usr/local/jdk1.8.0_144
vi /etc/profile
在此文件末尾添加
export JAVA_HOME=/usr/local/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
添加完成生效配置
source /etc/profile
java -version
登录普通用户
su - name
vi ~/.bash_profile
在此文件末尾添加
export JAVA_HOME=/usr/local/jdk1.8.0_144
export PATH=$HOME/bin:$JAVA_HOME/bin:$PATH
添加完成生效配置
source ~/.bash_profile
java -version
二. zookeeper安装
想要安装kafka就需要先安装zookeeper!
2.1 下载
想要啥版本先去官网看看zookeeper官网地址
分源码安装和二进制包安装,没啥需求就二进制包安装,下载之后解压就能用。
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz --no-check-certificate
2.2 解压
tar -zxf apache-zookeeper-3.8.0-bin.tar.gz
mv apache-zookeeper-3.8.0-bin zookeeper
2.3 环境变量
vim /etc/profile
#zookeeper
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:${ZOOKEEPER_HOME}/bin
source /etc/profile
2.4 修改配置文件
cd conf/
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/opt/zookeeper/data
其他的自己看着整,基本不用动啥,自己用的话也没啥东西
配置项 说明
tickTime 用于计算的时间单元,以毫秒为单位,比如session超时:N*tickTime
initLimit 用于集群,允许从节点链接并同步到master节点的初始化连接时间,以tickTime的倍数来表示
syncLimit 用于集群,master主节点与从节点之间发送消息,请求和应答时间长度(心跳机制)
clientPort 连接服务器的端口,默认是2181 dataDir 快照日志目录,存放内存数据库快照的位置,必须配置
dataLogDir 事务日志目录,不配置则和dataDir共用
2.5 启动并查看状态
zkServer.sh start|stop|restart|status
[root@sibalaxi02 bin]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Error contacting service. It is probably not running.
[root@sibalaxi02 bin]# zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@sibalaxi02 bin]# zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone
2.6 客户端查看
zkCli.sh -server localhost:2181
[root@sibalaxi02 bin]# zkCli.sh
/usr/bin/java
Connecting to localhost:2181
2022-06-06 14:21:21,292 [myid:] - INFO [main:o.a.z.Environment@98] - Client environment:zookeeper.version=3.8.0-5a02a05eddb59aee6ac762f7ea82e92a68eb9c0f, built on 2022-02-25 08:49 UTC
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /zookeeper
[config, quota]
[zk: localhost:2181(CONNECTED) 2] quit
三. kafka安装
安完zookeeper就可以整kafka了
3.1 下载
先去官网看看kafka官网地址
还是有二进制包和源码包,还是选二进制包就ok了。
3.2 解压
tar -zxf kafka_2.13-3.2.0.tgz
mv kafka_2.13-3.2.0 kafka
3.3 环境变量
vim /etc/profile
#kafka
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:${KAFKA_HOME}/bin
source /etc/profile
3.4 修改配置文件
vi config/server.properties
broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=localhost:2181
主要注意一下这几个参数,其他的自便
3.5 启动服务
bin/kafka-server-start.sh -daemon config/server.properties
3.6 查看状态
先看看zookeeper
[root@sibalaxi02 bin]# zkCli.sh
/usr/bin/java
Connecting to localhost:2181
。。。。。。
[zk: localhost:2181(CONNECTED) 0] ls /
[admin, brokers, cluster, config, consumers, controller, controller_epoch, feature, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /config
[brokers, changes, clients, ips, topics, users]
[zk: localhost:2181(CONNECTED) 2] quit
创建topic
[root@sibalaxi02 kafka]# bin/kafka-topics.sh --list --bootstrap-server localhost:9092
[root@sibalaxi02 kafka]# bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic zzxtest-topic
Created topic zzxtest-topic.
[root@sibalaxi02 kafka]# bin/kafka-topics.sh --list --bootstrap-server localhost:9092
zzxtest-topic
打开生产者
[root@sibalaxi02 kafka]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic zzxtest-topic
>hello
>1
>2
>
>3
>4
>5
>byebye
打开消费者
[root@sibalaxi02 kafka]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic zzxtest-topic --from-beginning
hello
1
2
3
4
5
byebye
查看topic情况
[root@sibalaxi02 kafka]# bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic zzxtest-topic
Topic: zzxtest-topic TopicId: vqjAzPcMQQSiRM6Dj-Wcyw PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824
Topic: zzxtest-topic Partition: 0 Leader: 0 Replicas: 0 Isr: 0
如此查看各个组件都工作正常,就可以进行测试了,有机会在写写进阶的文章。