马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
JDK17下载安装
mkdir -p /usr/local/develop
cd /usr/local/develop
将下载的包上传服务器指定路径
解压文件
tar -zxvf jdk-17.0.14_linux-x64_bin.tar.gz -C /usr/local/develop/
修改文件夹名
mv /usr/local/develop/jdk-17.0.14 /usr/local/develop/java17
设置情况变量
vim /etc/profile
export JAVA_HOME=/usr/local/develop/17
export PATH=$JAVA_HOME/bin PATH
export CLASSPATH=. JAVA_HOME/lib
生存之后让情况变量收效
source /etc/profile
KAFKA下载安装
kafka.apache.org
将下载的包放到/usr/local/develop路径下
解压
tar -xvf kafka_2.13-3.9.0.tgz -C /usr/local/develop/
Kafka 的版本定名方式 kafka_2.13-3.9.0 可以拆分成两部门:
- 2.13:指的是 Scala 版本
- 3.9.0:指的是 Kafka 的版本号
cd kafka_2.13-3.9.0
下令区别
在解压JDK和KAFKA时间
JDK用了tar -zxvf 而KAFKA用了 tar -xvf的缘故起因
Kafka启动方式
kafka基于Scala开发,须要Java8+情况
有两种启动方式
1种是基于zookeeper 别的一种是基于KRaft(用于代替Zookeeper)
基于ZOOKEEPER启动
(zookeeper也是java开发的)
进去kafka的bin目次
cd /usr/local/develop/kafka_2.13-3.9.0/bin
先启动zookeeper 并指定Zookeeper的设置文件 纵然不指定应该也是用的这个设置文件
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /usr/local/develop/zookeeper.log 2>&1 &
启动kafka
nohup ./kafka-server-start.sh ../config/server.properties > /usr/local/develop/zookeeper.log 2>&1 &
关闭kafka
./kafka-server-stop.sh
关闭zookeeper
./zookeeper-server-stop.sh
可以通过
netstat -nlpt 检察利用的端口
基于KRaft启动(无需zookeeper)
cd /usr/local/develop/kafka_2.13-3.9.0/bin
天生 Cluster UUID(集群ID)
./kafka-storage.sh random-uuid 可以多次实行 每次天生的UUID差别
格式化存储 format -t 反面是集群ID 然后指定设置
./kafka-storage.sh format -t zvalKa2rSxmM_NUp6hOxxQ -c ../config/kraft/server.properties &
启动 Kafka
nohup ./kafka-server-start.sh ../config/kraft/server.properties > /usr/local/develop/zookeeper.log 2>&1 &
关闭
./kafka-server-stop.sh
表明:毕竟上UUID可以随意 但是当第一次启动之后 在/tmp/kraft-combined-logs 中已经将zvalKa2rSxmM_NUp6hOxxQ集群ID写入 可以
rm -rf /tmp/kraft-combined-logs 如许的话 集群ID是123也可以启动
./kafka-storage.sh format -t 123 -c ../config/kraft/server.properties &
利用独立zookerper
kafka自带了zookerper
zookeeper下载安装
都一样 任意点击下载 大概用wget下载
cd /usr/local/develop
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz
解压
tar -zxvf apache-zookeeper-3.9.3-bin.tar.gz -C /usr/local/develop/
cd apache-zookeeper-3.9.3-bin
设置zookeeper
cd /usr/local/develop/apache-zookeeper-3.9.3-bin/conf
cp zoo_sample.cfg zoo.cfg
启动zookeeper
./zkServer.sh start 默认就会用zoo.cfg的设置
./zkServer.sh stop 关闭zookeeper
netstat -nlpt 检察利用的端口和pid
zookeeper会启用一个8080端口 为制止端口辩说 修改下设置
ZooKeeper的8080端口重要用于管理界面和REST API服务。ZooKeeper的默认管理端口是8080,通过这个端口可以访问ZooKeeper的管理界面和REST API,从而举行设置管理、监控 和调试等操纵
kill之后重启zookeeper 大概在zookeeper的bin目次下实行 ./zkServer.sh stop
ZooKeeper的8080端口重要用于管理界面和REST API服务。ZooKeeper的默认管理端口是8080,通过这个端口可以访问ZooKeeper的管理界面和REST API,从而举行设置管理、监控 和调试等操纵
不相识之前 安全组照旧关闭的好
用独立zookeeper启动kafka
先启动zookeeper
nohup/usr/local/develop/apache-zookeeper-3.9.3-bin/bin/zkServer.sh start
启动kafka
nohup /usr/local/develop/kafka_2.13-3.9.0/bin/kafka-server-start.sh /usr/local/develop/kafka_2.13-3.9.0/config/server.properties > /usr/local/develop/zookeeper.log 2>&1 反面加& 不加是前台启动
关闭kafka
/usr/local/develop/kafka_2.13-3.9.0/bin/kafka-server-start.sh
关闭zookeeper
ps -ef|grep zoo
大概
netstat -nlpt
然后kill
通过Docker安装kafka
1.安装docker
检察是否安装过docker
yum list installed|grep docker
卸载docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装最新版本docker
设置docker的下载镜像 这个得当国外,国内大概有点慢
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
国内用这个
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
上面两个下令-->向 /etc/yum.repos.d/ 目次中新增一个 .repo 设置文件,让 yum 可以大概从指定的 Docker 堆栈下载软件包。 docker-ce.repo作用是指定去那边下载镜像 镜像源设置文件
/etc/yum.repos.d
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
设置docker开机自启
sudo systemctl enable docker
设置docker镜像加快器
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
加载设置
sudo systemctl daemon-reload
如果无法启动 设置vim /etc/docker/daemon.json的时间格式有误
sudo systemctl restart docker
systemctl status docker 检察docker状态
systemctl stop docker 克制docker
也可以利用
service docker start 启动
service docker stop 克制
service docker restart 重启
2.docker安装kafka
docker search kafka
可以检察kafka文档
也可以上docker检察
我这里就按kafka官方保举的
拉取镜像也可以直接run 没有就会主动下载
- docker pull apache/kafka-native:3.9.0
复制代码 默认基于KRaft启动 不须要zookeeper
- docker run -d --name dckafka -p 9092:9092 apache/kafka:3.9.0
复制代码 Docker设置Kafka
以上方式启动kafka的话,用于本地测试,外部无法毗连
https://hub.docker.com/r/apache/kafka
Docker容器的kafka三种设置方式,
1.就是默认设置 (因没有设置,外部无法毗连,只有本地测试可用)
2.文件输入:提供一个本地kafka属性设置文件,更换docker容器中kafka的默认设置
3.情况变量:通过-e 变量 在启动时间覆盖默认设置中的对应属性值
在kafka的docker容器内部 /etc/kafka/docker 下有个server.properties
须要将这个文件放到宿主机
mkdir -p /usr/local/develop/docker/kafka/config
cd /usr/local/develop/docker/kafka/config
cranky_beaver是我的容器名 可以用id大概容器名 将设置文件复制出来
docker cp cranky_beaver:/etc/kafka/docker/server.properties ./
创建Topic
这里暂时用传统方式启动zookeeper和kafka 用kafka自带的zookeeper
进去kafka的bin目次
cd /usr/local/develop/kafka_2.13-3.9.0/bin
先启动zookeeper
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /usr/local/develop/zookeeper.log 2>&1 &
启动kafka
nohup ./kafka-server-start.sh ../config/server.properties > /usr/local/develop/zookeeper.log 2>&1 &
# 1. 创建主题 --bootstrap-server localhost:9092指要毗连的kafka服务器
./kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
./kafka-topics.sh --create --topic quickstart-events2 --partitions 2 --bootstrap-server localhost:9092 指定分区数量
修改分区数量(分区数量只能加 不能减 (删了重新创建))
./kafka-topics.sh --alter --topic quickstart-events2 --partitions 5 --bootstrap-server localhost:9092
# 2. 列出全部主题
./kafka-topics.sh --list --bootstrap-server localhost:9092
# 3. 表现主题详细信息
./kafka-topics.sh --describe --topic quickstart-events2 --bootstrap-server localhost:9092
# 4. 删除主题
./kafka-topics.sh --delete --topic quickstart-events --bootstrap-server localhost:9092
Kafka和EMQX的区别
生产者斲丧者通讯(发送吸取)
示例:
创建Topic
./kafka-topics.sh --create --topic topic-0 --bootstrap-server localhost:9092
生产者发送消息
./kafka-console-producer.sh --topic topic-0 --bootstrap-server localhost:9092 回车后创建生产者的毗连通道,消息就会被发送到 Kafka topic-0 主题中。
斲丧者读消息(拉取) --from-beginning 斲丧拉取该topic全部汗青消息 (因此每次启动都可以重复斲丧)
./kafka-console-consumer.sh --topic topic-0 --from-beginning --bootstrap-server localhost:9092
没有--from-beginning 只会斲丧(拉取)新消息 斲丧者启动之后生产者发送的消息
./kafka-console-consumer.sh --topic topic-0 --bootstrap-server localhost:9092
|