写点什么

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

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

关注

评论

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

转行前端是自学好还是培训班好

小谷哥

StarRocks 成都见!企业如何打造极速统一的数据分析新范式,助力业务全方位升级

StarRocks

数据库 大数据 数据分析 国产数据库

在线多行文本批量正则替换添加后缀工具

入门小站

工具

《Linux设备驱动开发详解》读书笔记

贾献华

7月月更

Java 集合

Damon

7月月更

本周四晚19:00知识赋能第3期直播丨OpenHarmony智能家居项目之控制面板功能实现

OpenHarmony开发者

Open Harmony

Python 入门指南之标准库浏览 – Part II

海拥(haiyong.site)

7月月更

如何系统学习web前端技术知识

小谷哥

泰凌微电子B91通用开发板合入OpenHarmony社区主干

科技汇

在线SQL转XML工具

入门小站

工具

Chrome实现自动化测试:录制回放网页动作

和牛

测试

新一代云原生消息队列 (二)

技术小生

pulsar Apache Pulsar 消息系统 7月月更

小程序容器技术让混合App开发效率提升

Geek_99967b

小程序容器

Kubernetes入坑篇

青柚1943

Kubernetes DevOps minikube

Python3详细的数组基础操作-入门必备[列表的操作]

迷彩

数组 Python基础 列表 7月月更

还不了解进程吗?就这一篇!

C++后台开发

网络编程 进程 通信 linux开发 C++开发

Python|制作词云,改变词云字体颜色

AXYZdong

Python 7月月更

开鸿智谷 Niobe 407 正式并入OpenHarmony代码主干

科技汇

AIOps落地五大原则(三):架构路线

BizSeer必示科技

人工智能 AIOPS

融云 x 天聊,用声音打造「无压力社交」栖息地

融云 RongCloud

ArkUI路由跳转概览

坚果

HarmonyOS OpenHarmony 7月月更

如何系统进行学习web前端开发工程师技术

小谷哥

新书上市 | C 语言经典教材配套“习题解答”,原书累计印数 10 万 +

图灵教育

C语言

日志黑名单,真的能帮你省钱!

观测云

重磅发新 | 尚硅谷C4D三维设计实战教程发布

小谷哥

哪个年龄段学习web前端培训比较好

小谷哥

C 语言入门(四)

逝缘~

7月月更

Web安全之Java反序列漏洞总结

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

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