QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

关注

评论

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

淘宝/天猫获得淘宝app商品详情原数据 API(taobao.item_get_app);可以用到哪些参数

技术冰糖葫芦

API

线上SQL超时场景分析-MySQL超时之间隙锁

快乐非自愿限量之名

MySQL 数据库 sql

贯通用友T+与企企,引领企业数字化转型新篇章!

聚道云软件连接器

案例分享

师爷,翻译翻译什么叫AOP

不在线第一只蜗牛

Java 数据库 前端 aop

如何利用 APM 追踪完整的类函数调用

观测云

性能优化

SerialMailer for Mac(邮件批量处理软件)v8.1.10注册激活版

iMac小白

使用 Swift 代码优化项目编译速度

小飞贼防火墙 Little Snitch激活最新版下载

iMac小白

PDF Expert for Mac(PDF编辑阅读转换器)v3.8.2中文激活版

iMac小白

2023总结,瞳孔滤镜

程思扬

年度总结 2023计划 2023年 2024

高效稳定!使用ETLCloud轻松同步千万数据

RestCloud

ETL 数据集成

《2023中国低代码商业落地研究报告》

EquatorCoco

低代码 行业报告

SerialMailer for Mac(邮件批量处理软件)v8.1.10注册激活版

iMac小白

云桌面解决方案四大优势

青椒云云电脑

云桌面

私有云部署有哪些特征?企业该如何正确上云

青椒云云电脑

云桌面 云电脑 云电脑平台

Serial Box for Mac(软件序列号查询软件)v2024.01激活版

iMac小白

1688商品列表数据接口(1688.item_search)

tbapi

1688 1688API 1688商品列表数据接口 关键词搜索1688商品数据

软件测试丨Docker_安装 Jenkins

测试人

软件测试 测试 自动化测试 测试开发

智能语音助手在医疗行业的应用与挑战

来自四九城儿

央国企数字化转型的“压舱石”与“新方略”

优秀

数字化转型 中央企业 国资委中央企业 央国企数字化转型

fm足球经理Football Manager 2023 中文激活版下载

iMac小白

智能语音助手在教育行业的应用与挑战

来自四九城儿

1688店铺联系方式API接口文档

tbapi

1688API接口 1688店铺联系方式接口

iPaaS架构深入探讨

RestCloud

企业集成 ipaas

PTGui Pro for Mac(全景图拼接制作工具)v10.0.11永久激活版

iMac小白

理性消费:了解租用国外服务器的实际成本

一只扑棱蛾子

独立服务器 国外服务器

3 种主要类型的云电脑服务模型

青椒云云电脑

云桌面 云电脑 云电脑平台

【好文翻译】JavaScript 中的 realm 是什么?

OpenTiny社区

前端 OpenTiny

苹果Mac版Luminar Neo 激活安装包

iMac小白

智能语音助手在旅游行业的应用与挑战

来自四九城儿

HarmonyOS NEXT创新能力:助力开发者打造差异化竞争力

新消费日报

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