欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker安装kafka服务器端,记一次liunx服务器下的操作流程

程序员文章站 2024-03-13 16:30:57
...

前言

安装kafka前提,需要依赖zookper,所以需要先安装 zookper

Zookeeper安装配置

  • 下载最新镜像容器
docker pull zookeeper
  • 查看本地镜像
docker images
  • 创建挂载目录
    Docker安装kafka服务器端,记一次liunx服务器下的操作流程
  • 运行容器,启动zookeeper服务
sudo docker run -itd \
-p 12181:2181 \
--name zk-service \
-v /data/zookeeper/data/:/data/ \
-v /data/zookeeper/datalog/:/datalog/ \
-v /data/zookeeper/logs/:/logs/ \
zookeeper
  • 查看启动的容易列表
docker ps -a

安装配置kafka

  • 下载最新版本的或者需要的版本
docker pull wurstmeister/kafka
  • 查看本地镜像容器列表
docker images
  • 启动kafka容器服务
docker run -itd \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kafka \
-p 19092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=39.101.190.227:12181/kafka \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://39.101.190.227:19092 \
-e KAFKA_LISTENERS=PLAINTEXT://x.x.x.x:19092 \
-v /etc/localtime:/etc/localtime \
wurstmeister/kafka
  • 拷贝kafka配置信息
docker cp kafka:/opt/kafka/config/ /data/kafka/
docker cp kafka:/opt/kafka/libs/ /data/kafka/
docker cp kafka:/kafka/ /data/kafka/
  • 停止/删除kafka容器
docker stop kafka #停止kafka容器实例
docker rm kafka #删除kafka实例
  • 启动挂载本地配置的kafka实例
sudo docker run -itd \
--name kafka \
-p 9092:9092 \
-v /data/kafka/config/:/opt/kafka/config/ \
-v /data/kafka/libs/:/opt/kafka/libs/ \
-v /data/kafka/logs/:/kafka/ \
-v /etc/localtime:/etc/localtime \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=[your.host]:12181/kafka \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://[your.host]:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
wurstmeister/kafka
  • 参数说明:

-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=[your.host]:2181/kafka 配置zookeeper管理kafka的路径[your.host]:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://[your.host]:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

  • 验证kafka是否可用
    1) 进入容器
docker exec -it kafka bash

2)进入 /opt/kafka_2.12-2.3.0/bin/ 目录下

cd /opt/kafka_2.12-2.3.0/bin/

3)运行kafka生产者发送消息

./kafka-console-producer.sh --broker-list localhost:9092 --topic sun

发送消息:

> {"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
  1. 运行kafka消费者接收消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning