Skip to content

Latest commit

 

History

History

pulsar

基于Docker的pulsar集群部署方法

准备工作

  1. 安装最新版本的docker
  2. 拉取pulsarpulsar-manager镜像
docker pull apachepulsar/pulsar:2.7.2
docker pull apachepulsar/pulsar-manager:v0.2.0

部署流程

standalone方式部署

启动容器:

sh startStandalone.sh

等待pulsar-manager启动完成后,初始化管理员信息:

sh initAccount.sh

显示以下内容说明管理员信息初始化成功:

> sh initAccount.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    36  100    36    0     0    130      0 --:--:-- --:--:-- --:--:--   130
{"message":"Add super user success, please login"}%

管理员信息初始化完成后,可从以下地址登入:

pulsar-manager: http://127.0.0.1:9527/#
username: admin, password: pulsar

构建成功后,点击 Clusters -> Cluster Name: standalone -> BROKERS ,可看到broker列表说明standalone方式部署完成

删除容器:

sh stopStandalone.sh

standalone方式容器说明

pulsar-standalone容器 - 配置了集群url地址为pulsar-standalone(便于pulsar-manager容器管理) - 未挂载数据盘,每次启动均为新实例

docker run -itd \
    --name pulsar-standalone \
    -p 6650:6650 \
    -p 8080:8080 \
    apachepulsar/pulsar:2.7.2 \
    sh -c  "bin/pulsar standalone > pulsar.log 2>&1 & \
            sleep 30 && bin/pulsar-admin clusters update standalone \
            --url http://pulsar-standalone:8080 \
            --broker-url pulsar://pulsar-standalone:6650 & \
            tail -F pulsar.log"

pulsar-manager容器 - 配置了默认集群环境 - 修改容器日志为后端日志

docker run -itd \
    --name pulsar-manager \
    -p 9527:9527 -p 7750:7750 \
    -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
    --link pulsar-standalone \
    --entrypoint="" \
    apachepulsar/pulsar-manager:v0.2.0 \
    sh -c  "sed -i '/^default.environment.name/ s|.*|default.environment.name=pulsar-standalone|' /pulsar-manager/pulsar-manager/application.properties & \
            sed -i '/^default.environment.service_url/ s|.*|default.environment.service_url=http://pulsar-standalone:8080|' /pulsar-manager/pulsar-manager/application.properties & \
            /pulsar-manager/entrypoint.sh & \
            tail -F /pulsar-manager/pulsar-manager/pulsar-manager.log"

cluster方式部署

启动集群(自动新建初始化数据目录data):

sh startCluster.sh

等待pulsar-manager启动完成后,初始化管理员信息:

sh initAccount.sh

显示以下内容说明管理员信息初始化成功:

> sh initAccount.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    36  100    36    0     0    130      0 --:--:-- --:--:-- --:--:--   130
{"message":"Add super user success, please login"}%

管理员信息初始化完成后,可从以下地址登入:

构建成功后,以下两个页面正常说明cluster方式部署完成

  • 点击 Clusters -> Cluster Name: pulsar-cluster-1 -> BROKERS ,可看到broker列表
  • 进入BookKeeper Visual Manager可看到3个BookKeeper节点

删除集群(删除容器,保留数据目录):

sh stopCluster.sh

停止和启动集群(保留容器):

# 停止容器
docker compose -f docker-compose-cluster.yml stop
# 启动容器
docker compose -f docker-compose-cluster.yml start

cluster方式容器说明

容器启动流程如下:

``` 
Zookeeper节点(zk1, zk2, zk3) 
-> 初始化集群元数据(init-metadata) 
-> Bookeeper节点(bookie1, bookie2, bookie3)
-> puslar broker节点(broker1, broker2, broker3)
-> 反向代理节点(pulsar-proxy)
-> pulsar manager节点(dashboard)
```

配置文件参考conf目录,数据目录为data,具体参考docker-compose-cluster.yml

所有容器的重启策略为失败后重启

restart: on-failure

日志均可通过docker logs <container-name>查看

参考资料