集群說明
搭建 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" |