Camunda8是基于标准云原生架构设计开发的,所以官方优先推荐基于Kubernetes和docker的方式安装部署Camunda8,考虑到大部分开发者不一定具备Kubernetes环境和云原生相关知识,所以本文介绍如何在一台windows机器下手动安装运行Camunda8的方式,方便开发者快速了解Camunda8的组件和新特性,对Camunda8的功能有感性认识。
Camunda8架构图
整个操作步骤为:下载Camunda8相关的组件—》安装JDK—》安装elasticsearch—》安装zeebe—》安装operate—》安装tasklist—》安装流程设计器—》设计流程—》发布流程—》处理待办任务。
一、部署环境说明
1、部署环境介绍
操作系统:官方推荐使用Linux,本人使用Window11 64位,内存16G;
Jdk版本:要求OpenJDK 8+ 以上版本,本人安装的是jdk20版本;
Camunda版本:Camunda Platform 8.1.10;
部署Camunda8的步骤为:先安装OpenJDK 8+,再安装Elasticsearch,再依次部署zeebe、operate、tasklist等服务。安装JDK是启动部署启动其它服务组件的前提条件。
安装完成后,Camunda8共有5个组件,windows目录结构如下:
2、OpenJDK安装
如果您已经安装了OpenJDK 8+,本步骤可以跳过。
Jdk20下载地址:https://www.oracle.com/java/technologies/downloads/#jdk20-windows
下载完成后,安装Jdk,查看是否安装成功
二、elasticsearch安装部署
1、下载elasticsearch
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-2
2、启动elasticsearch服务
将下载的Elasticsearch解压到C:\java\camunda8\elasticsearch-7.16.2,进入bin目录,点击elasticsearch.bat启动es服务,效果如下:
3、检查elasticsearch服务
检查elasticsearch是否启动成功,浏览器输入:http://localhost:9200/?pretty
三、 zeebe安装部署
1、下载zeebe部署包
下载zeebe, https://github.com/camunda/camunda-platform/releases
私有化部署camunda8,需要camunda-zeebe-8.1.10.zip、camunda-operate-8.1.10.zip、camunda-tasklist-8.1.10.zip、camunda-identity-8.1.10.zip,可以在这里一并下载这些组件。
2、配置zeebe-elasticsearch-exporter
将下载的zeebe解压到C:\java\camunda8\camunda-zeebe-8.1.10,进入config目录
打开 application.yaml配置文件,在文件中增加如下配置
zeebe:
broker:
exporters:
elasticsearch:
className: io.camunda.zeebe.exporter.ElasticsearchExporter
为什么需要配置elasticsearch exporter到出器?
Zeebe本身不存储与您的工作流实例相关的历史数据。如果要保留这些数据以供审核或析,则需要导出到另一个存储系统。Zeebe提供了了一个现成的ElasticSearch导出器,在安装目录的lib\zeebe-elasticsearch-exporter-8.1.10.jar。ElasticSearch也是Camunda Operate和Camunda Tasklist的存储数据的工具,因此要运行Operate和Tasklist,需要在Zeebe中启用ElasticSearch导出器并运行ElasticSearch的一个实例。
在Zeebe配置exporter特别关键,在camunda8的官方文档中没有明确写明,大家本地部署测试很容易不成功,如果没有配置elasticsearch exporter,那么后面的operate和tasklist界面中看不到流程实例数据。
3、启动zeebe服务
进入bin目录,点击broker.bat,启动zeebe服务,效果如下:
4、测试zeebe
您可以通过询问zbtcl的集群拓扑来测试Zeebe网关,zbctl状态应该产生这样的输出:
四、 Operate安装部署
1、启动operate服务
将下载的operate解压到C:\java\camunda8\camunda-operate-8.1.10,进入bin目录,点击operate.bat,启动operate服务,效果如下:
2、进入operate控制台
启动完成后,访问:http://localhost:8080/,输入用户名demo,密码demo,进入operate管理控制台,当前还没有发布任何流程,如下效果:
注意:camunda8是微服务架构,我们模拟的是分布式部署,operate组件需要连接elasticsearch数据库和zeebe网关,具体配置在config/application.yml文件中,默认配置如下:
# Operate configuration file
camunda.operate:
# Set operate username and password.
# If user with <username> does not exists it will be created.
# Default: demo/demo
#username:
#password:
# ELS instance to store Operate data
elasticsearch:
# Cluster name
clusterName: elasticsearch
# URL
url: http://localhost:9200
# Zeebe instance
zeebe:
# Gateway address
gatewayAddress: localhost:26500
# ELS instance to export Zeebe data to
zeebeElasticsearch:
# Cluster name
clusterName: elasticsearch
# URL
url: http://localhost:9200
# Index prefix, configured in Zeebe Elasticsearch exporter
prefix: zeebe-record
更多配置参数见官方文档:https://docs.camunda.io/docs/self-managed/operate-deployment/operate-configuration/
五、Tasklist安装部署
1、修改tasklist配置文件
Tasklist默认端口为8080,直接启动跟operate服务端口冲突,这里需要先修改该服务的端口,这样才能在一台机器上启动。
在config/ application.yml文件中,增加server.port端口配置,如下:
更多配置参数见官方文档:https://docs.camunda.io/docs/self-managed/tasklist-deployment/tasklist-configuration/
2、启动tasklist服务
将下载的tasklist解压到C:\java\camunda8\camunda-tasklist-8.1.10,进入bin目录,点击tasklist.bat,启动tasklist服务,效果如下:
3、进入tasklist控制台
启动完成后,访问:http://localhost:8090/,输入用户名demo,密码demo,进入tasklist管理控制台,当前还没有发布流程任务信息,如下效果:
六、流程设计器安装部署
1、下载Desktop Modeler
Camunda8版本提供了Desktop Modeler 和Web Modeler两个版本的流程设计器,其中,Desktop Modeler是开源版本,Web Modeler是商业版本,目前官方只提供了docker安装包。我们使用开源版本的流程设计器Desktop Modeler。
下载camunda桌面版流程设计器Desktop Modeler, https://camunda.com/download/modeler/
2、启动Desktop Modeler
将下载的Desktop Modeler解压到C:\java\camunda8\camunda-modeler-5.10.0,进入该目录,点击Camunda Modeler.exe启动流程设计器,效果如下:
启动流程设计器后的界面,该版本流程建模工具支持Camunda7和Camunda8两个版本,支持BPMN、DMN、Form等模型建模,我们选择Camunda Platform8的BPMN模型。
3、设计一个流程并发布
为了测试流程发布、流程启动和流程审批功能,简单设计了一个user task活动的审批流程,配置流程处理人为demo,该用户是camunda安装后默认的一个用户,方便后面通过界面进去处理审批流程。
流程设计完成后,点击设计器左下角的发布按钮,弹出如下界面:
注意发布时选择Self-Managed目标,即自己私有化部署的流程引擎集群,输入默认的zeebe网关地址,点击deploy即可完成流程发布。
也可以在设计器上直接启动流程:
此时再登录到operate控制台中,即可看到刚刚启动的流程实例:
点击实例标题进入流程实例中:
可以看到流程是启动状态,当前在申请user task节点上,此时,我们登录Tasklist工作台,看看有没有待办任务。
点击Complete Task按钮,完成待办任务处理,再回到operate界面,看到流程状态已经到了下一个活动节点了。
七、总结
camunda7流程引擎内核是基于activiti5发展而来的,本质是上流程虚拟机pvm。Camunda8流程引擎内核是Zeebe,Zeebe是为Camunda平台8提供动力的过程自动化引擎。camunda7和camunda8的流程引擎完全不同,所以说camunda7和camunda8是两个完全不同的流程平台。camunda8虽然也提供了私有化安装部署模式,但官方定位是SaaS化流程引擎,重点是支持在线开通租赁服务。另外camunda8相对于camunda7开说,它的开源组件较少,大部分组件需要单独授权购买。
关于camunda7和camunda8的对比分析,请参考:https://lowcode.blog.csdn.net/article/details/129764438
八、扩展知识:camunda8部署方式
官方推荐使用以自我管理的方式部署运行camunda8的几种方式:
1、 基于Helm/Kubernetes部署运行Camunda8
强烈建议在生产中使用Kubernetes运行Camunda Platform 8。除了库存Kubernetes,还正式支持各种提供商,如Red Hat OpenShift和Amazon EKS。此外,将Kubernete与Minikube或KIND一起使用,可以在开发人员机器上本地运行Camunda Platform 8。
2、 基于Docker部署运行Camunda8
可以运行所提供的组件的Docker镜像,也可以在生产中运行。为了您的方便,我们提供了Docker Compose配置,用于在开发人员机器上运行Camunda Platform 8。请注意,Docker Compose配置不是针对生产使用进行优化的,而是针对本地开发进行优化的。
3、 手动方式部署运行Camunda8
如果本地或虚拟机提供了受支持的Java虚拟机(JVM),则可以在其上运行Java应用程序。这允许您在虚拟机或裸机上运行Camunda,并提供了很大的灵活性。但是,您需要配置组件的详细信息,以便自己正确地进行交互。我们认为这是最后的手段。请注意,Zeebe的生产使用不支持Windows/Mac。
九、参考资料
https://docs.camunda.io/docs/self-managed/platform-deployment/manual/
https://docs.camunda.io/docs/self-managed/platform-deployment/overview/
http://marvelouscoding.xyz/archives/zeebe
http://www.yunchengxc.com