kafka安装

win10

来源:https://blog.csdn.net/tianmanchn/article/details/78943147

启动kafka

进入D:\WorkSoftware\kafka_2.11-1.0.0 ,打开cmd,运行:

.\bin\windows\kafka-server-start.bat .\config\server.properties

测试使用

  • 创建一个kafka的topic
java 复制代码
//创建一个test1队列:
.\bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test1 --partitions 3 --replication-factor 1
//检查创建结果:
.\bin\kafka-topics.sh --zookeeper localhost:2181 --describe --topic test1
  • 启动接收方
java 复制代码
.\bin/kafka-console-consumer.sh --zookeeper localhost:2181--topic test1
//显示数据
  • 启动发送方
java 复制代码
.\bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
//发送数据

Linux安装

参考:https://www.cnblogs.com/lsdb/p/7762871.html

下载:http://kafka.apache.org/downloads

下载完之后,上传到Linux上(我放到了/usr/lib/kafka

安装kafka

只需要解压就可以了

shell 复制代码
cd /usr/lib/kafka

配置单节点

配置单节点zookeeper

使用kafka自带的zookeeper

shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0
mkdir -p zk/data   #创建zookeeper数据存放目录
mkdir -p zk/logs    #创建zookeeperl存放日志目录
cd config       #进入配置文件所在目录

mv zookeeper.properties zookeeper.properties.bak #将原配置文件移走,并重命名
cat > zookeeper.properties << EOF
tickTime=2000
dataDir=/usr/lib/kafka/kafka_2.11-2.3.0/zk/data
dataLogDir=/usr/lib/kafka/kafka_2.11-2.3.0/zk/logs
clientPort=2181
EOF

到具体情况时注意修昨dataDir和dataLogDir为自己的相应目录

配置单结点kafka
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0
mkdir logs    #创建logs目录用于存放日志
cd config       #进入配置文件所在目录
mv server.properties server.properties.bak #将原配置文件移走

cat > server.properties << EOF
broker.id=1
listeners=PLAINTEXT://192.168.88.128:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/usr/lib/kafka/kafka_2.11-2.3.0/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.88.128:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
EOF

上边配置的server.properties的内容基本都是原server.properties的默认配置,到自己安装时主要修改:

  • broker.id--broker的id;修改为任意自己想要的数值(和zookeeper中的id类似的)
  • listeners--监听址址;修改为kafka要监听的地址
  • log.dirs--日志文件存放目录;修改为自己要存放日志的目录
  • zookeeper.connect--zookeeper监听地址;修改为自己的zookeeper的监听地址,如果是集群所有地址全写上用逗号(半角)隔开即可

启动和停止

启动前要配置JAVA_HOME,不然无法启动(和tomcat一样虽然输出started了但并有有启,可查看kafkaServer.out)

启动
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0/bin
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties    #启动zookeeper
./kafka-server-start.sh -daemon ../config/server.properties           #启动kafka
停止:
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0/bin
./zookeeper-server-stop.sh    #停止zookeeper
./kafka-server-stop.sh        #停止kafka,centos7上可能关不了用kill -9直接杀掉
查看是否有zookeeper和kafka进程
shell 复制代码
jps

搭建集群

zookeeper改造
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0/config #进入配置文件路径

cat >> zookeeper.properties << EOF
initLimit=5
syncLimit=2
server.1=192.168.88.128:2888:3888
server.2=192.168.88.129:2888:3888
server.3=192.168.88.130:2888:3888
EOF

echo '1' > ../zk/data/myid          #配置zookeeper的myid文件
kafka改造

编缉server.properties文件,将所有的zookeeper集群地址追加到zookeeper.connect后,每个地址间用逗号(半角)隔开即可

集群搭建
  • 将上边安装配置好的kafka打包传到其创机器上,然后解压;
  • 对于zookeeper,各机修改zk/data/myid文件的为不同的值,然后各机重启zookeeper即可。
  • 对于kafka,各机修改server.properties中的broker.id为不同的值,listeners修改为本各机IP,然后各机重启kafka即可。

测试是否可用

创建topics:

shell 复制代码
./kafka-topics.sh --create --zookeeper 192.168.88.128:2181 --replication-factor 2 --partitions 1 --topic test_topics

在一台上创建生产者:

shell 复制代码
./kafka-console-producer.sh --broker-list 192.168.88.128:9092 --topic test_topics

在另一台上创建消费者:

shell 复制代码
./kafka-console-consumer.sh --zookeeper 192.168.220.88:2181 --topic test_topics --from-beginning

正常的话在生产者中输入的内容,会在消费者端输出。

docker安装kafka

https://blog.csdn.net/y393016244/article/details/126405864

  • 首先创建一个网络
shell 复制代码
docker network create app-tier --driver bridge
####
app-tier:网络名称
--driver:网络类型为bridge
  • 安装zookeeper
shell 复制代码
docker run -d --name zookeeper-server \
    --network app-tier \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest
####
Kafka依赖zookeeper所以先安装zookeeper
-p:设置映射端口(默认2181)
-d:后台启动
  • 查看zookeeper容器日志
shell 复制代码
docker logs -f zookeeper-server
  • 安装Kafka
shell 复制代码
docker run -d --name kafka-server \
    --network app-tier \
 -v /etc/localtime:/etc/localtime:ro \
 -v /etc/hosts:/etc/hosts \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=local-vm1:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://local-vm1:9092 \
    bitnami/kafka:latest
#####
--name:容器名称
-p:设置映射端口(默认9092 )
-d:后台启动
ALLOW_PLAINTEXT_LISTENER任何人可以访问
KAFKA_CFG_ZOOKEEPER_CONNECT链接的zookeeper
KAFKA_ADVERTISED_HOST_NAME当前主机IP或地址(重点:如果是服务器部署则配服务器IP或域名否则客户端监听消息会报地址错误)
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \

图形化界面

shell 复制代码
docker run -d --name kafka-map \
    --network app-tier \
    -p 9001:8080 \
    -v /usr/local/soft/docker/kafka/kafka-map/data:/usr/local/kafka-map/data \
    -e DEFAULT_USERNAME=admin \
    -e DEFAULT_PASSWORD=admin \
    --restart always dushixiang/kafka-map:latest

打开:http://127.0.0.1:9001

相关推荐
yx9o9 分钟前
Kafka 源码 KRaft 模式本地运行
分布式·kafka
Gemini199533 分钟前
分布式和微服务的区别
分布式·微服务·架构
G丶AEOM34 分钟前
分布式——BASE理论
java·分布式·八股
P.H. Infinity7 小时前
【RabbitMQ】03-交换机
分布式·rabbitmq
java1234_小锋8 小时前
讲讲RabbitMQ 性能优化
kafka
龙哥·三年风水9 小时前
群控系统服务端开发模式-应用开发-个人资料
分布式·php·群控系统
funnyZpC11 小时前
quartz集群增强版🎉
java·分布式·开源·集群·定时任务
明达技术11 小时前
工业4.0时代下的分布式IO模块
分布式
天冬忘忧13 小时前
Spark 程序开发与提交:本地与集群模式全解析
大数据·分布式·spark
一叶飘零_sweeeet14 小时前
Dubbo 构建高效分布式服务架构
分布式·架构·dubbo