一直以来,篠原俊一(Shunichi Shinohara)和加藤究(Kiwamu Kato)在致力于将可靠消息传送(Reliable Messaging)引入Ruby。他们以先前设计基于Java的高容量消息传送框架的经验为基础,通过他们自主的API和协议的项目,试图将这个努力变为现实。AP4R这个项目的名称是Asynchronous Processing for Ruby的缩写,意即“Ruby的异步处理”。该项目是一个异步可靠消息处理的实现,提供消息队列和消息分派的功能。篠原和加藤在日本Ruby会议2007(RubyKaigi 2007)上进行了演讲(PDF幻灯片),介绍了他们的API,并强调其核心设计哲学:鲁棒性和轻量级。
这个项目问世仅仅一年,但已经能支持:
不管业务逻辑是非同步调用还是同步调用的,都可以以简单的Web应用或者Ruby代码的形式实现;
RBMS(MySQL)或者基于文件的消息持久化能力;
支持在单个或者多个服务器上跨多个AP4R进程的负载平衡;
对以下多个协议的支持:XML-RPC、SOAP和HTTP POST等等。
先前,篠原和加藤已经实现过他们自己的基于Java的API和协议(称为RtFA),这项成果被用于一个包含100台服务器的大型应用中,该应用每天处理超过1亿条消息。篠原和加藤声称,他们已经改进了先前在AP4R上的工作,并且也在易用性上花了很大工夫。AP4R所附带的文档非常完整详尽。
全文链接:http://www.infoq.com/cn/news/2007/06/messaging-with-ap4r