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界面,发现工作流程已经开始,开始等待第一步collect money

八、完成工作流实例

./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

原文地址:https://www.cnblogs.com/zrs123/p/14180793.html