透過 container 啟動 Pulsar Manager

Message Queue 在正式服務上運行時大部份不會啟用 GUI,甚至像 kafka 原生就沒有提供,不過開發階段有 GUI 來協助確認訊息或是設定還是便利不少

  • RabbitMQ 有官方 plugin:management
  • Kafka 有外部公司產品:Conduktor
  • Pulsar 也有官方 web: Pulsar Manager

今天就來紀錄一下使用 docker 啟動 Pulsar Manager 與使用方式

基本環境說明

  1. macOS Monterey 12.2.1
  2. docker desktop 4.2.0(70708)
  3. docker images

    • apachepulsar/pulsar:2.9.1
    • apachepulsar/pulsar-manager:v0.2.0
  4. 使用 docker 啟動 pulsar

    docker run -d -p 6650:6650 -p 8080:8080 --name pulsar apachepulsar/pulsar:latest bin/pulsar standalone
    
    • 6650 是 broker service port
    • 8080 是 web service port

設定與使用方式

  1. 使用 docker 啟動

    docker run -d -p 9527:9527 -p 7750:7750 -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties apachepulsar/pulsar-manager:v0.2.0
    
    • 9527 是 web ui 的 port
    • 7750 是後台 api 的 port
  2. 建立 user

    • 語法

      CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token) &&
      curl \
         -H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
         -H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
         -H "Content-Type: application/json" \
         -X PUT http://localhost:7750/pulsar-manager/users/superuser \
         -d '{"name": "{username}", "password": "{password}", "email": "{email}"}'
      
    • 範例

      CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token) &&
      curl \
         -H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
         -H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
         -H "Content-Type: application/json" \
         -X PUT http://localhost:7750/pulsar-manager/users/superuser \
         -d '{"name": "yowko", "password": "pass.123",  "email": "[email protected]"}'
      
  3. 登入成功後,需要先建立 pulsar 的 endpoint

    • New Environment

      1newenvironment

    • Name and URL

      因為使用 docker 啟動,記得 url 不要填 localhost or 127.0.0.1 會連到 Pulsar Manager 本身

      2nameurl

    • 成功新增

      3success

      • 若 url 無法連線會出現錯誤訊息

        4error

      • 如果沒有提供 protocol 則畫面不會有任何動作

        5noschema

心得

Pulsar Manager 的 UI 有些地方 ux 不是那麼直覺

  1. 像是前面提到的 Environment 設定,沒有提供 protocol 卻沒有反應
  2. 後面 New Topic 如果 pulsar 無法連線也不會提示,就是畫面沒有反應而已
  3. 部份功能 tab 也許是 cache,點來點去不如預期 後來才發現是 session 過期
  4. 我沒找到直接 consume 訊息的功能

參考資訊

  1. Pulsar Manager
  2. apache/pulsar-manager