docker 部署 zookeeper & kafka

Zookeeper 集群部署

主机名称IP地址mypid
zookeeper_110.160.1.51
zookeeper_210.160.1.102
zookeeper_310.160.1.73
zookeeper_410.160.1.94

1. 官方下载二进制包

官方地址
https://archive.apache.org/dist/zookeeper/

mkdir /data/package 

cd /data/package 

wget http://archive.apache.org/dist/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz 

2. 初始化

cd /data/package 

# 解压
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz 
mv apache-zookeeper-3.8.1-bin ../zookeeper-3.8.1

# 添加数据、日志目录
cd ../zookeeper-3.8.1 
mkdir logs data

3. 修改配置文件

cd /data/zookeeper-3.8.1 

# 拷贝默认配置文件
cp conf/zoo_sample.cfg conf/zoo.cfg

# 修改配置文件 
egrep -v "^#|^$" conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataLogDir=/data/zookeeper-3.8.1/logs
dataDir=/data/zookeeper-3.8.1/data
clientPort=2181
server.1=10.160.1.5:2888:3888
server.2=10.160.1.10:2888:3888
server.3=10.160.1.7:2888:3888
server.4=10.160.1.9:2888:3888

# 在对应的节点新增 data/mypid 文件,填写对应的 server.id 
echo 1 > data/mypid

4. 启动

bin/zkServer.sh start

5. 查看集群状态

bin/zkServer.sh status 

# 正常日志
/bin/java
ZooKeeper JMX enabled by default
Using config: /data/zookeeper-3.8.1/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

Kafka 集群部署

使用 docker 部署集群,CentOS 安装 docker & docker-compose

主机名称IP地址brokerID
kafka_110.160.1.131
kafka_210.160.1.122
kafka_310.160.1.113

说明: 以下操作均在 /data/kafka/ 路径下执行

version: "3"
services: 

  kafka1: 
    image: bitnami/kafka:2.8.1
    container_name: kafka1
    hostname: kafka1
    restart: always 
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: 10.160.1.5:2181,10.160.1.10:2181:10.160.1.7:2181,10.160.1.9:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://10.160.1.13:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      ALLOW_PLAINTEXT_LISTENER: yes
    volumes: 
      - "./data:/bitnami/kafka"
    ports: 
      - "9092:9092"

说明

  • container_name 和 hostname 保持一样,不要和其他主机重复
  • KAFKA_ADVERTISED_LISTENERS:填写对应服务器地址
  • KAFKA_BROKER_ID: 填写对应的 ID 即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Docker部署ZookeeperKafka的步骤: 1. 安装DockerDocker Compose 2. 创建Docker Compose文件 在本地目录中创建一个名为docker-compose.yml的文件,并添加以下内容: ``` version: "3" services: zookeeper: image: zookeeper ports: - "2181:2181" environment: ZOO_MY_ID: 1 volumes: - ./data/zookeeper/data:/data - ./data/zookeeper/datalog:/datalog kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_TOPICS: "test:1:1" volumes: - ./data/kafka:/kafka depends_on: - zookeeper ``` 此文件定义了两个服务:ZookeeperKafkaZookeeper服务使用官方的Zookeeper镜像,Kafka服务使用wurstmeister的Kafka镜像。 3. 启动服务 在终端中,进入含有docker-compose.yml文件的目录中,然后运行以下命令: ``` docker-compose up -d ``` 此命令将启动ZookeeperKafka服务,并将它们作为Docker容器在后台运行。 4. 验证服务 在浏览器中访问http://localhost:2181/,应该会看到Zookeeper的管理界面。您还可以使用以下命令在Kafka上创建一个测试主题: ``` docker-compose exec kafka \ kafka-topics.sh --create \ --zookeeper zookeeper:2181 \ --replication-factor 1 \ --partitions 1 \ --topic test ``` 使用以下命令在Kafka上发布一条消息: ``` docker-compose exec kafka \ bash -c "echo 'hello, world' | kafka-console-producer.sh --broker-list localhost:9092 --topic test && echo 'Produced 1 message.'" ``` 最后,使用以下命令在Kafka上消费消息: ``` docker-compose exec kafka \ kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning ``` 如果您能够在终端中看到“hello, world”消息,则表明Kafka已经成功运行。 5. 停止服务 在终端中,进入docker-compose.yml文件所在的目录中,并运行以下命令: ``` docker-compose down ``` 此命令将停止并删除ZookeeperKafka容器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值