準(zhǔn)備:
3臺內(nèi)存4G的機(jī)器用于運(yùn)行zookeeper,配置要求不高
3臺16核128G的機(jī)器,我這里使用的4核32G,每臺運(yùn)行一個(gè)bookkeeper和broker
域名:
zk1.test.com, zk2.test.com, zk3.test.com 分別指向3臺要運(yùn)行zookeeper的機(jī)器
pulsar.test.com 指向另外三項(xiàng)機(jī)器(dnspod可以做負(fù)載均衡)
安裝java8
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
下載二進(jìn)制文件壓縮包
wget https://archive.apache.org/dist/pulsar/pulsar-2.2.0/apache-pulsar-2.2.0-bin.tar.gz
tar xvfz apache-pulsar-2.2.0-bin.tar.gz
mv apache-pulsar-2.2.0 pulsar
下載connectors
wget https://archive.apache.org/dist/pulsar/pulsar-2.2.0/apache-pulsar-io-connectors-2.2.0-bin.tar.gz
tar xvfz apache-pulsar-io-connectors-2.2.0-bin.tar.gz
cp -r apache-pulsar-io-connectors-2.2.0/connectors pulsar
每臺機(jī)器進(jìn)入到pulsar目錄開始配置
zookeeper
以第一臺機(jī)器為例
vim conf/zookeeper.conf#添加如下信息
本機(jī)的server要使用0.0.0.0
server.1=0.0.0.0:2888:3888
server.2=zk2.test.com:2888:3888
server.3=zk3.test.com:2888:3888
mkdir -p data/zookeeper
echo 1 > data/zookeeper/myid#其它兩臺分別添加2 3到myid
配置完三臺機(jī)器后啟動(dòng)所有zookeeper
./pulsar-daemon start zookeeper#后臺方式啟動(dòng)
#./pulsar zookeeper#前臺啟動(dòng)
在任意一臺zookeeper機(jī)器上僅進(jìn)行一次初始化元數(shù)據(jù)
./pulsar initialize-cluster-metadata \
--cluster cluster1 \#集群名稱
--zookeeper zk1.test.com:2181 \
--configuration-store zk1.test.com:2181 \
--web-service-url http://pulsar.test.com:8080 \
--web-service-url-tls https://pulsar.test.com:8443 \
--broker-service-url pulsar://pulsar.test.com:6650 \
--broker-service-url-tls pulsar+ssl://pulsar.test.com:6651
bookkeeper
vim conf/bookkeeper.conf#配置如下信息
advertisedAddress=自己的外網(wǎng)ip
zkServers=zk1.test.com:2181,zk2.test.com:2181,zk3.test.com:2181
#啟動(dòng)所有bookkeeper節(jié)點(diǎn)
./pulsar-daemon start bookie#后臺
./bookkeeper bookie#前臺
./bookkeeper shell bookiesanity #測試
啟動(dòng)過后會有緩存信息,修改配置再次啟動(dòng)會報(bào)錯(cuò),清除data目錄,并運(yùn)行恢復(fù)命令
./bookkeeper autorecovery #恢復(fù)bookkeeper
broker
vim conf/broker.conf#配置如下信息
advertisedAddress=自己的外網(wǎng)ip
clusterName=cluster1 #上面zookeeper添加元數(shù)據(jù)時(shí)的名稱
zookeeperServers=zk1.test.com:2181,zk2.test.com:2181,zk3.test.com:2181
configurationStoreServers=zk1.test.com:2181,zk2.test.com:2181,zk3.test.com:2181
#啟動(dòng)所有broker節(jié)點(diǎn)
./pulsar-daemon start broker#后臺
./pulsar broker#前臺
客戶端連接
客戶端連接的url是pulsar://pulsar.test.com:6650/
連接后可以使用默認(rèn)主題收發(fā)消息
新建租戶(tenants)空間(namespaces)主題(topic)
./pulsar-admin tenants create yourname \
--allowed-clusters cluster1
./pulsar-admin namespaces create yourname/space
./pulsar-admin namespaces set-clusters yourname/space --clusters cluster1#為空間設(shè)置集群