设为首页 收藏本站
查看: 921|回复: 0

[经验分享] Apache ServiceMix入门之四

[复制链接]

尚未签到

发表于 2017-1-4 06:12:58 | 显示全部楼层 |阅读模式
上节,我们尝试了camel-ftp component和file component组成的2个路由,可以看到两个路由间接地通过“file:c:/inbox"这个endpoint,达到下载文件,然后再将文件移到另一文件夹的效果。下面,我们再来看几个其它Component的例子:
首先,我们先准备一下环境,先在console下运行:

karaf@root>log:clear


这个命令是将缓存中的日志清空。还有两个相关的命令:
log:display     显示最近的一些日志
log:tail            持续显示日志输出(对照一下linux/unix中的tail命令比较容易理解)
现在在camelContext下再加个route:

<route>
<from uri="direct:abcd" />
<log message="mylog:Message"/>
</route>


在console下输入log:tail,应该看到没有输出或者输出一部分信息后,就没信息输出了,这时,我们要输入ctrl+c退出log:tail。
我们再用console命令:

karaf@root>feature:install camel-quartz

安装camel-quartz component,相信大家都知道quartz是什么了吧,不懂的,就去google一下。
然后,继续在camelContext下加多一个route:

<route>
<from uri="quartz:mytimer?cron=0/10+*+*+*+*+?" />
<to uri="direct:abcd"/>
</route>

我们再次输入log:tail,就可以看到类似以下的输出:

DSC0000.jpg
每10秒钟就会输出一行包含“mylog:Message”的日志信息。
这是以上两个route合作产生的效果:
下面那个route的endpoint("quartz:mytimer?cron=0/10+*+*+*+*+?")每隔10秒产生一条Normal Message(NM),传递到endpoint("direct:abcd"), 然后,上面那个route的endpoint("direct:abcd")当有NM进入时,就会由<log message="xxxx">产生一条日志,所以我们就会每隔10秒就看到一条日志被输出。
在上面的例子中,我们可以看到“direct:abcd"就像一个标号一样,当有NM传递给它时,它并不处理,而是交到到由另一个有相同名字的direct endpoint为源的route那里处理。这里我表达得不好,大家自己体会一下。
最后,我们引入activemq的component,activemq是一个jms实现,也就是一个消息中间件,activemq component就是处理来自activemq的消息的组件。

<route>
<from uri="quartz:timer2?cron=0/10+*+*+*+*+?" />
<to uri="activemq:queue:q1"/>
</route>
<route>
<from uri="activemq:queue:q1"/>
<to uri="log:q1logmessage"/>
</route>

log:tail的输出如下:

DSC0001.jpg

除了以前的mylog:Message外,这次多了个内容为“Exchange[....."的日志。
<to uri="activemq:queue:q1"/>就是将NM转成ActiveMQ的消息,发到ActiveMQ的队列q1里。
<from uri="activemq:queue:q1"/>从ActiveMQ的队列q1里获取消息,并转成NM,传递给endpoint("log:q1logmessage")。
列举了以上几个例子,相信大家对ServiceMix的运作机制有了大致的认识了吧。
下节,我们举个可加入自定义业务逻辑的Bean Component的例子给大家参考。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-323368-1-1.html 上篇帖子: apache内存占用统计 下篇帖子: apache cxf Client (soupUI)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表