写点什么

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

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

关注

评论

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

2023两会看点:SaaS

ToB行业头条

数字化转角,遇见未来新模式

鼎道智联

美团二面:Redis 究竟是单线程还是多线程?

Java 数据库 redis 缓存 单线程

云服务器建站教程:Centos-7.2部署LNMP环境

百度开发者中心

云服务器,

2022中国低代码全景产业研究报告

人称T客

云服务器建站教程:云服务器部署SSL证书-Apache

百度开发者中心

centos 云服务器 LAMP

百度智能云首批通过信通院MLOps旗舰级评测 全面加速文心一言产业落地

极客天地

我的天,你还不会搭建ChatGPT微应用吗?| 社区征文

三掌柜

人工智能 openai ChatGPT

瓴羊Quick BI是一款成熟产品,数据可视化功能优势明显!

夏日星河

23年国内最牛的Java面试八股文合集(全彩版),不接受反驳

Java java面试 Java八股文 Java面试题 Java面试八股文

选对调度器,让你的设备“纵享丝滑”

鼎道智联

算法 cpu ESA

CNStack 助推龙源电力扛起“双碳”大旗

阿里巴巴云原生

阿里云 云原生 CNStack

DAPP/伪DAPP区块链智能合约系统开发(成熟技术)

I8O28578624

数据库大牛推荐的《MySQL》书籍,值得反复阅读

NineData

MySQL 程序员 书籍推荐 MySQL 高可用 学习MySQL

京东二面,Redis为什么这么快?

Java 数据库 redis 缓存 面试

最佳实践 | 使用WebSocket做个实时人脸活体比对服务

牵着蜗牛去散步

人工智能 腾讯 最佳实践 腾讯云智能 慧眼人脸核身

开放下载丨云原生架构容器&微服务优秀案例集

阿里巴巴云原生

阿里云 容器 微服务 云原生

瓴羊Quick BI数据大屏真不错,优势尽显!

流量猫猫头

演讲实录|AI 数据库的内存优化之路

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

直播预告 | 倒计时一天,博睿数据联合统信软件同心生态联盟举办金融信创应用实践线上直播

博睿数据

可观测性 直播 智能运维 博睿数据 金融信创

阿里内网「MySQL面试小册」,简直太香了!

Java MySQL 数据库 面试

云服务器建站教程:云服务器部署SSL证书-Nginx

百度开发者中心

centos 云服务器

Windows2008与Windows2012下使用IIS服务搭建网站

百度开发者中心

windows IIS 云服务器

Linux系统搭建FTP服务

百度开发者中心

ftp服务

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