写点什么

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

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

关注

评论

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

C语言之输入输出

不在线第一只蜗牛

C# 开发语言

文件拖拽增强工具Dropzone 4 for Mac激活版

小玖_苹果Mac软件

阿里Java足足面了七面,我蚌埠住了。。。

了不起的程序猿

阿里巴巴 程序员 高并发 架构师 java面试

智能图像清晰度处理软件Perfectly Clear Workbench for Mac激活版

小玖_苹果Mac软件

文字处理软件Mellel 6 for Mac激活版

小玖_苹果Mac软件

技术同学如何提升业务洞察力

老张

软件开发 系统架构 技术视野 业务洞察力

Ape-DTS:开源 DTS 工具,助力自建 MySQL、PostgreSQL 迁移上云

小猿姐

MySQL 数据库 postgresql 数据传输 数据迁移

通义灵码,让梦想照进现实更快一点

阿里巴巴云原生

阿里云 云原生

【论文速读】| AutoPT:研究者距离端到端的自动化网络渗透测试还有多远?

云起无垠

磁盘垃圾清理工具Magic Disk Cleaner for Mac激活版

小玖_苹果Mac软件

CAD建模软件BricsCAD 25 for Mac中文激活版

小玖_苹果Mac软件

干货!适合TikTok运营的工具推荐

Ogcloud

TikTok tiktok运营 TikTok矩阵运营 tiktok起号 tiktok运营干货

深入理解偏向锁、轻量级锁、重量级锁

快乐非自愿限量之名

C#

使用观测云排查数据库死锁故障

观测云

数据库

AE2025 After Effects 2025 for mac中文激活版

小玖_苹果Mac软件

专业核磁数据处理软件MestReNova for Mac激活版

小玖_苹果Mac软件

开放创新,释放云上数字生产力|2024华为云开源开发者论坛圆满落幕

华为云开源

开发者 云原生 前端 开发者大会 华为云开源

有哪些方法可以让Java程序员高效看源码?

开心学Java

jdk源码 架构师 java程序员 java面试 源码阅读

年终总结报告ppt怎么做?用AI工具快速自动生成!

职场工具箱

职场 PPT 年终总结 AIGC AI生成PPT

富士胶片中国可持续发展报告获上海跨国公司地区总部优秀ESG报告

财见

天翼云携手华为共建魔乐社区,共创AI生态新篇章

Geek_2d6073

AutoMQ 如何在 AWS 上避免 Kafka 跨 AZ 网络传输费用

AutoMQ

kafak Java开发分析工具 AutoMQ AZs 好文翻译

融云 IM 基于 Rust 的鸿蒙 SDK 开发实践

融云 RongCloud

Mac杀毒软件 Antivirus Zap Pro for Mac激活版

小玖_苹果Mac软件

AICon北京站HarmonyOS技术分论坛开启招募,欢迎开发者踊跃报名

最新动态

文件夹数据同步工具Sync Folders Pro for Mac激活版

小玖_苹果Mac软件

Java 动态设置 JVM 参数的方法

EquatorCoco

Java JVM

AI语音转录软件AI Transcription for Mac激活版

小玖_苹果Mac软件

AI 口语学习应用 Speak 新一轮融资估值 10 亿美元;YouTube 推出 AI 多语言配音丨 RTE 开发者日报

声网

IT就业行情不好,Java程序员如何提升自身核心竞争力?

了不起的程序猿

程序员 架构师 学习路线 java面试 大厂

【开源大屏】玩转开源积木BI,从0到1设计一个大屏

JEECG低代码

数据分析 数据可视化 BI 分析工具 数据大屏

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