美文网首页
记ActivitiCloud的一次体验

记ActivitiCloud的一次体验

作者: Martain | 来源:发表于2021-01-30 11:57 被阅读0次

前言

最近学习了一段时间工作流Activiti开源框架,在Activiti6和Activiti7都体验了一下,因为Activiti6.x是一个比较稳定的版本。而Activiti7.x虽然很久就出了,但是一直在更新,目前小版本问题和不稳定性还是比较多,但是作为比较喜欢尝鲜的我来说,我还是在公司的项目中使用的是Activiti 7.x,由于需求上不需要使用SpringSecurity,所以也没有使用Activiti 7 版本的那两个新的API,但是在学习的过程使用了那两个新的API,还是非常的简便好用的。目前公司的工作流需求已经完成了,我也是回过头来再更加深入连接下Activiti。

Activiti7 是分成了两部分:Activiti CoreActiviti Cloud。之前一直使用的也是Activiti Core。所以这次来学习使用一下Activiti Cloud。

因为Activiti是国外的网站,而且官网的文档也没有个比较稳定的版本,打卡网页也比较慢。刚开始我在网上下载了一个PDF的文档,按照文档来部署发现许多地方都已经变化了,导致进行到一半就无法继续下去了,这也足矣说明Activiti7的更新之快和年度跨越之久。最后我还是按照官网最新的文档来进行部署了一下,很多地方确实没有做深入的理解只能简单的翻译,不过最后我还是搭建成功了。

职责划分

Activiti Cloud 将系统分成了多个组成,也是为了多个服务:

这些工作的主要目的其实就是为了上云,减少对Activiti依赖的耦合,需要使用Activiti的系统只需要通过调用http接口的方式来实现工作流能力的整合,将工作流业务托管上云。

职责划分表

开始部署

Activiti Cloud 是一组云本机组件,从零开始设计到在分布式环境中工作。所以要完成整个部署需要部署多个组件。

Activiti 云包括 5 个基础构建基块:

  • Activiti 云运行时捆绑包
  • 活动云查询
  • 活动云审计
  • Activiti 云连接器
  • Activiti 云通知服务 (GraphQL)
Activiti 云应用程序完整示例图表

Activiti Cloud 推荐使用k8s集群来部署该项目,所以他推荐了两个选项:使用亚马逊云和使用谷歌云;因为只是作为学习尝试,我们也可以使用docker在自己本机上部署,我也是使用的这种方式。

官网Guide

硬件配置

需要为Docker 虚拟机分配至少4个CPU内核和8 Gb RAM

软件条件

下载示例源码

git clone https://github.com/Activiti/activiti-cloud-examples
cd activiti-cloud-examples/docker-compose
│  Activiti v7 REST API.postman_collection.json # postman api接口文件
├─docker                                 # docker方式,好像官网没有这方面使用说明了
│  │  enabled_plugins
│  │  frontend-docker-compose.yml        # 前端UI模块
│  │  infrastructure-docker-compose.yml  # 基础模块
│  │  modelling-docker-compose.yml       # 流程图绘制管理模块
│  │
│  └─apps
│          apps.json
│          default-app.json
└─docker-compose                        # docker-compose 方式
        .env                            # 配置文件
        activiti-realm.json             # realm 配置文件
        docker-compose.yml              
        Dockerfile
        enabled_plugins
        Makefile
        nginx.conf                      
        README.md

使用docker启动服务

配置hosts文件:127.0.0.1 activiti-cloud-sso-idm

cd docker
docker-compose -f infrastructure-docker-compose.yml up -d # 启动基础模块
docker-compose -f modelling-docker-compose.yml up -d # 启动流程图模块
docker-compose -f frontend-docker-compose.yml up -d
➜ docker-compose -f infrastructure-docker-compose.yml up -d
Creating network "docker_default" with the default driver
Creating docker_activiti-cloud-registry_1 ... done
Creating docker_rabbitmq_1                ... done
Creating docker_activiti-keycloak_1       ... done
Creating docker_activiti-cloud-gateway_1  ... done
➜ docker-compose -f modelling-docker-compose.yml  up -d    
WARNING: Found orphan containers (docker_activiti-keycloak_1, docker_activiti-cloud-registry_1, docker_activiti-cloud-gateway_1, docker_rabbitmq_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating docker_modeling-app_1 ... done
➜ 
docker 容器运行了

访问KeyCloak

访问 http://activiti-cloud-sso-idm:8180/auth/ 可以打开keycloak

image-20210130111428915
  • 点击 Administration Console 打开控制台,输入admin/admin 登录
keycloak登录页面 KeyCloak控制台 用户管理

这是Activiti Cloud 的鉴权中心,这里主要管理了用户体系和用户权限以及应用。

访问Modeling

访问8080端口。

好吧,不知道为什么失败了....

image-20210130115154416

使用docker-compose启动服务

修改配置文件

activiti-cloud-examples/docker-compose/.env 文件

DOCKER_IP=192.168.1.88 (这里修改成你电脑的IP地址,不要使用127.0.0.1和localhost)
VERSION=7.1.0-M11
KEYCLOAK_REALM=activiti
KEYCLOAK_RESOURCE=activiti

启动流程图编辑器 Modeling

➜ make modeler
make nginx/up
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d nginx
Starting nginx ... done
make[1]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make keycloak/up
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d keycloak
nginx is up-to-date
Starting keycloak ... done
make[1]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
ECHO 处于关闭状态。
ECHO 处于关闭状态。
Keycloak path  192.168.1.33/auth
ECHO 处于关闭状态。
make activiti-cloud-modeling activiti-cloud-modeling-backend
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make activiti-cloud-modeling/up
make[2]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d activiti-cloud-modeling
Starting activiti-cloud-modeling ... done
make[2]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make activiti-cloud-modeling-backend/up
make[2]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d activiti-cloud-modeling-backend
Starting activiti-cloud-modeling-backend ... done
make[2]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make[1]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
ECHO 处于关闭状态。
ECHO 处于关闭状态。
Modeling app: http://192.168.1.33/modeling
ECHO 处于关闭状态。
docker 容器启动情况

访问keycloak: http://$DOCKER_IP//auth/ 默认账号是 admin/admin

访问modeling: http://$DOCKER_IP/modeling。默认账号:modeler/password

单点登录页面 image-20210130113831757

启动应用

➜ make application
make nginx/up
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d nginx
nginx is up-to-date
make[1]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make keycloak/up
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d keycloak
nginx is up-to-date
keycloak is up-to-date
make[1]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
ECHO 处于关闭状态。
ECHO 处于关闭状态。
Keycloak path  192.168.1.33/auth
ECHO 处于关闭状态。
make rabbitmq/up
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d rabbitmq
rabbitmq is up-to-date
make[1]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make example-runtime-bundle example-cloud-connector activiti-cloud-query activiti-cloud-audit activiti-cloud-notifications-graphql 
make[1]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make example-runtime-bundle/up
make[2]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d example-runtime-bundle
Starting docker-compose_activiti-postgres_1 ... 
rabbitmq is up-to-date
nginx is up-to-date   
Starting docker-compose_activiti-postgres_1 ... done
Starting example-runtime-bundle             ... done
make[2]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make example-cloud-connector/up
make[2]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d example-cloud-connector
rabbitmq is up-to-date
nginx is up-to-date
keycloak is up-to-date
Starting example-cloud-connector ... done
make[2]: Leaving directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
make activiti-cloud-query/up
make[2]: Entering directory 'D:/project/demo/activiti-cloud-examples/docker-compose'
docker-compose up -d activiti-cloud-query
nginx is up-to-date
docker-compose_activiti-postgres_1 is up-to-date
rabbitmq is up-to-date
keycloak is up-to-date
Starting activiti-cloud-query ... done
➜ 

启动之后,可以将 activiti-cloud-examples / Activiti v7 REST API.postman_collection.json导入到Postman

配置Postman

image-20210129112511283
添加全局变量
变量名 变量值 变量说明
gateway http://192.168.1.33 网关地址,即你自己电脑的IP(DOCKER_IP)
idm http://192.168.1.33 鉴权地址,identity Manager地址
realm activiti .env文件中填写的 KEYCLOAK_REALM
开始测试

完成上面的步骤之后,就可以先调用 keycloak中的接口获取token(访问凭证)。然后就可以调用其他接口了。

总结

总得来说就是体验下ActivitiCloud, 目前相关的文档记录的比较少,可能是国内使用的比较少或者是还不够稳定吧。记录的原因其实也是自己在部署示例的过程中遇到了很多坑,包括docker启动服务的时候modeling不能用带带。总得来说,虽然只是浅尝辄止,但是可能大致了解了Activiti7到底是想干嘛的吧。

相关文章

  • 记ActivitiCloud的一次体验

    前言 最近学习了一段时间工作流Activiti开源框架,在Activiti6和Activiti7都体验了一下,因为...

  • 『新心成长记~顾家瑶』第17天--《如此幸运体验一次前一天晚上模

    『新心成长记~顾家瑶』第17天--《如此幸运体验一次前一天晚上模块作业没有写,补上的体验》 记录者:施鸣 体验者:...

  • 记一次感冒的体验

    记不清第几次来大会堂排练了,只是这一次格外难受。 我大概是病了。 也不知道是什么时候病的,也不知道是因为什么而生病...

  • 记一次陶艺体验

    只想尽早记录下来吧。 盼星星盼月亮地盼了好几个月,总算是抽出一天来相聚了。 最近脑子里充斥着各种体验生活吧,于是和...

  • 记一次情绪体验

    终于又到周末! 周五晚饭时,儿说了他的周末计划。饭后完成数学、英语及讲题任务。周六上午社团课下午数学课,晚上完成全...

  • 记一次压花体验

    按照惯例,学校的每个宿舍区一般都会在周末晚上举办社区有约的活动。本次是社区有约第49期,主题为大神教你学压花...

  • 记一次学画体验

    最近想重拾素描基础,在网上找好了几家画室,拖到今天才终于去实地参观。先说一下背景,我之前曾经在广州学过四个还是八个...

  • 记一次麻辣体验

    每逢周末,不出意外都得整出些幺蛾子。作为资深吃货的我,周末无疑是外出觅食的好时机。 按着某公众号推荐的店名和地址,...

  • 记一次Hackathon体验

    机缘巧合

  • 记||一次体验课

    今天去学校上了一堂课,教学内容为: Unit 8. Is there a post office near her...

网友评论

      本文标题:记ActivitiCloud的一次体验

      本文链接:https://www.haomeiwen.com/subject/ldghtltx.html