【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

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

从头开始(概率)学HMM:精讲第一课-隐马尔可夫模型定义

herosunly

AI 引航计划 内容合集

自我提升:高效能人士的7个习惯学习笔记

程序员架构进阶

自我管理 自我提升 10月月更

架构实战营作业 -- 模块四

冬瓜茶

设计电商秒杀系统

gawaine

架构训练营

决策树——从原理走向实战

cv君

AI 引航计划

【布隆过滤】大数据+查重过滤+爬虫领域精选算法

cv君

AI 引航计划

从头开始(概率)学HMM:精讲第四课-预测问题(维特比算法)

herosunly

AI 引航计划 内容合集

保姆级人工智能学习成长路径

herosunly

AI 引航计划 内容合集

模块九作业

VE

架构实战营

原创万字总结人工智能技术栈与学习路线 下集 进阶篇

cv君

AI 引航计划

在线HTTP请求/响应头转JSON工具

入门小站

工具

【设计模式】第一篇 - 组合模式

Brave

组合模式 10月月更

从头开始(概率)学HMM:精讲第五课-EM算法

herosunly

AI 引航计划 内容合集

原创万字总结人工智能技术栈与学习路线 上集 基础篇

cv君

AI 引航计划

AI驱动!7款开发者必备生产力工具

Jackpop

从头开始(概率)学HMM:精讲第三课-概率计算问题

herosunly

AI 引航计划 内容合集

基于深度学习的医学图像分割(一)

cv君

AI 引航计划

TensorFlow by GoogleCNN识别猫和狗, 过拟合优化 易筋 ARTS 打卡 Week 70

John(易筋)

ARTS 打卡计划

linux之history使用技巧

入门小站

Linux

数据库:B/B+树

正向成长

B+树 B树

如虎添翼!6款备受欢迎的Edge浏览器插件

Jackpop

【Flutter 专题】35 图解自定义 View 之 Canvas (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

从头开始(概率)学HMM:精讲第二课-学习问题(BW算法)

herosunly

AI 引航计划 内容合集

自定义Vue脚手架模板之:Vue-Cli源码分析

Brave

源码 vue cli 10月月更

定制个机器人帮你和Ta聊天

万俊峰Kevin

golang chatbot 聊天机器人 微信聊天

仁兄,可曾听闻OpenVINO

cv君

AI 引航计划

架构实战营 模块九 作业

脉醉

架构实战营

中国法定数字货币(DCEP)全面启航!全国普及势在必行

CECBC

浅谈人工智能的历史

Nydia

924清退在即,你的币转入数字货币钱包了吗?

CECBC

推荐2个网站,牛x就完事了!

Jackpop

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