写点什么

使用 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:301303
用户头像

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

关注

评论

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

软件测试/测试开发丨接口自动化学习笔记——响应体断言

测试人

软件测试 接口测试

COSCon'23|Sermant亮相2023第八届中国开源年会,共赢数智时代

华为云开源

开源项目 微服务治理 sermant

Linux centos 安装nodejs完整教程 详细到不能再详细了

javaNice

Java Linux nodejs

实例讲解数据库的数据去重

不在线第一只蜗牛

数据库 架构 系统架构 系统

软件测试/测试开发丨接口自动化学习笔记——响应体断言

测试人

软件测试 接口测试

第三方数据测评对比五大品牌HTTP代理!哪家代理最纯净稳定

Geek_bf375d

软件测试/测试开发丨接口自动化学习笔记——请求方法构造

测试人

软件测试 接口测试

浅议特权账号防护措施

尚思卓越

网络安全 数据安全 特权账号管理

头脑风暴利器!10款超实用的思维导图软件,助你脑洞大开!

彭宏豪95

思维导图 头脑风暴 在线白板 办公软件 思维导图软件

风口过后,该重新关注软件内在质量了

neverwinter

程序员 互联网 软件工程 软件质量 软件研发

软件开发全套资料整理下载(投标支撑,立项,研发,测试,实施维护,安全监测,服务巡检,结项,验收支撑)

代码人,代码魂

前端常用的开发工具有哪些?

互联网工科生

前端框架 前端开发工具 JNPF

杭州悦数出席 2023 云栖大会计算巢专场,分享云上最佳实践

最新动态

立冬礼物已送达,小艺陪你开启“暖冬”模式

最新动态

冬天的第一份惊喜,是小艺给的!

最新动态

实例详解构建数仓中的行列转换

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

Linux centos 安装docker

javaNice

Java Docker Linux

如何使用 GTX750 或 1050 显卡安装 CUDA11+

北桥苏

PyTorch cuda cudnn

加密货币交易软件开发:树立行业新标准

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

重庆上百位老师和学生,正在使用这个国产操作系统

OpenCloudOS

Linux 操作系统

【云栖2023】林伟:大数据AI一体化的解读

阿里云大数据AI技术

大数据 AI

如何 Get 字节跳动同款云原生大数据平台

字节跳动云原生计算

大数据 云原生

少林寺方丈释永信造访 Meta 总部;OpenAI 正在摧毁创业公司?丨 RTE 开发者日报 Vol.80

RTE开发者社区

全方位监控基础设施,坚实守护您的业务稳定!

观测云

监控 基础设施 网络

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