自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Camunda BPM架构

所以即使是相同的流程实例不同的执行过程,也可以运行在不同的节点上,不会出现不一致的状态,从而实现简单的集群支持。Camunda BPM的核心流程引擎是一个轻量级的模块,可以被Spring管理或者加入到自定义的编程模型中,并且支持线程模型。由应用程序控制流程引擎的启动和停止,并且可以根据需要运行多个流程引擎。将流程引擎部署在运行时容器中(如tomcat),流程引擎作为容器服务提供,可以被容器中的所有应用程序共享。为了提供扩展和保证服务可靠性,流程引擎可以作为集群,部署在多个节点上,连接到一个共享的数据库。

2024-06-01 10:51:39 516

原创 Camunda BPM主要组件

显然,任务管理和驾驶舱是Camunda提供的简单工具,UI简单,甚至可以说毫无美感,对大型应用或者系统来说,并不满足需求,只适合开发人员进行流程设计时候的使用,或者管理员来使用,使流程能够正常流转,处理异常。可以执行业务驱动的决策表,预制于工作流引擎当中,与工作流引擎一样,可以通过REST API进行调用或者Java应用嵌入使用,支持DMN1.3规范。通过仪表盘呈现统计数据,报表结果,监控运行状态。管理员也是一个web应用,用来管理用户,群组和权限,可以对用户分组,对用户授权,并集成其他系统的用户。

2024-05-26 09:48:56 108

原创 BPMN2.0 事件 - 基本概念

结束事件是一个黑体的圆,标志一个事件或者流程的结束,当它发生在参与者的活动之后,通常标记流程结束,用户的业务活动结束,但只代表业务活动结束,并不代表业务活动达成用户的期待结果。从流程生命周期角度定义,事件可以分为开始,中间,结束三种类型,从事件的动作处理,触发方式角度定义,事件又分为捕获,抛出事件。站在触发方式的角度,捕获事件的发生需要动作或者状态的变化来触发,在这里这个动作和状态的变化定义为触发器,当触发器被触发或者激活的时候,捕获事件将发生,根据捕获事件的类型和定义,将影响流程的执行。

2024-05-01 09:19:23 66

原创 BPMN2.0 任务-任务监听器

较早之前,我们也引入了新的执行监听器类型,org.flowable.engine.impl.bpmn.listener.ScriptTaskListener。这个脚本任务监听器可以为一个任务监听器事件执行一段脚本代码。请注意委托类的实例在流程部署时创建(与Flowable中其它的委托类一样),这意味着该实例会在所有流程实例执行中共享。用于在特定的任务相关事件发生时,执行自定义的Java逻辑或表达式。(必填):触发任务监听器的任务事件类型。事件时,我们通常希望能看到任务的所有参数,包括办理人。

2024-04-21 21:19:27 127

原创 BPMN2.0 -条件序列流和默认序列流

当离开BPMN 2.0活动时,默认行为是计算其每个出口顺序流上的条件。在流程执行过程中访问一个元素之后,将继续执行素有的序列流,默认是并行的。只有当没有其他顺序流可以选择时,才会选择默认顺序流作为活动的出口顺序流。流程会忽略默认顺序流上的条件。下面的例子,通过典型的JavaBean的方式,使用getter引用流程变量的数据。时,选择该出口顺序流。都计算为false时,才会选择默认顺序流作为网关的出口顺序流。子元素的普通顺序流。定义,默认为唯一支持的表达式类型。活动的默认顺序流由该活动的。

2023-05-21 15:19:24 1269 1

原创 BPMN2.0 任务-执行监听器

较早之前,我们也引入了新的执行监听器类型,org.flowable.engine.impl.bpmn.listener.ScriptExecutionListener。这个脚本执行监听器可以为执行监听器事件执行一段脚本代码。执行监听器(execution listener)可以在流程执行中发生特定的事件时,执行外部Java代码或计算表达式。下面的代码片段展示了一个简单的示例流程,带有一个使用了字段注入的执行监听器。属性配置的执行监听器时,可以使用字段注入。启动事件的结束,和结束事件的启动。

2023-05-18 21:41:38 1048

原创 BPMN2.0 任务-发送任务&业务规则任务

Flowable使用名为Drools Expert的Drools规则引擎执行业务规则。目前,业务规则中包含的.drl文件,必须与定义了业务规则服务并执行规则的流程定义一起部署。这意味着流程中使用的所有.drl文件都需要打包在流程BAR文件中,与任务表单等类似。如果想要使用自己的规则任务实现,比如希望通过不同方法使用Drools,或者想使用完全不同的规则引擎,则可以使用BusinessRuleTask的class或expression属性。发送任务时一种比较简单的任务,用来把消息发送给外部参与者。

2023-05-18 21:29:02 334

原创 BPMN2.0 任务-接收任务&手动任务

当流程执行到接收任务时,流程状态将提交给持久性存储。流程将保持这种等待状态,直到流程引擎接收到特定的消息,这将触发接收任务之外流程的继续进行。接收任务用左上角有一个消息图标的标准BPMN 2.0任务(圆角矩形)表示。消息图标是白色的(对应的黑色消息图标代表发送的含义)。在flowable中只支持java任务。要使流程实例从接收任务的等待状态中继续执行,需要使用到达接收任务的执行id,调用。接收任务是一个简单的任务,它等待特定消息的到来。

2023-05-08 19:59:56 227

原创 BPMN2.0 任务-服务任务

默认情况下,异步作业是排他的,也就是说流程实例会被锁定,以保证流程实例中的其他活动不会影响到触发器的逻辑。这是最不线程安全的模式,但可以保证历史版本兼容性,也可以在委托表达式只在一个任务中使用的时候(因此不会产生并发竞争条件),安全使用。这种情况下,使用字段注入时,没有线程安全性问题:每次表达式解析时,都会注入新实例的字段。有的时候,需要在Java服务任务中使用Flowable服务(例如调用活动(call activity)不满足需要的场景下,使用RuntimeService启动流程实例)。

2023-05-03 19:52:29 632

原创 BPMN2.0 任务-脚本任务

如果想使用其它(兼容JSR-223的)脚本引擎,则需要在classpath中添加相应的jar,并使用适当的名字。有时,脚本任务中的脚本不是由开发者撰写的。如果指定为已存在的流程变量,则流程变量的值会被脚本执行的结果值覆盖。时,执行的脚本与Java代码具有相似的能力。当流程执行到达脚本任务时,会执行相应的脚本。也就是说如果在脚本任务定义中忽略这个参数,则脚本声明的所有变量将只在脚本执行期间有效。到达脚本引擎的执行中,所有的流程变量都可以在脚本中使用。: 一个全限定类名字符串的集合,表示允许在脚本中使用的类。

2023-05-02 16:43:34 763

原创 BPMN2.0 泳池与泳道

泳池和泳道定义了流程中的职责。泳池有明确的组织边界,泳道总是位于一个泳池或者另一个泳道中,它与同一泳池的其他泳道可以无限制通信。泳池和泳道代表了流程执行中的不同角色,也就是流程参与者。泳道可以用来对不同的任务或者子流程分组,并分配不同的任务管理者。泳池和泳道是参与流程的对象,表示活动的执行者,可以是组织,角色,系统,个人等。泳池和泳道的意义,更在于流程的建模者的设计,体现流程的流转和业务含义。不同的泳道一般是不同的任务执行者。

2023-04-27 20:03:48 618

原创 BPMN2.0 任务-用户任务

例如,可以使用在流程里前一个表单中输入的日期,或者由前一个服务任务计算出的日期。每个任务都可以使用一个字段标志该任务的到期日期(due date)。可以使用查询API,查询在给定日期前或后到期的任务。在前一章节提到过,Flowable的身份管理实现并不适用于生产环境,而需要在支持的认证概要下自行扩展。可以在任务定义中使用扩展指定表达式,以在任务创建时设定到期日期。拥有办理人的任务,在其他人的任务列表中不可见,而只能在该办理人的。用户任务用左上角有一个小用户图标的标准任务(圆角矩形)表示。

2023-04-26 15:21:05 665 1

原创 BPMN2.0 网关

所有到达包容网关的并行执行,都会在网关等待,直到所有“可以到达”包容网关的执行都“到达”包容网关。当流程执行到达基于事件的网关时,与等待状态类似,网关会暂停执行,并且为每一条出口顺序流创建一个事件订阅。请注意包容网关不需要“平衡”(也就是说,前后对应的两个包容网关,其入口/出口顺序流的数量不需要一致)。与排他网关一样,可以在包容网关的出口顺序流上定义条件,包容网关会计算条件。在这种情况下,网关首先合并所有具有流程标志的入口顺序流,然后为每一个条件计算为true的出口顺序流分裂出并行执行路径。

2023-04-26 14:13:17 959

原创 学习 ES6 9 - 语言特性 集合Set

Set类似于数组,成员的值是唯一的,实现了iterator接口,可以使用扩展运算符和for...of遍历* size* add 增加元素,返回当前集合* delete 删除元素,返回boolean值* has 监测集合中是否包含某个元素,返回boolean值* clear 清空集合```letarr=[1,2,3,4,5,4,3,2,1]//1.数组去重letresult=[...newSet(...

2020-09-08 22:03:28 157

原创 学习 ES6 8 - 语言特性 Symbol

Symol新的原始数据类型,表示独一无二的值,JavaScript语言的第七中数据类型,类似于字符串特点Symbol的值是唯一的,用来解决命名冲突的问题Symbol值不能与其他数据进行运算Symbol定义的对象属性不能使用 for…in循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名`//创建Symbollet s = Symbol()console.log(s,typeof s)let s2 = Symbol(‘abc’)let s3 = Symb

2020-09-07 16:00:16 184

原创 学习 ES6 7 - 语言特性 Rest参数

Rest 参数接受函数的多余参数,组成一个数组,放在形参的最后function fn(a,b,...args) { console.log(args)}fn(1,2,3,4,5)//输出:[3,4,5]Rest参数可以被结构,rest参数是数组function f(...[a, b, c]) { return a + b + c; } f(1, 2, 3)//返回6...

2020-09-06 22:04:00 99

原创 学习 ES6 6 - 语言特性 箭头函数

1,声明函数、let fn = function () {}//箭头函数let fn = ()=> {}2, this是静态的,始终指向函数声明时所在作用域下的this3,不能作为构造函数去实例化对象let person = (name,age) => { this.name = name this.age = age}let a = new person('a',10)//报错,person不是一个构造器4,不能使用argume

2020-09-06 20:56:55 92

原创 学习 ES6 5 - 语言特性 简化对象写法

属性与属性对应对象同名,可以只写属性名,以简化写法let name = 'Jerry'let age = 15let person = { name, //代替name: name age //代替age: age}方法/函数 简写const person = { name: '123', say: function (msg) { console.log(msg) }}//ES6可以写为const pers

2020-09-05 22:22:43 103

原创 学习 ES6 4 - 语言特性 模板字符串

模板字符串,声明使用符号: ``1,在内容中可以使用回车let str1 = `<ul> <li>123</li> </ul>`//可以使用回车2,直接使用变量拼接 ${变量名}let name = 'Tom'let result = `${name} like apple!`console.log(result)...

2020-09-05 22:12:38 110

原创 学习 ES6 3 - 语言特性 变量的解构赋值

ES6 可以按照一定模式从对象和数组中提取对应值,并赋值给指定的变量1,数组let items = [1,2,3]let [i,j,k] = itemsconsole.log("i:" + i)console.log("j:" + j)console.log("k:" + k)//i:1,j:2,k:3let [l,m] = itemsconsole.log("l:" + l)console.log("m:" + m)// 可以赋值给少于数组长度的数组 l:1,m:2l

2020-09-05 17:22:53 107

原创 学习 ES6 2 - 语言特性 const

const 定义常量1,必须初始化const i;// 没有赋值,报错const j = 0; // 成功定义2,不能修改const a = 0;a = 1;//修改常量值,报错3,块级作用域{ const a = 0;}console.log(a)//错误,块外无法访问到变量,未定义错误4,对象与数组中元素的修改,不会报错const items = [1,2,3]items.push(4)//不报错,const指向的是地

2020-09-05 16:54:41 97

原创 学习 ES6 1 - 语言特性 let

let1,不能重复声明let i = 0;let i = 1;//报错2,块级作用域{ let i = 0;}console.log(i) // 错误3,不存在变量提升console.log(i)var i = 0;//不报错,i undefiendconsole.log(j)let j = 0;//报错,未声明前,不允许使用j变量4,不影响作用域链{ let i = 0; function fn() {

2020-09-05 16:38:39 77

原创 兄弟组件之间的通信

兄弟组件之间的通信1,单独的时间中心管理组件间的通信var eventHub = new Vue())2,监听事件与销毁事件eventHub.$on('add-todo',addTodo) eventHub.$off('add-todo')3,触发事件eventHub.$emit('add-todo',id)例子,参考谷粒学院的教学视频:<!DOCTYPE html><html> <head> <m...

2020-07-19 10:05:19 1684

转载 1,基本概念-RabbitMQ

内容参考自:https://liuyueyi.github.io/hexblog/2018/05/27/RabbitMQ%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%E4%B9%8B%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/RabbitMQ是一个消息队列,消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之间的异步协调工...

2019-10-10 16:53:27 137

原创 12.Mycat 分片规则

在数据切分处理中,特别是水平切分中,中间件最终要的两个处理过程就是数据的切分、数据的聚合。选择合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理。1.Mycat 全局表如果你的业务中有些数据类似于数据字典,比如配置文件的配置,常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大,而且大部分的业务场景都会用到,那么这种表适合于 Myca...

2019-09-20 11:03:47 478

原创 11.Mycat全局序列号

在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式。本地文件方式原理:此方式 MyCAT 将 sequence 配置到文件中,当使用到 sequence 中的配置后,MyCAT 会更新下classpath 中的 sequence_conf.properties 文件中 seq...

2019-09-19 15:34:05 175

原创 10.Mycat 的分片 join

Join 绝对是关系型数据库中最常用一个特性,然而在分布式环境中,跨分片的 join 确是最复杂的,最难解决一个问题。尽量避免使用 Left join 或 Right join,而用 Inner join在使用 Left join 或 Right join 时,ON 会优先执行,where 条件在最后执行,所以在使用过程中,条件尽可能的在 ON 语句中判断,减少 where 的执行少用...

2019-09-19 15:12:11 210

原创 vue的修饰符

在默认情况下,v-model在每次input事件触发后将输入框的值与数据进行同步 ,你可以添加lazy修饰符,从而转变为使用change事件进行同步:<input v-model.lazy="msg" >如果想自动将用户的输入值转为数值类型,可以给v-model添加number修饰符:<input v-model.number="age" typ...

2019-09-09 22:25:55 222

原创 uni-app 事件处理器对应表

// 事件映射表,左侧为 WEB 事件,右侧为 ``uni-app`` 对应事件{ click: 'tap', touchstart: 'touchstart', touchmove: 'touchmove', touchcancel: 'touchcancel', touchend: 'touchend', tap: 'tap', longtap: 'lo...

2019-08-12 22:23:19 1268

原创 009.mycat的配置-rule.xml

rule.xml 里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule 和function 这两个标签。在具体使用过程中可以按照需求添加tableRule 和function。tableRule 标签这个标签定义表规则定义的表规则,在schema.xml中使用<...

2019-03-29 15:42:23 195

原创 008.mycat的配置-server.xml

1,配置server.xml 几乎保存了所有mycat 需要的系统配置信息。其在代码内直接的映射类为SystemConfig 类。2,user 标签<user name="test"><property name="password">test</property><property name="schemas">TESTDB&l...

2019-03-28 13:32:28 133

原创 007.mycat的配置-schema.xml

Schema.xml 作为MyCat 中重要的配置文件之一,管理着MyCat 的逻辑库、表、分片规则、DataNode 以及DataSource。弄懂这些配置,是正确使用MyCat 的前提。这里就一层层对该文件进行解析。schema 标签<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"></sch...

2019-03-28 13:30:55 388

原创 006.防火墙配置

白名单和SQL 黑名单说明:在server.xml 中配置:<firewall><whitehost><host user="mycat" host="127.0.0.1"></host> ip 白名单用户对应的可以访问的ip 地址</whitehost><blacklist check="true">...

2019-03-28 13:23:53 114

原创 5,Mycat日志分析

mycat 的日志文件配置为MYCAT_HOME/conf/log4j.xml,结构为:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta...

2019-03-20 16:39:29 369

原创 4,Mycat 快速入门

环境安装与配置MyCAT 目前主要通过配置文件的方式来定义逻辑库和相关配置:• MYCAT_HOME/conf/schema.xml 中定义逻辑库,表、分片节点等内容;• MYCAT_HOME/conf/rule.xml 中定义分片规则;• MYCAT_HOME/conf/server.xml 中定义用户以及系统相关变量,如端口等。服务安装与配置1,linuxMy...

2019-03-15 09:55:53 232

原创 3,Mycat中的概念

数据库中间件Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构成了整个完整的数据库存储。逻辑库(schema)在云计算时代,数据库中间件可以以多租户的形式给一个或多个应用提供服务,每个应用访问的可能是一个独立或者是共享的物理库,常见的如阿里云数据库服务...

2019-03-14 16:39:08 86

原创 2,Mycat概述

Mycat 是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL 协议的的Server,前端用户可以把它看作是一个数据库代理,用MySQL 客户端工具和命令行访问,而其后端可以用MySQL 原生(Native)协议与多个MySQL 服务器通信,也可以用JDBC 协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N 个小表,存储在后端MySQL...

2019-03-14 16:30:32 88

原创 1,何为数据切分

简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台...

2019-03-14 16:28:20 884

原创 使用MyCat的场景?

最近进行的项目,由于公司人比较少,项目比较紧,基本设计与开发同步进行,其中有一个业务场景是:一个单独的mysql数据库存储采集上来的数据,但数据量比较大,理论上最高每秒会有上万数据入库,当然,进入的是不同的表,表的结构基本都是三列:时间,参数名,值。目前,从测试上来看,1个月时间一个表的数据量差不多600万,实际业务会不会更大,也不好估算,其他几个表估计会比这个表数据量小。同时,前端会有业务模...

2019-03-14 16:20:15 1922

原创 YUM Cent OS7 安装JAVA

yum 安装java查看CentOS自带JDK是否已安装yum list installed |grep java 若有自带安装的JDK,应如下操作进行卸载CentOS系统自带Java环境java -version java version "1.7.0_181"OpenJDK Runtime Environment (rhel-2.6.14.8.el6_9-x86...

2019-01-17 15:37:43 621

高手起步,dos命令集

dos命令,高手起步!让你轻松搞定dos命令!

2008-11-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除