流程图(flows)

流程图(flows)

Mule官方原文链接

简介

流程图(flow)是一种简洁且非常灵活的机制。Mule可以灵活使用流程图实现复杂的服务架构。通过使用流程图,可以通过在Mule流程图中合理的安排任意数量的元素来实现自动化集成处理或构造Mule消息处理解决方案。开发人员在流程图中自由的实现内容,可以轻松的创建出满足需求的解决方案。

什么时候使用流程图

Flow是Mule中最多样和有效的集成机制

Flow适用于多种场合

  • 简单的集成任务

  • 定期数据处理

  • 连接云端和本地应用

  • 多种服务协同作业时的事件处理

流程图解析

流程图的本质是消息处理器链。可以把消息处理器想象成乐高积木块,流程图就是用这些积木块组合而成的。流程图可以有消息源,传入的消息用处理器链进行处理。

image

流程图配置

流程图在xml中用<flow>元素表示。每个流程图都有一个name属性,一个消息源(私有流程图没有消息源),若干个消息处理器以及可选的异常处理策略。

基本结构

<flow name="">
- 0..1 MessageSource
- 1..n MessageProcessor(s)
- 0..1 ExceptionStrategy
</flow>

流程图看似简单,但是可以创造强大的应用。特别是结合Mule表达式,可以对消息内容作精细的处理。许多元素都可以结合表达式使用,包括:

例子

简单的订书处理

<flow>

<file:inbound-endpoint path="/myDirectory">
    <file:filename-filter name="*.xml"/>
</file:inbound-endpoint>

<xml:xslt-transformer xsl-file="bookOrderTransformation.xsl"/>

<splitter expression="xpath://order"/>
<!-- The following message processors will be invoked for each order in the xml file -->

<expression-filter expression="xpath://order[@type='book']"/>

<component class="org.my.BookOrderProcessor"/>

<smtp:outbound-endpoint subject="Order Confirmation" address=""/>

<jdbc:outbound-endpoint />

<default-exception-strategy>
    <jms:outbound-endpoint queue="failedOrders"/>
</default-exception-strategy>

</flow>

流程图的表现

当接收到消息或者消息源送来消息,流程图就会开始运作并且按照配置的顺序依次执行处理链中的消息处理器。某些消息处理器可以配置子消息处理器,这时便会先去执行完这些子消息处理器,再回到原flow继续执行。

上述的情况是流程图配置为单向(one-way)模式时的表现。当传入节点设置为请求相应(request-response)模式时,流程图也会相应的变成请求相应(request-response)模式。流程图的调用者在发送消息后,会从传入节点收到消息响应。若流程图中没有<response>块且消息处理器没有对响应进行任何处理的话,那么流程图就会把处理链中最后一个消息处理器的处理结果作为流程图的响应传回给调用者。若有<response>块存在你的流程图中,则配置了该元素的消息处理器会处理响应消息。一些消息处理器例如CXF,默认的配置是处理响应消息。

注意:当流程图中的最后一个元素配置为单向传出节点时,该元素的执行不会有返回,所以消息的负载会变成NullPayload(空负载)。如果单向元素后面跟着其他的处理器,则后续处理器会收到与前面的单向传出节点所收到消息相同的的传入消息,而不会收到NullPayload。

译注:重点在单向节点后的任何消息处理器都会收到与单向节点所收到相同的传入消息,NullPayload的情况并不会真的出现,请求相应模式下的flow,如果最后一个处理器是单相节点,flow设计器会自动跳过单相节点。而单相模式flow,本来就不需要响应返回。

image

私有流程图

私有流程图是无通过Mule节点从JVM外部访问的,不能对其定义消息源。

私有流程图只能通过相同Mule运行示例中的流程图引用进行访问。在Mule xml配置中,flow-ref元素用来引用流程图。

私有流程图与普通流程图(公共流程图)的差异在于,普通流程图有自己的上下文和异常处理策略,而私有流程图则没有,私有流程图使用引用它的流程图的上下文和异常处理策略。

私有流程图例子

<flow name="privateFlow">
  <append-string-transformer message="b"/>
</flow>

<flow name="publicFlow">
  <http:inbound-endpoint address="http://localhost:8080"/>
  <append-string-transformer message="a"/>
  <flow-ref name="privateFlow"/>
  <append-string-transformer message="c"/>
</flow>

更多内容

阅读下面的博文了解我们在Mule3中追加流程图的原因

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容

  • 关键性概念 Mule官方原文链接 消息(Message)与事件(Event) Mule的工作方式是通过对源自外部的...
    麦克斯杜阅读 826评论 0 1
  • 中医认为,经络决定人体健康,一旦经络出现堵塞,人体就会出现诸多疾病。 因此,想要养生,保持经络畅通...
    秋英蔓洁萱养身阅读 2,057评论 0 0
  • 我被困在这里已经两天了。 我生活的城市流传着一个美丽的传说,走到勒马听风街的尽头就可以实现一个愿望。但街连着大...
    26c1843eca30阅读 187评论 2 2
  • Serato Pyro 是一款可以让你的音乐在切换时实现完美混音的音乐播放器,给你最佳的听觉体验,从此不会再错过任...
    最美应用阅读 488评论 0 0
  • 如果你有幸来到机器人历史博物馆,一定要去一号展厅看一看,尽管一年只开放寥寥数次,但这无碍一号展厅成为博物馆最受欢迎...
    黏在脸上的眼镜阅读 873评论 1 4