前言
最近在学docker,随着微服务的发展,服务直接部署到云主机上似乎有点浪费,于是容器化部署就被提出,并且发展迅速。学了docker总要练练,于是就学习了zookeeper和kafka,来用它们来搭建集群,在网上看了许多其他大神的博客,有多机器搭建集群,也有单节点搭建的伪集群,做了参考,我这里计划单节点搭建集群。话不多说,直接开始。
环境
CPU: 1核
内存: 2 GiB
操作系统: CentOS 7.4 64位
配置属实有点垃圾,租的便宜云主机,不过没关系,勉强够用。docker不是说启动容器占用的资源小吗,单个机器能起上千个吗。(当然不是我这个配置)
集群规划
因为只有一台机器,集群中的服务要映射到宿主机的不同端口。
zookeeper
zookeeper | ip | 宿主机端口->容器端口 |
---|---|---|
zoo1 | 172.21.0.11 | 2184->2181 |
zoo2 | 172.21.0.12 | 2185->2181 |
zoo3 | 172.21.0.13 | 2186->2181 |
kafka
kafka | ip | 宿主机端口->容器端口 |
---|---|---|
kafka1 | 172.21.0.14 | 9092->9092 |
kafka2 | 172.21.0.15 | 9093->9093 |
kafka3 | 172.21.0.16 | 9094->9094 |
kafka的默认端口是9092,容器端口都可以映射到9092,不过我在参考(搬运?)别人配置时,修改了kafka的环境变量,指定了kafka的端口,所以这里就这样配了。
搭建前的准备
安装docker,和docker-compose;拉取zookeeper,kafka镜像。
//安装前的配置
yum install -y yum-utils device-mapper-persistent-data lvm2 //安装前的配置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//安装
yum install docker-ce
//安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
//拉取镜像
docker pull zookeeper
docker pull wurstmeister/kafka
创建名为zk的network
docker network create --driver bridge --subnet=172.21.0.0/16 --gateway 172.21.0.1 zk
查看
搭建zookeeper集群
使用docker-compose快速搭建zookeeper集群
zk-compose.yml
version: '3.4'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
container_name: zoo1
ports:
- 2184:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888: