目录
1. 准备环境
2. 部署JDK环境(要求版本不低于JDK8)
3. 下载Pulsar最新安装包
4. Zookeeper集群部署
4.1 搭建pulsar集群至少需要三个组件
4.2 创建文件夹
4.3 pulsar安装包
4.4 部署zookeeper集群
4.4.1 三台服务器创建目录
4.4.2 修改zookeeper配置文件
4.4.3 启动zookeeper
4.4.4 初始化zookeeper
4.4.5 执行zookeeper客户端连接命令
4.4.6 重新初始化或者删除数据时
5. 部署配置bookkeeper集群
5.1 分别在各节点执行
5.2 修改配置文件
5.3 先初始化,再启动
6. 部署配置Broker集群
6.1 修改配置文件
6.2 启动各个节点
7. 测试
8. docker部署pulsar-manager搭建
3台Linux裸机服务器(CentOS7为例)
ip分别为:
ip地址 | 192.168.1.96 |
ip地址 | 192.168.1.97 |
ip地址 | 192.168.1.98 |
安装JDK参考:
Linux部署jdk1.8_率小气的博客-CSDN博客
下载地址:
Apache Pulsar
pulsar安装包包含以下组件,无需单独下载组件安装包
在工作目录下创建三个文件夹
mkdir -p /home/pulsar/zookeeper
mkdir -p /home/pulsar/bookies
mkdir -p /home/pulsar/broker
把下载的pulsar安装包上传至linux服务器,并解压安装,这里我下载的2.9.1版本
tar xf apache-pulsar-2.9.1-bin.tar.gz
把解压后的文件分别复制至所创建的3个文件夹
cp -ir /opt/apache-pulsar-2.9.1/* /home/pulsar/zookeeper/
cp -ir /opt/apache-pulsar-2.9.1/* /home/pulsar/broker/
cp -ir /opt/apache-pulsar-2.9.1/* /home/pulsar/bookie/
mkdir -p /home/pulsar/data/zookeeper
执行:
echo 1 > /home/pulsar/data/zookeeper/myid
echo 2 > /home/pulsar/data/zookeeper/myid
echo 3 > /home/pulsar/data/zookeeper/myid
vim /home/pulsar/zookeeper/conf/zookeeper.conf
dataDir= /home/pulsar/data/zookeeper/
server.1=192.168.1.96:2888:3888
server.2=192.168.1.97:2888:3888
server.3=192.168.1.98:2888:3888
分别启动三台Linux服务器zookeeper
cd /home/pulsar/zookeeper/
#执行启动命令
/bin/pulsar-daemon start zookeeper
#停止命令
/bin/pulsar-daemon stop zookeeper
#查看进程
ps aux|grep zookeeper
#查看端口情况
ss -ntlp
netstat -tpnl|grep 2181
#初始化
pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper 192.168.1.96:2181 \
--configuration-store 192.168.1.96:2181 \
--web-service-url http://192.168.1.96:8080,http://192.168.1.97:8080,http://192.168.1.98:8080 \
--web-service-url-tls https://192.168.1.96:8443,192.168.1.97:8443,192.168.1.98:8443 \
--broker-service-url pulsar://192.168.1.96:6650,192.168.1.97:6650,192.168.1.98:6650 \
--broker-service-url-tls pulsar+ssl://192.168.1.96:6651,192.168.1.97:6651,192.168.1.98:6651
#执行zookeeper客户端命令,如果是默认端口情况下,执行如下命令连接
bin/pulsar zookeeper-shell
#指定ip和端口的情况下,执行如下命令连接
/bin/pulsar zookeeper-shell -server 192.168.1.96:2181
/bin/pulsar zookeeper-shell -server 192.168.1.97:2181
/bin/pulsar zookeeper-shell -server 192.168.1.98:2181
#查看所有zookeeper节点数据,命令如下
ls /
#显示,表示成功
[admin, bookies, ledgers, managed-ledgers, namespace, pulsar, stream, zookeeper]
建议:先停掉zookeeper,然后直接删除单台zookeeper数据目录,然后再重新启动
重新初始化,删除zookeeper的数据,日志也删除
创建bookies所需目录
mkdir -p /home/pulsar/bookies/tmp/journal
mkdir -p /home/pulsar/bookies/tmp/ledgers
vim /home/pulsar/bookies/conf/bookkeeper.conf
journalDirectory=/home/admin/bookies/tmp/journal
ledgerDirectories=/home/admin/bookies/tmp/ledgers
#advertisedAddress修改为服务器对应的ip
advertisedAddress=192.168.1.96
#修改端口号8000为8100,zookeeper占用了8000端口
prometheusStatsHttpPort=8100
#修改zookeeper地址和端口信息
zkServers=192.168.1.96:2181,192.168.1.97:2181,192.168.1.98:2181
#查看8000端口是否占用, 如果占用,修改为8100
netstat -tpnl |grep 8000
#httpServerPort默认也是8000,建议修改,我这里修改为:8100
prometheusStatsHttpPort=8100
# 初始化元数据,并启动 bookie 集群
# 执行初始化元数据命令;若出现提示,输入 Y,继续(只需在任意一个bookie节点执行一次)
bin/bookkeeper shell metaformat
#bookie关闭命令
bin/pulsar-daemon stop bookie
#启动bookie命令,以后台进程启动bookie
bin/pulsar-daemon start bookie
#日志查看
tail f /home/pulsar/bookies/logs/pulsar-bookie-localhost.localdomain.log
#验证是否启动成功
bin/bookkeeper shell bookiesanity
#出现如下显示,表示启动成功Bookie
Bookie sanity test succeeded
#修改配置文件
vim /home/pulsar/broker/conf/broker.conf
zookeeperServers=192.168.1.96:2181,192.168.1.97:2181,192.168.1.98:2181
configurationStoreServers=192.168.1.96:2181,192.168.1.97:2181,192.168.1.98:2181
#修改服务器对应的ip
advertisedAddress=192.168.1.96
#修改zookeeper集群名称,初始化时候所用的集群名称(--cluster pulsar-cluster)
clusterName=pulsar-cluster
#查看端口是否被占用,如果占用修改为其他端口
webServicePort=8080
#启动命令
bin/pulsar-daemon start broker
#停止命令
bin/pulsar-daemon stop broker
# 查看集群 brokers 节点情况
bin/pulsar-admin brokers list pulsar-cluster
bin/pulsar-admin --admin-url http://192.168.1.97:8080 brokers list pulsar-cluster
#显示如下:表示集群搭建成功
192.168.1.96:8080
192.168.1.97:8080
192.168.1.98:8080
#订阅
bin/pulsar-client consume \
persistent://public/default/test \
-n 100 \
-s "consumer-test" \
-t "Exclusive"
#发送
bin/pulsar-client produce \
persistent://public/default/test \
-n 1 \
-m "Hello Pulsar"
----- 收到消息 -----
Hello Pulsar
docker run -d -p 9527:9527 -p 7750:7750 \
-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
--name pulsar-manager \
-e pulsar.peek.message=true \
apachepulsar/pulsar-manager:v0.2.0
CSRF_TOKEN=$(curl http://localhost:17750/pulsar-manager/csrf-token)
curl \
-H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
-H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
-H "Content-Type: application/json" \
-X PUT http://localhost:7750/pulsar-manager/users/superuser \
-d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "***@qq.com"}'
登录访问:
我部署在192.168.1.96服务器上面
http://192.168.1.96:9527
用户名:admin
密码:apachepulsar
以上基本部署完成!!!