前面篇日志介绍了创建resque独立工作进程,这篇文章通过一个有趣的应用来实战演示在应用中使用独立工作进程的,这篇文章用到了rabbitMQ, node.js Spring等cloud foundry 支持的框架。 文章参考如下:http://cnblog.cloudfoundry.com/2012/07/20/273/ 。
这个应用确实有趣,现在发现开源社区有很多好玩的东西,分析一下这个应用的架构,这个应用主要包含两个独立的应用程序,第一个是Java应用,定期的轮询Twitter是否包含关键字“Cloud”的微博,另外一个程序是Node.js Web应用,来显示轮询的结果, 两个应用程序之间通过共享的RabbitMQ服务进行通信,工作者进程将微博信息发布到一个RabbitMQ交换所,Web应用通过浏览器来显示这些微博,这个应用蛮有实际价值,可以分析微博的一些关键字来进行数据挖掘等等,废话不多说,动手实践。
首先还是git clone 源代码: https://github.com/cloudfoundry-samples/twitter-rabbit-socks-sample ,源代码里面分2个应用,rabbit2socks 是node.js web应用,twitter2rabbit 是独立工作者进程。
首先用Maven 打包所有依赖包,当然也可以使用Gradle 做build, git Sample 里面就是使用Gradle
然后就进行vmc push 了,过程很顺利。
可以通过vmc apps看到我们部署的独立工作者进程已经在运行了,从Twitter上面轮询抓数据,接下来部署Node.js web 应用来显示这些结果,切换到rabbit2socks 的目录下面,选择nodejs运行时。
Ok了,现在我们可以测试一下我们通过独立工作者进程抓到的微博了。
奇怪了,我们的应用都是在运行,但是出现404.....联想到我们是去twitter上面抓数据,瞬间懂了...明天去找个代理再测试一下是否抓取成功,如果可以,后面再分析一下源代码,然后试试看是否可以抓取新浪微博的数据,这是蛮有意思的事情,比如我们可以抓取关键字“苍井空”....