Camunda8流程引擎私有化安装部署快速入门

news2024/11/15 7:19:57

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/465570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux文件操作基础及基本I/O函数使用

文章目录 前言一、基础命令简单讲解二、文件描述符三、open、read、write函数讲解1.open函数2.read函数3.write函数 四、使用open、read、write操作标准输入输出总结 前言 Linux是一个基于文件系统的操作系统&#xff0c;文件操作是其中一项最基本的任务之一。通过文件操作&am…

什么!appium安装不上???快来试试这种方法吧!——appium的手动安装步骤教程

前言 相信你不少软件测试行业小伙伴应该在用npm安装appuim或者是cpm安装appuim途中也碰到下面一些报错吧&#xff0c;接下来小陈教你改为手动安装appium吧。 一、手动下载appium安装包 appuim手动安装包下载链接&#xff1a; appium / Appium.app / Downloads — Bitbucket &a…

《Netty》从零开始学netty源码(四十四)之PoolChunk释放内存

free 当PoolChunk需要释放内存空间时可调用free方法&#xff0c;具体的源码过程如下&#xff1a; 在这个过程中最重要的是第三步的collapseRuns方法&#xff0c;当释放了空间以后要更新runsAvail和runAvailsMap的信息&#xff0c;如果handle对应的内存空间的上边界以及下边界是…

什么是AMS?什么是WMS?

AMS和WMS AMS ActivityManagerService是Android系统中一个特别重要的系统服务&#xff0c;也是上层APP打交道最多的系统服务之一&#xff08;几乎所有的APP应用都需要与AMS打交道&#xff09;。 AMS与操作系统中的进程管理和调度模块很像&#xff0c;在Android系统中非常重要…

从“恰当”的项目管理工具中,了解自己的缺点

项目管理工具是为了帮助管理者&#xff0c;但管理者需要了解自己在特定情况下的“缺点”&#xff0c;才能从“恰当”的工具中获得“恰当”的帮助。如果你不知道在某个特定项目中自己&#xff08;作为项目经理&#xff09;的缺点&#xff0c;也不知道自己需要利用哪些好用的项目…

【Python_Opencv图像处理框架】边缘检测、轮廓检测、图像金字塔

写在前面 本篇文章是opencv学习的第四篇文章&#xff0c;主要讲解了边缘及轮廓检测的主要操作&#xff0c;并对两种图像金字塔简单的介绍了一下&#xff0c;作为初学者&#xff0c;我尽己所能&#xff0c;但仍会存在疏漏的地方&#xff0c;希望各位看官不吝指正&#x1f60d; …

Kafka3.0.0版本——生产者数据有序与乱序

目录 一、生产经验数据有序二、生产经验数据乱序2.1、kafka1.x版本之前保证数据单分区有序的条件2.2、kafka1.x版本及以后保证数据单分区有序的条件2.3、kafka1.x版本及以后开启幂等性数据单分区有序的原因 一、生产经验数据有序 单分区内&#xff0c;数据有序。如下图partion…

React之购物车+动态获取参数+Hooks+Redux

1、redux-logger中间件 1️⃣&#xff1a;安装redux-logger依赖包 yarn add redux-logger 2️⃣&#xff1a;在store的配置文件index中配置 import {legacy_createStore as applyMiddleware,applyMiddleware} from reduximport counterReducer from ./counterReducerimport {c…

【论文写作】-我的第一篇论文形成记(投稿过程、课题来源、python与数学学习、实验设计、论文思路建立与写作、回复审稿人)

我的第一篇论文形成记 投稿过程背景记录课题来源-本科毕业设计python及数学学习实验设计调参阶段实验阶段 论文思路建立论文写作回复审稿人总结 投稿过程 2022年12月28日 投AIChE 2023年01月05日 AlChE编辑认为方向不太符合期刊定位&#xff0c;建议投其他期刊 2023年01月06日…

SpringCloud_服务调用OpenFeign和断路器Resilience4J

文章目录 一、负载均衡概论1、服务器负载均衡2、客户端负载均衡3、客户端负载均衡策略(SpringCloudRibbon)4、客户端负载均衡策略(SpringCloudLoadBalancer) 二、SpringCloudOpenFeign服务调用1、OpenFeign服务调用的使用2、OpenFeign服务调用的日志增强3、OpenFeign服务调用超…

Vector - CAPL - 检查DUT发出与dbc定义一致

目录 ChkCreate_UndefinedMessageReceived 代码示例 有回调函数 无回调函数 Trace报文 报告显示 ChkCreate_UndefinedMessage

一维离散小波变换原理和代码实现

基本原理&#xff1a; 离散小波变换&#xff1a;对连续小波变换的尺度因子和时移动因子采用不同的离散条件进行离散&#xff0c;得到Discrete Wavelet Transform(DWT)。降低计算量的同时&#xff0c;保持连续小波变换的光滑性、紧支性、对称性。 离散小波函数&#xff1a; ψ…

脚本函数基础

shell脚本编程系列 函数是一个脚本代码块&#xff0c;可以为其命名并在脚本中的任何位置重用它。每当需要在脚本中使用该代码块时&#xff0c;直接写函数名即可。称作调用函数。 创建函数 方式1&#xff1a; function name {commands }name定义了该函数的唯一名称&#xff0…

私有部署、重构企业软件,第四范式发布大模型“式说”

大模型领域再添重要一员&#xff01; 4月26日&#xff0c;第四范式首次向公众展示其大模型产品「式说3.0」&#xff0c;并首次提出AIGS战略&#xff08;AI-Generated Software&#xff09;&#xff1a;以生成式AI重构企业软件。式说将定位为基于多模态大模型的新型开发平台&…

ImageJ 用户手册——第五部分(菜单命令Process)

这里写目录标题 ImageJ 用户手册——第五部分29. Process29.1 Smooth29.2 Sharpen29.3 Find Edges29.4 Find Maxima29.5 Enhance Contrast29.6 Noise29.6.1 Add Noise29.6.2 Add Specified Noise29.6.3 Salt and Pepper29.6.4 Despeckle29.6.5 Remove Outliers29.6.6 Remove Na…

Shell编程条件语句 if case (愿此行终抵群星)

一、Shell条件语句 Shell环境根据命令执行后的返回状态值&#xff08;$?&#xff09;来判断是否执行成功&#xff0c;当返回值为0(真 true)时表示成功&#xff0c;返回值为非0值&#xff08;假 false)时表示失败或异常。 test 命令 更多操作可使用 man test 查看 1.条件表达式…

深度学习论文分享(二)Data-driven Feature Tracking for Event Cameras

深度学习论文分享&#xff08;二&#xff09;Data-driven Feature Tracking for Event Cameras&#xff08;CVPR2023&#xff09; 前言Abstract1. Introduction2. Related Work3. Method3.1. Feature Network3.2. Frame Attention Module3.3. Supervision 4. Experiments5. Con…

焕新时刻,移动云品牌升级燃动十一城

4月25日&#xff0c;在2023移动云大会上&#xff0c;移动云品牌形象全方位焕新&#xff0c;启用新品牌LOGO和品牌标语&#xff0c;在政府领导、院士专家、行业大咖等3000多位参会嘉宾见证下&#xff0c;吹响品牌进阶新号角。 24日晚&#xff0c;移动云品牌焕新亮灯仪式率先在苏…

C语言入门篇——指针篇

目录 1、指针 1.1内存地址 1.2基地址 1.3指针变量 2、指针类型 2.1指针-整数 2.2指针的解引用 3、特殊指针 3.1野指针 3.2空指针 4、指针运算 4.1指针-指针 4.2指针的关系运算 5、指针和数组 6、二级指针 7、指针数组 1、指针 1.1内存地址 内存是电脑上特别重…

剑指offer 26树的子结构

文章目录 题目详情分析判断A中有出现和B相同的结构和节点值递归主体&#xff0c;解决问题 完整代码总结 题目详情 树的子结构 输入两棵二叉树A和B&#xff0c;判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构&#xff0c; 即 A中有出现和B相同的结构和节…