[ Broker ] 在 Ubuntu 安裝 Apache Pulsar

學習目標

  • 在 Ubuntu OS 安裝 Apache Pulsar

㊟ Apache Pulsar 的 Port 為 6650


前置準備作業

  1. 一台 Ubuntu 電腦 (本範例使用 Ubuntu-16.04)
  2. 記憶體至少 4G 以上

Ubuntu 端安裝 Apache Pulsar

Step 1. 安裝 Java8

開啟終端機輸入下列指令
① sudo add-apt-repository ppa:webupd8team/java
② sudo apt-get update
③ sudo apt-get install oracle-java8-installer

Step 2. 確認 Java 版本

開啟終端機輸入下列指令
java -version  

Step 3. 安裝 oracle-java8-set-default

開啟終端機輸入下列指令
sudo apt-get install oracle-java8-set-default  

Step 4. 設定 Java 環境變數

開啟終端機輸入下列指令
sudo nano /etc/environment  

加入環境變數並存檔離開
JAVA_HOME="/usr/lib/jvm/java-8-oracle"  

生效與確認
終端機輸入下列指令
source /etc/environment  
echo $JAVA_HOME  


Step 5. 安裝 Apache Pulsar

開啟終端機輸入下列指令
① wget https://archive.apache.org/dist/incubator/pulsar/pulsar-2.1.1-incubating/apache-pulsar-2.1.1-incubating-bin.tar.gz
② tar xvfz apache-pulsar-2.1.1-incubating-bin.tar.gz

Step 6. 啟動 Apache Pulsar

開啟終端機輸入下列指令
① cd apache-pulsar-2.1.1-incubating
② ./bin/pulsar standalone


Ubuntu 端建立 Consumer

Step 1. 安裝 Python Pulsar 等套件

開啟終端機輸入下列指令
① 新開啟一個終端機視窗
② sudo apt install -y python-pip
③ pip install pulsar-client

Step 2. 撰寫 Python Consumer 程式碼

㊟ 請修正 pulsarIP 為 Ubuntu 的 IP ㊟ Python Consumer 程式碼名稱設為 Consumer.py

import pulsar

pulsarIP = '10.211.55.9'

client = pulsar.Client('pulsar://' + pulsarIP + ':6650')  
consumer = client.subscribe('my-topic', 'my-subscription')

while True:  
    msg = consumer.receive()
    print("Received message '{}' id='{}'".format(msg.data(), msg.message_id()))
    consumer.acknowledge(msg)

client.close()  

Step 3. 執行此 Python Consumer 程式碼

python Consumer.py  


Step 4. 撰寫 Python Producer 程式碼

㊟ 請修正 pulsarIP 為 Ubuntu 的 IP ㊟ Python Producer 程式碼名稱設為 Producer.py ㊟ Producer 傳送 Hello World 的資訊給 Consumer

import pulsar

pulsarIP = '10.211.55.9'

client = pulsar.Client('pulsar://' + pulsarIP + ':6650')

producer = client.create_producer('my-topic')

producer.send('Hello World')

client.close()  

Step 5. 執行此 Python Producer 程式碼

python Producer.py  


Step 6. 確認 Consumer 是否有接收到 Producer 傳來的資訊

㊟ 接收到 Producer 傳來的 Hello World 的資訊


Reference
List of blogs
ALL RIGHTS RESERVED. COPYRIGHT © 2018. Designed and Coded by Makee.io