写点什么

使用 AP4R 在 Ruby 中实现可靠消息传送

  • 2007-06-19
  • 本文字数:870 字

    阅读完需:约 3 分钟

一直以来,篠原俊一(Shunichi Shinohara)和加藤究(Kiwamu Kato)在致力于将可靠消息传送(Reliable Messaging)引入 Ruby。他们以先前设计基于 Java 的高容量消息传送框架的经验为基础,通过他们自主的 API 和协议的项目,试图将这个努力变为现实。 AP4R 这个项目的名称是 Asynchronous Processing for Ruby 的缩写,意即“Ruby 的异步处理”。该项目是一个异步可靠消息处理的实现,提供消息队列和消息分派的功能。篠原和加藤在日本 Ruby 会议 2007(RubyKaigi 2007)上进行了演讲(PDF 幻灯片),介绍了他们的 API,并强调其核心设计哲学:鲁棒性和轻量级。

这个项目问世仅仅一年,但已经能支持:

  1. 不管业务逻辑是非同步调用还是同步调用的,都可以以简单的 Web 应用或者 Ruby 代码的形式实现;
  2. RBMS(MySQL)或者基于文件的消息持久化能力;
  3. 支持在单个或者多个服务器上跨多个 AP4R 进程的负载平衡;
  4. 对以下多个协议的支持:XML-RPC、SOAP 和 HTTP POST 等等。

先前,篠原和加藤已经实现过他们自己的基于 Java 的 API 和协议(称为 RtFA),这项成果被用于一个包含 100 台服务器的大型应用中,该应用每天处理超过 1 亿条消息。篠原和加藤声称,他们已经改进了先前在 AP4R 上的工作,并且也在易用性上花了很大工夫。AP4R 所附带的文档非常完整详尽。

要将 AP4R 整合进 Rails,典型流程如下:

  1. 客户端(如 Web 浏览器)向 Web 服务器(Apache 和 Lighttpd 等)发送请求;(
  2. Rails 应用通过 mod_proxy 或者其它被同步地在 mongrel 上执行;
  3. Rails 应用通过 AP4R 的 API 发送消息,并可以在随后立刻响应给客户端;
  4. AP4R 将消息放入队列,并且异步地将其请求到 Web 服务器;
  5. 异步的业务逻辑(以常见的 Rails Action 的形式实现)被执行。

0.3.x 关注的是后台服务化(Daemonization)、URL 重写过滤器(URL-rewrite filter)、DLQ / SAF 恢复,以及对将 Stomp 和 HTTP 作为底层协议的支持。今后的版本将包含对监控和管理的支持(如线程状态和 Web 前端)、与 Cacti 和 Nagios 等的协作、多进程、动态可配置性、自动恢复和阻塞队列等等。

查看英文原文: Reliable Messaging in Ruby with AP4R

2007-06-19 19:301114
用户头像

发布了 117 篇内容, 共 18.7 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

技术领先的用友iuap平台,助力升级数智化底座、驾驭数智未来

用友BIP

2023全球商业创新大会

生成式AI:全球科技革命的驱动力

百度开发者中心

教育 #人工智能 ChatGPT 生成式AI

华为云GaussDB打造最可信的数据库,给世界一个更优选择

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

《守望先锋 2》性能提升高达33%!英特尔锐炫从未止步

E科讯

CQ 社区版 2.3.0 发布 | 自动授权、分级授权、审计上卷下钻等

BinTools图尔兹

数据安全 数据库管理 权限管理 数据库操作 审计大屏

盘点!3月份Github上“最热门”的开源项目

java易二三

Java 程序员 Vue 前端 计算机

生成式AI技术市场现状与发展前景展望

百度开发者中心

#人工智能 生成式AI 文心一言

生成式AI:内容创作新革命

百度开发者中心

自然语言处理 内容 #人工智能 文心一言

AI与众包平台共铸新机遇

知者如C

分布式数据库架构:高可用、高性能的数据存储

互联网工科生

分布式数据库 高性能 高可用性

ETL 小技巧:文件输出插件数据写入空闲时间阈值配置及作用

大河

缓冲区 ETL bboss 文件输出

第三周作业

大肚皮狒狒

技术分享 | 编程界也内卷?浅析“斜杠青年”RCU

鼎道智联

在数字化时代的挑战与解决:跨国大文件传输方法

镭速

大文件跨国传输 跨国快速传输大文件

企业国际大数据传输必须了解的5种跨国快速传输大文件工具

镭速

大文件传输 跨国传输大数据

有奖活动 | 以代码之名,写出对Ta的爱

HarmonyOS开发者

HarmonyOS

生成式AI助力智能未来

百度开发者中心

#人工智能 ChatGPT 生成式AI 文心一言

和鲸 × 临床医学丨“人”作为一生命体在 AI for Science 过程中的作用与交互

ModelWhale

数据科学 临床医学 AI for Science 交叉学科 临床研究

死锁产生的条件及解决方法

红袖添香

Java 多线程 死锁

用案例带你认识决策树,解锁洞察力

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

生成式AI引领未来传媒业发展趋势

百度开发者中心

媒体 #人工智能 生成式AI 文心一言

电脑的配置对仿真软件的分析速度有影响吗?

思茂信息

硬件 仿真软件 电脑硬件 有限元分析 电脑配置

带你读论文丨Fuzzing漏洞挖掘详细总结 GreyOne

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

生成式AI助力高效写作

百度开发者中心

大模型 #人工智能 ChatGPT 生成式AI

蚂蚁安全实验室登上全球白帽黑客最高领奖台

科技热闻

低成本生成式AI技术:推动AI普及的关键

百度开发者中心

医疗 #人工智能 ChatGPT 文心一言

电脑硬件迭代快,对仿真软件有什么影响?

智造软件

仿真软件 电脑硬件 结构仿真 电脑配置 硬件配置

使用AP4R在Ruby中实现可靠消息传送_Ruby_Sebastien Auvray_InfoQ精选文章