docker创建pulsar集群 监听mysql8 binlog
docker创建pulsar集群 监听mysql8 binlog
准备工作
1,不使用pulsar内部的zookeeper(zk)所以要自己pull zk的镜像
2,版本准备zookeeper:3.6.3 apachepulsar/pulsar:2.9.1 mysql:8(这个就不部署了吧)
3,我这里 部署在一台机器上了,尽量要分在三台,我只是为了说部署过程
4, 创建好docker 内网 mynet
5,关闭防火墙
开始
1,搭建 zk
创建文件夹
mkdir -p ~/zookeeper/zoo1/conf
mkdir -p ~/zookeeper/zoo1/data
创建容器
docker run -tid \
--name zoo1 \
zookeeper:3.6.3
拷贝配置文件
docker cp -r zoo1:/apache-zookeeper-3.6.3-bin/conf/* ~/zookeeper/zoo1/conf/
删除容器
docker rm -f zoo1
修改配置文件(这里不太一样 它的监听端口 是在第三个端口号不是以前的clientPort了,另外是分号)
dataDir=/data
server.1=172.18.0.11:2888:3888;18881
server.2=172.18.0.12:2888:3888;18882
server.3=172.18.0.13:2888:3888;18883
zk的部署这里不详细展开了,网上太多了.
cp -r ~/zookeeper/zoo1/conf/ ~/zookeeper/zoo2/conf/
cp -r ~/zookeeper/zoo1/conf/ ~/zookeeper/zoo3/conf/
echo 1 > ~/zookeeper/zoo1/data/myid
echo 2 > ~/zookeeper/zoo1/data/myid
echo 3 > ~/zookeeper/zoo1/data/myid
docker run -tid \
--name zoo1 \
--network=mynet --ip 172.18.0.11 \
-v /home/code/zookeeper/zoo1/conf:/apache-zookeeper-3.6.3-bin/conf \
-v /home/code/zookeeper/zoo1/data:/data \
-p 18881:18881 \
zookeeper:3.6.3
docker run -tid \
--name zoo2 \
--network=mynet --ip 172.18.0.12 \
-v /home/code/zookeeper/zoo2/conf:/apache-zookeeper-3.6.3-bin/conf \
-v /home/code/zookeeper/zoo2/data:/data \
-p 18882:18882 \
zookeeper:3.6.3
docker run -tid \
--name zoo3 \
--network=mynet --ip 172.18.0.13 \
-v /home/code/zookeeper/zoo3/conf:/apache-zookeeper-3.6.3-bin/conf \
-v /home/code/zookeeper/zoo3/data:/data \
-p 18883:18883 \
zookeeper:3.6.3
查看状态
[code@ec1 conf]$ docker exec -it zoo1 zkServer.sh status
2,搭建pulsar
mkdir -p /home/code/pulsar/p1/conf
mkdir -p /home/code/pulsar/p1/data
mkdir -p /home/code/pulsar/p1/data/bookkeeper/journal
mkdir -p /home/code/pulsar/p1/data/bookkeeper/ledgers
创建镜像
docker run -itd \
--name p1 \
apachepulsar/pulsar:2.9.1
拷贝conf
docker cp -r p1:/pulsar/conf /home/code/pulsar/p1/conf
配置booker
vim bookkeeper.conf
改成本机 ip
advertisedAddress=最好是 局域网ip
prometheusStatsHttpPort=8100
ledgerDirectories=/pulsar/data/bookkeeper/ledgers
journalDirectory=/pulsar/data/bookkeeper/journal
# 我这里用的是本机的外网ip
zkServers=118.195.***.***:18881,118.195.***.***:18882,118.195.***.***:18883
配置broker
zookeeperServers=118.195.***.***:18881,118.195.***.***:18882,118.195.***.***:18883
configurationStoreServers=118.195.***.***:18881,118.195.***.***:18882,118.195.***.***:18883
# 这里我只把zoo1 写成了 外网地址 zoo2和zoo3 都是内网地址,下面会告诉你为啥
advertisedAddress=118.195.***.***
clusterName=pulsar-cluster
复制两份
cp -r /home/code/pulsar/p1/conf /home/code/pulsar/p2/conf
cp -r /home/code/pulsar/p1/conf /home/code/pulsar/p3/conf
cp -r /home/code/pulsar/p1/data/home/code/pulsar/p2/data
cp -r /home/code/pulsar/p1/data/home/code/pulsar/p3/data
不要忘记了把 p2 p3 的 book 和 broke 配置文件的advertisedAddress 改成对应ip
删除重新创建镜像
docker rm -f zoo1
创建
docker run -itd \
--name p1 \
--network=mynet --ip 172.18.0.21 \
-p 6650:6650 \
-p 8091:8080 \
-p 12881:12881 \
-p 13881:13881 \
-p 12181:12181 \
-v /home/code/pulsar/p1/data:/pulsar/data \
-v /home/code/pulsar/p1/conf:/pulsar/conf \
apachepulsar/pulsar:2.9.1
docker run -itd \
--name p2 \
--network=mynet --ip 172.18.0.22 \
-p 6652:6650 \
-p 8092:8080 \
-p 12882:12882 \
-p 13882:13882 \
-p 12182:12182 \
-v /home/code/pulsar/p2/data:/pulsar/data \
-v /home/code/pulsar/p2/conf:/pulsar/conf \
apachepulsar/pulsar:2.9.1
docker run -itd \
--name p3 \
--network=mynet --ip 172.18.0.23 \
-p 6653:6650 \
-p 8093:8080 \
-p 12883:12883 \
-p 13883:13883 \
-p 12183:12183 \
-v /home/code/pulsar/p3/data:/pulsar/data \
-v /home/code/pulsar/p3/conf:/pulsar/conf \
apachepulsar/pulsar:2.9.1
3 ,进入容器开始初始化
docker exec -it zoo1 bash
初始化,我这里没有添加tls的配置
./bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper 118.195.***.***:18881 \
--configuration-store 118.195.***.***:18881,118.195.***.***:18882,118.195.***.***:18883 \
--web-service-url http://118.195.***.***:8091,118.195.***.***:8092,118.195.***.***:8093 \
--broker-service-url pulsar://118.195.***.***:6651,118.195.***.***:6652,118.195.***.***:6653
成功的截图
初始化 bookkeeper
bin/bookkeeper shell metaformat
会有一个让你按Y 的步骤
在三台机器运行 来启动 bookie:
bin/pulsar-daemon start bookie
(停止 bin/pulsar-daemon stop bookie)
验证是否启动成功:
bin/bookkeeper shell bookiesanity
启动broker
三台机器都要启动
bin/pulsar-daemon start broker
(关闭 bin/pulsar-daemon stop broker)
查看集群 brokers 节点情况
bin/pulsar-admin brokers list pulsar-cluster
这里使用zoo1的外网地址 是因为我在用java连接zk的时候会报172.18.0.21:18881连接不上的异常,所以为了展示就用的外网ip
三台都这样的话就是成功了
监听 mysql8的 配置请走传送门
CSDN Pulsar集群 监听mysql8的binlog
报错:
1,Client port not found in static config file. Looking in dynamic config
zk的版本和pulsar不匹配
参考
更多推荐
所有评论(0)