处理器
处理器
处理器是集成平台中用来实现集成逻辑的处理单元,通过使用不同类型的处理器完成集成流的配置。以下是集成平台中的处理器:
数据映射(mapper-convert)
数据映射用来将入参模型映射为出参模型,且可以添加funtion对入参模型数据进行处理后再映射到出参模型。可以使用集成平台中自带的funtion也可以使用自定义的funtion,配置参数如下:
- inModel(入参模型):必填,不需要手动填入,会自动填入上一个节点的出参模型
- function(函数):非必填,需要对入参模型数据进行处理时可选择对应的function
- outModel(出参模型):必填,需要手动填入,选择对应的出参模型
具体使用可查看:数据映射开发指南
Http调用器(http-client、OkHttpClient)
http调用器通过集成平台对外部http服务进行调用,现在有两种http调用器:
-
http-client:通过camel-http组件进行调用
-
OkHttpClient:通过OkHttp客户端进行调用,相较http-client多了上传ssl自签名证书的功能
以下是共有的配置参数:
-
connectorId(连接器id):必填,http类型的连接器
-
method(方法):必填,请求接口的方法。可选以下几种:
POST、GET、PUT、DELETE、PATCH、MIX、TRACE、HEAD、CONNECT、OPTIONS
-
path(路径):必填,请求接口的路径
-
contentType(数据类型):必填,请求接口时传参的数据类型。可选以下三种:
APPLICATION_JSON、APPLICATION_FORM_URLENCODED、MULTIPART_FORM_DATA
-
headers (请求头):非必填,结合执行脚本(script)处理器进行使用,具体使用查看:
-
queryParams(请求参数):非必填,使用场景:请求接口为Post、Put、Delate且需要传入param时,具体使用同headers
-
formData(表单数据):非必填,使用场景:当数据类型为MULTIPART_FORM_DAT时,具体使用同headers
以下是OkHttpClient独有的配置参数
- checkCertificate (校验自签名证书):必填,选择是否校验自签名证书
- sslCertificate(自签名证书):非必填,当checkCertificate开启时上传一个自签名证书
具体使用可查看:Http调用器开发指南
Soap调用器(soap-client)
Soap调用器通过集成平台对外部WebService服务进行调用,配置参数如下:
-
connectorId(连接器id):必填,soap类型的连接器
-
method(方法):必填,请求接口的方法。可选以下几种:
POST、GET、PUT、DELETE、PATCH、MIX、TRACE、HEAD、CONNECT、OPTIONS
-
path(路径):必填,请求接口的路径
具体使用可查看:Soap调用器开发指南
服务调用器(service)
服务调用器通过解析soap的wsdl文档或者http的swagger文档得到对应的serivce信息,再根据service信息里封装的operation进行调用
配置参数如下:
- serviceId(服务id):必填,选择需要调用的服务
- operation(操作):必填,选择该服务下需要调用的操作
具体使用可查看:服务调用器开发指南
Dubbo服务消费者(dubbo-consumer)
Dubbo服务消费者通过集成平台对外部dubbo服务进行调用,配置参数如下:
-
connectorId(连接器id):必填,dubbo类型的连接器
-
serviceId(服务id):必填,调用的dubbo服务的id,路径加类名
-
method(方法):必填,调用的dubbo服务方法
-
version(版本):必填,调用的dubbo服务版本
-
timeout (超时时间): 必填,单位毫秒
-
retry times (重试次数):必填
-
parameterType (入参类型):非必填,有方法重载时才需要声明入参类型
具体使用可查看:dubbo服务消费者开发指南
Rocketmq生产者(rocketmq-producer)
Rockermq生产者通过集成平台往指定mq地址发送消息,配置参数如下:
-
connectorId(连接器id):必填,rocketmq类型的连接器
-
topic(主题):必填,发送消息的目标topic
-
messageSharding(消息拆分):必填,当消息体比较大且消息为List类型时,可以选择开启改选项,集成平台会将List消息拆分后,单条发送
-
producerGroup (生产者组):必填,定义生产者组(确保producerGroup在当前环境的唯一性,否则会引起冲突)
-
tag(标签):非必填,发送消息的目标tag
-
async(是否异步):非必填,是否开启异步发送
具体使用可查看:Rocketmq生产者开发指南
Rocketmq消费确认(rocketmq-commit)
Rocketmq消费确认需要结合Rocketmq消费者一起使用,即消费到消息后是否马上确认。该组件可以帮忙完成一定的事务性需求,比如消息消费后,需要做一次数据库操作,业务要求消息消费与数据库操作保证事务,那么就可以在数据库操作节点后面添加消费确认节点,当数据库操作异常时,消费的offset不会变更。下一次消费还是会从失败的那个消息开始,保证操作的事务性
Rocketmq消费确认无配置参数
Kafka生产者(kafka-producer)
Kafka生产者通过集成平台往指定mq地址发送消息,配置参数如下:
-
connectorId (连接器id):必填,kafka类型的连接器
-
topic(主题):必填,发送消息的目标topic
-
messageSharding(消息拆分):必填,当消息体比较大且消息为List类型时,可以选择开启该选项,集成平台会将List消息拆分后,单条发送
-
timeout(超时时间):必填,单位毫秒
Kafka消费确认
Kafka消费确认需要结合Kafka消费者一起使用,功能同Rocketmq消费确认
Kafka消费确认无配置参数
Ftp文件下载器(custom-ftp-download)
Ftp文件下载器通过集成平台往指定文件服务器下载文件,配置参数如下:
-
connectorId(连接器id):必填,ftp类型的连接器
-
delete (删除文件):必填,下载文件成功后是否删除文件服务器上的文件
-
path(路径):必填,需要下载的文件所在的路径
-
dynamicFileName (动态文件名):必填,和dynamicPath结合使用。根据dynamicPath的值在Ftp文件下载器的输入对象中获取文件名
-
dynamicPath(动态路径):非必填,和dynamicFileName结合使用
-
fileName(文件名):非必填,可以和dateConnector、datePattern、fileSuffix结合使用,构造一个最终的文件名
-
dateConnector(前缀日期分隔符):非必填,和fileName、datePattern结合使用,可选以下3种:
- UNDER_LINE(”_”)
- DOT(”.”)
- MIDDLE_LINE(”-”)
-
datePattern(日期格式):非必填,和fileName、dateConnector结合使用
-
fileSuffix(文件名后缀 ):非必填,和fileName结合使用
Ftp文件上传器(custom-ftp-upload、ftp-upload)
Ftp文件上传器通过集成平台往指定文件服务器上传文件,现在有两种Ftp文件上传器:ftp-upload、custom-ftp-upload,两者差别是custom-ftp-upload多了一个FreeMarker模板参数,用于生成数据文件,适用于更复杂的更个性化的需求
配置参数如下:
-
connectorId(连接器id):必填,ftp类型的连接器
-
fileExist(文件存在时的操作):必填,当上传的文件存在时可选以下操作:
- Override:覆盖
- Append:附加
- Fail:报错
- Ignore:忽略
-
dynamicFileName (动态文件名):必填,和dynamicPath结合使用。根据dynamicPath的值在Ftp文件上传器的输入对象中获取文件名
-
inputType(入参类型):必填,可选:OBJECT、XML、ARRAY
-
dynamicPath(动态路径):非必填,和dynamicFileName结合使用
-
path(路径):非必填,上传到文件服务器的路径
-
filePrefix(文件名前缀):非必填,和datePattern、fileSuffix结合使用生成最终的文件名
-
datePattern(文件后缀日期格式):非必填
-
fileSuffix(文件后缀):非必填
-
TemplateURI(模版文件路径):非必填,custom-ftp-upload特有的参数
邮件发送器(Mail-sender、DalaranMailSender)
邮件发送器通过配置邮件服务器和收件人邮箱地址等信息实现发送邮件的功能,通过将传入节点的数据生成附件进行发送,集成平台现在有两种邮件发送器:Mail-sender、DalaranMailSender,两者功能一样仅实现原理不一样,配置参数如下:
-
connectorId(连接器id):必填,mail类型的连接器
-
sendTo(收件人):必填,收件人邮箱地址,多个地址用英文逗号分隔
-
ccTo(抄送人):非必填,抄送人邮箱地址,多个地址用英文逗号分隔
-
subject(标题):必填,邮件标题
数据库调用器(sql)
数据库调用器可以通过配置数据源和编写sql语句完成和数据库的交互,配置参数如下:
-
DB Connector(DB数据源):必填,数据库类型的连接器
-
SQL Type(SQL类型):必填,可选以下两种:
- COMMON:普通类型
- STORED_PROCEDURE:存储过程
-
Operation Type(操作类型):必填,可选以下四种:INSERT, DELETE, UPDATE, SELECT
-
Compress(SQL压缩):必填,选择是否开启SQL压缩
-
PreHandle(SQL预处理):必填,选择是否开启SQL预处理。当SQL中有需要预处理的动态字段时,可以选择打开该选项。需要动态传参的值,使用 :#前缀标记, :# + 数据库调用器的入参字段名(即上个节点的出参字段名)。例如:
入参为:
{"field":"param","id":"1001"}编写的sql语句为:
select id, :#field from table where id = :#id;则预处理动态生成的sql语句为:
select id, param from table where id = 1001; -
SQL(SQL语句):必填,编写SQL语句
执行脚本(script)
执行脚本可以使用JavaScript或Groovy完成复杂的业务逻辑,对传入节点的数据进行自定义的处理后输出,概念说明:
-
body: body为传入节点的数据即上个节点的输出数据
-
context:上下文数据,可以存储数据到context中在流程中多次使用,具体可查看:
-
return: return的值为执行脚本的输出数据即下个节点的输入数据
条件路由(router)
条件路由类似于编程语言中的if-else语句,通过配置多个分支条件生成多个分支流程,分支流程同样可以添加任意的处理器节点去完成业务逻辑。配置参数如下:
-
displayName(分支名称):必填
-
expression(分支条件):必填,分支条件的固定写法为:
request.body.xxx+判断条件,xxx为条件路由的入参字段。例如:
request.body.code > 3,对入参字段code的值进行判断
条件循环(loop-while)
条件循环类似于编程语言中的while语句,当满足条件时进入循环直到不满足时退出循环,循环流程同样可以添加任意的处理器节点去完成业务逻辑。配置参数如下:
- expression(循环条件):必填,循环条件的写法同条件路由
数组循环(for-each)
数组循环类似于编程语言中的for循环,对数组类型的数据进行遍历,所以需要保证传入该节点的数据为数组数据,循环内会拿到单条数据并进行对应的逻辑处理。无需配置参数
异常处理(error-catch)
异常处理类似于编程语音中的try-catch,添加异常处理节点时会有两个分支,一个正常分支和一个异常分支,当正常分支的节点发生异常时会跳转到异常分支进行处理。无需配置参数
失败重试(retry)
在失败重试节点内的节点执行时发生异常时,失败重试节点内的节点会重新执行以达到失败重试的效果。配置参数如下:
- Max Retry(最大重试次数):必填
- Retry Delay(重试间隔):必填,每次重试的时间间隔,单位ms
并行聚合(scatter-gather)
并行聚合可以通过配置多个分支达到多个分支并行执行的效果,各个分支可以完成自定义的业务流程。无需配置参数