50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

【YashanDB知识库】ycm纳管主机安装YCM-AGENT时报错“任务提交失败,无法连接主机”

YashanDB

yashandb 崖山数据库

MySQL的安装与配置:从零开始搭建数据库环境

测吧(北京)科技有限公司

测试

程序中的循环

测吧(北京)科技有限公司

测试

Python实现水仙花数的查找与验证

测吧(北京)科技有限公司

测试

软件测试 | 关系型与非关系型数据库的区别

测吧(北京)科技有限公司

测试

全面掌握甲骨文云 OCI MySQL 服务:从自动运维到高效管理

极客天地

数据库客户端工具的使用

测吧(北京)科技有限公司

测试

【内容推荐】一课毕业,IoTDB 从入门到精通!

Apache IoTDB

软件测试 | Redis:性能最快的内存数据库及其基础使用

测吧(北京)科技有限公司

测试

基于火山引擎云搜索的混合搜索实战

字节跳动云原生计算

ES 云搜索

用 Python 实现猜拳游戏:结合分支语句、运算符和列表

测吧(北京)科技有限公司

测试

Python实现词频统计:利用列表、字符串操作和字典

测吧(北京)科技有限公司

测试

软件测试 | Pytest 测试用例调度与运行

测吧(北京)科技有限公司

测试

交互式数字展厅能否成为智慧城市规划的下一个风口?

点量实时云渲染

智慧城市 数字孪生 实时云渲染 3D实时云渲染 线上展厅

【Ali】快速入门:在阿里云ECS上配置Windows系统实例指南

极客天地

开发者选型:小程序原生or 小程序框架?

FN0

小程序 小程序框架 小程序发开

Pencils Protocol Season 2 收官在即,展望Season 3 及其权益

加密眼界

软件测试学习笔记丨Spring Boot 统一返回结果模版

测试人

软件测试

解锁QCon/AICon/ArchSummit/FCon 大会最新视频

极客时间

#Qcon

Python类的构造方法与字符串表示

测吧(北京)科技有限公司

测试

CDN——提升您网站的性能

极客天地

深挖中建信息2023年年报,用数智化“创造价值”

脑极体

数智化

Python中的封装与访问控制权限

测吧(北京)科技有限公司

测试

软件测试 | 多表查询:外连接查询详解

测吧(北京)科技有限公司

测试

Linux上执行内存中的脚本和程序

不在线第一只蜗牛

Linux 运维 服务器

记一次ThreadLocal中的用户信息混乱问题

不在线第一只蜗牛

Java 数据库 oracle ThreadLocal

精通Python推导式:元组、列表、字典、集合

测吧(北京)科技有限公司

测试

软件测试 | Pytest 参数化与基本装饰器用法

测吧(北京)科技有限公司

测试

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