1. 程式人生 > 實用技巧 >zeebe學習(四)——docker+docker-compose(儲存庫)

zeebe學習(四)——docker+docker-compose(儲存庫)

  在zeebe學習(一)中,我們在Linux虛擬機器上安裝了zeebe並部署了官方提供的工作流程,最後建立了工作流例項並執行。

  但在本篇的學習中,將會把Zeebe與Docker結合起來使用,不僅可以實現部署工作流程,建立工作流例項並執行,還可以通過operate+Elasticsearch讓我們可以在瀏覽器上更加直觀地看到工作流例項的執行的過程。

  首先,先來簡單瞭解一下以下的幾個元件:

  1. Zeebe Modeler:一個桌面建模工具,在將其部署到Zeebe之前,我們將使用它來建立和配置工作流。

  2. Zeebe發行版:Zeebe發行版包含工作流引擎,我們將在其中部署工作流模型。該引擎還負責管理活動工作流程例項的狀態。發行版中包括Zeebe CLI,我們將在整個教程中使用它。請使用Zeebe 0.20.0。

  3. Camunda Operate:一種操作工具,用於監控Zeebe中的實時工作流例項並進行故障排除。Operate當前可免費且不受限制地用於非生產用途

  4. Elasticsearch 6.8.0:一個開放原始碼的分散式資料儲存,可以連線到Zeebe以儲存工作流資料以進行審計,視覺化,分析等。CamundaOperate使用Elasticsearch作為其基礎資料儲存,這就是為什麼您需要下載Elasticsearch才能完成本教程。Operate和Zeebe與Elasticsearch 6.8.0相容。

但是,我們使用Docker執行的話並不需要下載這幾個元件,只需要使用https://github.com/zeebe-io/zeebe-docker-compose

儲存庫中的docker-compose.yml配置檔案。

  好的,簡單地瞭解之後,就開始在虛擬機器上實踐吧!

一、安裝好Docker環境

這裡就不再重複安裝的過程,直接檢視一下Docker的版本資訊。

二、將zeebe-docker-compose儲存庫克隆到本地計算機

git clone https://github.com/zeebe-io/zeebe-docker-compose

三、apt安裝docker-compose

sudo apt-get install docker-compose

  安裝好之後,可以檢視一下docker-compose的版本資訊

docker-compose version

補充:

docker的版本過低(<5:0)會導致安裝失敗!

四、移動到zeebe-docker-compose/operate目錄下(與docker-compose.yml配置檔案同級目錄),並建立容器

cd ../zeebe-docker-compose/operate
docker-compose up -d #建立守護式容器

執行上述的命令後,docker會拉取配置檔案中指定的映象,並建立容器,輸出資訊如下圖所示:

補充報錯資訊:

1、我剛開始docker-compose使用的是1.25.5版本,執行docker-compose up -d命令是會報錯,報錯資訊如下:

配置檔案是存在是的,但是還是報錯了,沒搞明白,然後再另一個虛擬機器上換成1.17.1版本之後就沒有這個問題了,還不確定是不是版本問題導致的。

2、拉取映象超時

多執行幾次這個命令,就可以了。如果沒有配置/etc/docker/daemon.json,則需要配置一下加速映象。參考https://www.cnblogs.com/zrs123/p/14073507.html

好了,這時候就可以檢視一下容器是否已經建立完成:

可以看到容器已經成功建立並執行!

若想停止容器在後臺執行,則可以在這個目錄下執行以下命令:

docker-compose down

  如果您還想清除永續性資料,請改用以下命令:

docker-compose down -v

  

五、在瀏覽器使用operate

地址輸入虛擬機器的IP地址和operate對映的埠號(8080),會出現登入介面,使用者名稱/密碼(demo/demo),如下圖如所示:

可以看到此時還沒有部署工作流程。

六、部署工作流程

開啟另一個終端,檢視zeebe代理的的狀態

./bin/zbctl --insecure status

  

部署官方提供的order-process.bpmn工作流程

./bin/zbctl --insecure deploy order-process.bpmn

  這時候,到瀏覽器上看一下Operate使用者介面(忘記截圖了):

應該會出現如下的工作流程:

七、建立工作流例項

部署工作流後,我們可以建立它的新例項。工作流的每個例項都是工作流的單個執行。要建立一個新例項,我們必須從BPMN檔案中指定流程ID

./bin/zbctl --insecure create instance order-process --variables '{"orderId": 1234}'

檢視一下operate介面,發現工作流程已經開始,開始等待第一步collectmoney

八、完成工作流例項

./bin/zbctl --insecure create worker payment-service --handler cat &

  檢視operate使用者介面,第一步完成

./bin/zbctl --insecure create worker inventory-service --handler cat &

  再檢視一下operate使用者介面,第二步完成

./bin/zbctl --insecure create worker shipment-service --handler cat &

  檢視operate使用者介面,第三步完成,工作流結束。

到此,就大功告成了!!!呼!長舒一口氣!

參考:https://github.com/zeebe-io/zeebe-docker-compose