GCP Pub/Sub 實作紀錄
採用方式:Quickstart: Using Client Libraries
https://cloud.google.com/pubsub/docs/quickstart-client-libraries
Step1:取得Private key JSON
按照說明直接取得Private key的JSON檔
Step2:安裝Cloud SDK
https://cloud.google.com/sdk/docs/
Step3:設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數
設定$PATH指向剛剛下載的Private key,連線進Pub/Sub需要,如果用Eclipse開發則需設定Run configuration中的環境變數
Step4:Pub/Sub建立Topic和Subscription
使用Command line在Pub/Sub中建立topic和subscription
建立Topic:gcloud pubsub topics create my-topic
建立Subscription:gcloud pubsub subscriptions create my-sub — topic my-topic
Step5:實作範例code
實作Quickstart內的Code,如果用Eclipse直接跑記得修改args,如果用gradle引入GCP library的話記得要在專案右鍵refresh
測試結果:
Publisher發佈的訊息id:
225525887144043
225525887144044
225535532639077
225535532639078
225535532639079
225535532639080
225535532639081
225535532639082
225535532639083
225535532639084
Subscriber收到的結果:
Message Id: 225535532639077
Data: message-2
Message Id: 225535532639078
Data: message-3
Message Id: 225535532639079
Data: message-4
Message Id: 225535532639080
Data: message-5
Message Id: 225535532639081
Data: message-6
Message Id: 225535532639082
Data: message-7
Message Id: 225535532639083
Data: message-8
Message Id: 225535532639084
Data: message-9
Message Id: 225525887144043
Data: message-0
Message Id: 225525887144044
Data: message-1
可以看到Pub/Sub不保證存取順序
結論:
Pub/Sub主要是給大數據分析使用,在處理大量資料時有利,但如果是要接Market data等需要即時性、High throughput和Low latency時在效能上比較不夠力,可以考慮其他MQ服務,如Chronicle Queue、Kafka、RabbitMQ等等