zeebe学习(四)——docker+docker-compose(存储库)
在zeebe学习(一)中,我们在Linux虚拟机上安装了zeebe并部署了官方提供的工作流程,最后创建了工作流实例并运行。
但在本篇的学习中,将会把Zeebe与Docker结合起来使用,不仅可以实现部署工作流程,创建工作流实例并运行,还可以通过operate+ Elasticsearch让我们可以在浏览器上更加直观地看到工作流实例的运行的过程。
首先,先来简单了解一下以下的几个组件:
-
Zeebe Modeler:一个桌面建模工具,在将其部署到Zeebe之前,我们将使用它来创建和配置工作流。
-
Zeebe发行版:Zeebe发行版包含工作流引擎,我们将在其中部署工作流模型。该引擎还负责管理活动工作流程实例的状态。发行版中包括Zeebe CLI,我们将在整个教程中使用它。请使用Zeebe 0.20.0。
-
Camunda Operate:一种操作工具,用于监控Zeebe中的实时工作流实例并进行故障排除。Operate当前可免费且不受限制地用于非生产用途。
-
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存储库克隆到本地计算机
1 | git clone https: //github .com /zeebe-io/zeebe-docker-compose |
三、apt安装docker-compose
1 | sudo apt-get install docker-compose |
安装好之后,可以查看一下docker-compose的版本信息
1 | docker-compose version |
补充:
docker的版本过低(<5:0)会导致安装失败!
四、移动到zeebe-docker-compose/operate目录下(与docker-compose.yml配置文件同级目录),并创建容器
1 | cd .. /zeebe-docker-compose/operate |
1 | 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
好了,这时候就可以查看一下容器是否已经创建完成:
可以看到容器已经成功创建并运行!
若想停止容器在后台运行,则可以在这个目录下运行以下命令:
1 | docker-compose down |
如果您还想清除持久性数据,请改用以下命令:
1 | docker-compose down - v |
五、在浏览器使用operate
地址输入虚拟机的IP地址和operate映射的端口号(8080),会出现登录界面,用户名/密码(demo/demo),如下图如所示:
可以看到此时还没有部署工作流程。
六、部署工作流程
打开另一个终端,查看zeebe代理的的状态
1 | . /bin/zbctl --insecure status |
部署官方提供的order-process.bpmn工作流程
1 | . /bin/zbctl --insecure deploy order-process.bpmn |
这时候,到浏览器上看一下Operate用户界面(忘记截图了):
应该会出现如下的工作流程:
七、创建工作流实例
部署工作流后,我们可以创建它的新实例。工作流的每个实例都是工作流的单个执行。要创建一个新实例,我们必须从BPMN文件中指定流程ID
1 | . /bin/zbctl --insecure create instance order-process --variables '{"orderId": 1234}' |
查看一下operate界面,发现工作流程已经开始,开始等待第一步collect money
八、完成工作流实例
1 | . /bin/zbctl --insecure create worker payment-service --handler cat & |
查看operate用户界面,第一步完成
1 | . /bin/zbctl --insecure create worker inventory-service --handler cat & |
再查看一下operate用户界面,第二步完成
1 | . /bin/zbctl --insecure create worker shipment-service --handler cat & |
查看operate用户界面,第三步完成,工作流结束。
到此,就大功告成了!!!呼!长舒一口气!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现