集群说明
搭建 Pulsar 集群至少需要 3 个组件:
ZooKeeper 集群(3 个 ZooKeeper 节点组成)
bookie 集群(也称为 BookKeeper 集群,3 个 BookKeeper 节点组成)
broker 集群(3 个 Pulsar 节点组成,broker 是 Pulsar 的自身实例)
Pulsar 的安装包已包含了搭建集群所需的各个组件库。无需单独下载 ZooKeeper 安装包和 BookKeeper 安装包。
3 台 Linux 服务器 IP 分别为 10.9.4.22,10.9.5.17,10.9.5.15,生产建议将各个组件分开部署
在 3 台 Linux 裸机服务器上安装 JDK(要求版本不低于 JDK 8)
下载pulsar
下载最新版本pulsar,https://pulsar.apache.org/download/
tar -zxvf apache-pulsar-2.7.0-bin.tar.gz /workspace/ |
安装zookeeper
cd /workspace/apache-pulsar-2.7.0/conf/ vim zookeeper.conf 更改zk存储路径 dataDir=/data/zookeeper/zookeeper dataLogDir=/data/zookeeper/logs 添加集群ip信息 server.1=10.9.4.22:2888:3888 server.2=10.9.5.17:2888:3888 server.3=10.9.5.15:2888:3888 |
创建zookeeper目录
mkdir -pv /data/zookeeper/{zookeeper,logs} |
分别写入每台zookeeper myid
echo 1 > /data/zookeeper/zookeeper/myid echo 2 > /data/zookeeper/zookeeper/myid echo 3 > /data/zookeeper/zookeeper/myid |
启动zk命令
bin/pulsar-daemon start zookeeper |
检查zookeeper是否启动成功
bin/pulsar zookeeper-shell get /zookeeper/config |
配置bookeeper
修改bookeeper
cd /workspace/apache-pulsar-2.7.0/ vim conf/bookkeeper.conf zkServers=10.9.4.22:2181,10.9.5.17:2181,10.9.5.15:2181 journalDirectory=/data/bookkeeper/journal ledgerDirectories=/data/bookkeeper/ledgers prometheusStatsHttpPort=8100 |
创建bookeeper目录
mkdir -pv /data/bookkeeper/{journal,ledgers} |
在任一个 ZooKeeper 节点上初始化集群元数据
cd /workspace/apache-pulsar-2.7.0/ bin/pulsar initialize-cluster-metadata --cluster pulsar-cluster-1 --zookeeper 10.9.4.22:2181 --configuration-store 10.9.4.22:2181 --web-service-url http://10.9.4.22:8080 --web-service-url-tls https://10.9.4.22:8443 --broker-service-url pulsar://10.9.4.22:6650 --broker-service-url-tls pulsar+ssl://10.9.4.22:6651 |
查看集群元数据是否初始化成功,看到如下图所内容,表示初始化成功
cd /workspace/apache-pulsar-2.7.0/ bin/pulsar zookeeper-shell |
启动bookeeper
cd /workspace/apache-pulsar-2.7.0/ bin/pulsar-daemon start bookie |
可以通过运行BookKeeper shell上的bookiesanity命令验证 bookie 是否正常工作:
cd /workspace/apache-pulsar-2.7.0/ bin/bookkeeper shell bookiesanity |
启动了所有的 bookie 后,你能够在任意一台bookie上,使用BookKeeper shell的simpletest命令,去校验集群内所有的 bookie 是否都已经启动。
cd /workspace/apache-pulsar-2.7.0/ bin/bookkeeper shell simpletest --ensemble 3 --writeQuorum 2 --ackQuorum 2 --numEntries 1000 |
这个命令会在集群上创建和bookie 的ledger,并往里面写一些条目,然后读取它,最后删除这个ledger。
配置 Broker
修改broker.conf配置文件
cd /workspace/apache-pulsar-2.7.0/ vim conf/broker.conf zookeeperServers=10.9.4.22:2181,10.9.5.17:2181,10.9.5.15:2181 configurationStoreServers=10.9.4.22:2181,10.9.5.17:2181,10.9.5.15:2181 clusterName=pulsar-cluster-1 brokerServicePort=6650 brokerServicePortTls=6651 webServicePort=8080 webServicePortTls=8443 |
启动broker
bin/pulsar-daemon start broker |
查看集群 brokers 节点情况
bin/pulsar-admin brokers list pulsar-cluster |
模拟生产者发送消息
bin/pulsar-client produce persistent://public/default/test -n 1 -m "Hello Pulsar" |
监听消费者接收到的消息
bin/pulsar-client consume persistent://public/default/test -n 100 -s "consumer-test" -t "Exclusive" |