zeebe快速入門

下載麻煩可以下我這個整理的整包:
鏈接:https://pan.baidu.com/s/1Vgbyxt1PO3Kex1r47pKPlA
提取碼:9r1a

下載zeebe

zeebe發佈頁面,選擇zeebe-distribution-X.Y.Z.tar.gz下載

下載zeebe-modeler

zeebe-modeler發佈頁面,選擇zeebe-modeler-x.x.x-win-x64.zip

下載camunda-operate

zeebe發佈頁面,選擇camunda-operate-X.Y.Z.tar.gz

下載elasticsearch 6.8.1

ES6.8.1下載頁面

啓動es

[es@localhost es]$ cd /usr/local/es/
[es@localhost es]$ ./bin/elasticsearch

啓動zeebe borker

放開這三行配置的註解,用來打開elasticsearch exporter:

vi /usr/local/zeebe/conf/zeebe.cfg.toml
... ...
[[exporters]]
id = "elasticsearch"
className = "io.zeebe.exporter.ElasticsearchExporter"
... ...

啓動zeebe borker:

cd /usr/local/zeebe
./bin/broker

啓動operate

cd /usr/local/operate/
./bin/operate

訪問http://192.168.153.138:8080,默認賬號密碼:demo/demo

客戶端使用

zeebe示例源碼:https://gitee.com/tanwubo/zeebe-quickstart-demo
修改zeebe borker的連接信息:

	@BeforeEach
	public void initZeebeClient(){
		client = ZeebeClient.newClientBuilder()
				.brokerContactPoint("192.168.153.138:26500")
				.usePlaintext()
				.build();
		System.out.println("connected...");
	}

依次執行:

  1. deployOrderProcessTest
  2. createOrderPayWorkerTest
  3. createNoInsuranceWorkerTest
  4. createHaveInsuranceWorkerTest
  5. createInstance1Test

執行到這裏,可以去operate查看一下:
在這裏插入圖片描述
工作流阻塞在already paid處,等待pay-received類型的Message消息
繼續執行第6步createPayReceivedMessageTest
在這裏插入圖片描述
其他的組件使用示例都可以在項目中找到。

service task

圖標:在這裏插入圖片描述
最常見的組件了,可以理解爲一個任務,關鍵的屬性是type,一個完整的service task的屬性如下:
在這裏插入圖片描述
name:能夠見名知意即可,描述任務目的
type:全局唯一,定義任務類型,以次做爲憑證,分發任務給相關的某一個工作人員實例。

receive task

圖標:在這裏插入圖片描述
工作流實例在執行到receive task時會阻塞在這,直到接受到對應的message實例,屬性列表如下:
在這裏插入圖片描述
message name:全局唯一,指定任務等待接受的message名稱
subscription correlation key:基本可以理解爲工作流實例的主鍵,作用就是通過這個屬性值,匹配到唯一的一個工作流實例

exclusive gateway

圖標:在這裏插入圖片描述
排他網關類似於JAVA中的多重if else結構,所以本身只有一個name屬性,關鍵在於連接線的condition expression屬性:
在這裏插入圖片描述
condition expression:值可以爲空或者是一個布爾表達式,爲空表示默認執行流程,布爾表達式中可以使用工作流實例所攜帶的參數,結果爲true時執行這條流程,執行任意一條流程,其他的表達式無需再執行。

parallel gateway

圖標:在這裏插入圖片描述
並行網關會同時執行與網關連線的所有任務,語義簡單明瞭,沒有特殊的屬性,只要注意使用場景即可。
並行網關可以放在倆個位置,如下圖:
在這裏插入圖片描述
放在多個任務流程前表示後面連接的任務並行執行,放在多個任務流程後會等待連接的任務全部執行完成才繼續後面的流程。

event-based gateway

圖標:在這裏插入圖片描述
事件網關流程後只能連接timer even或者message even,等待某一個事件觸發,則僅僅執行該事件的後續流程。
使用示例如下圖:
在這裏插入圖片描述

none event

可用於無其他含義的開始或結束。

message event

圖標:在這裏插入圖片描述
與receive task類似,也是會阻塞在message event處,等待對應的message,這是一種使用方法:
在這裏插入圖片描述
還有一種用法叫邊界事件,可以給task添加消息邊界事件,這樣可以實現在任務執行時,通過message event來中斷任務,執行另一條流程,例如:
在這裏插入圖片描述

timer event

timer event可以用於工作流的開始,表示每各一個週期重複做某件事情,像這樣:
在這裏插入圖片描述
也可以放在工作流中間,表示等待一段時間繼續往後執行,像這樣:
在這裏插入圖片描述
還可以用於邊界事件,表示任務執行超時,取消任務,執行另一條超時流程:
在這裏插入圖片描述

error event

error event通常只能用於任務的邊界事件,表示任務出現錯誤時的執行流程:
在這裏插入圖片描述
error event的核心屬性是error code,只有任務拋出的error code匹配的上才能捕獲得到:
在這裏插入圖片描述

embedded subprocess

embedded subprocess是以嵌入的形式存在在主工作流當中:
在這裏插入圖片描述
可以理解爲將一些任務包裹了起來,包裹之後的好處在於可以對整個子流程使用邊界事件。

call activity

call activity是一種將其他工作流引入當前工作流的組件:
在這裏插入圖片描述
call activity的核心屬性是process id:
在這裏插入圖片描述
相較於embedded subprocess的好處在於可重用,例如此處other_process工作流可在多個不同的工作流模型中使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章