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工作流可在多个不同的工作流模型中使用。

发布了23 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_22606825/article/details/104608522