QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

Tapdata 肖贝贝:实时数据引擎系列(四)-关于 Oracle 与 Oracle CDC

tapdata

oracle

做百度AI工程师,还要会“相牛”?

百度开发者中心

AI 最佳实践 方法论

Premo测试框架详解

趣链科技

区块链 测试工具 测试发开

云小课|VMware备份上云学习专列来了,快加入吧~

华为云开发者联盟

云备份 VMware备份 备份上云

你了解自己的业务IO么?

焱融科技

云计算 技术 分布式 高性能 存储

逐梦航天—数字孪生技术仿真火箭发射!

ThingJS数字孪生引擎

大前端 物联网 可视化 航天 数字孪生

快速解决运维过程中碰到的难题,就用行云管家!

行云管家

运维 运维人生 IT运维 企业运维

mac idea配置类和方法的注释

孙强

方法 Mac IDEA 添加注释

Redis与Memcache对比

Linux服务器开发

数据库 redis 网络编程 Linux服务器开发 Memcache

TLS协议分析 (一) 设计目标及历史

OpenIM

RVB2601应用开发实战系列三: GUI图形显示

Roy夹馍

物联网 risc-v 嵌入式开发

tomcat启动失败常见错误

hasWhere

RVB2601应用开发实战系列四:FOTA镜像升级

Roy夹馍

物联网 risc-v 嵌入式开发

执行update语句,用没用到索引,区别大吗?

Simon

MySQL 索引

TLS协议分析 (二) 架构总览

OpenIM

RVB2601应用开发实战系列五: 网络播放器设计(一)

Roy夹馍

物联网 risc-v 嵌入式开发

game+defi系统软件开发内容

手撕HashMap源码

程序员阿杜

Java 源码

带你彻底认识Paxos算法、Zab协议和Raft协议的原理和本质

Java 架构 面试 分布式 计算机

21年字节+美团+腾讯,大厂必问面试真题总结(Java岗)

Java架构师迁哥

高光时刻!美团推出Spring源码进阶宝典:脑图+视频+文档

Java~~~

Java spring 源码 架构 面试

GameFi游戏金融系统软件开发介绍

没项目经历,面试有点怂....

Java架构师迁哥

面面俱到!阿里巴巴2021最新Java面试参考权威指南泰山版震撼来袭

Java 架构 面试 后端 计算机

iOS 屏幕实时共享功能实践(内附详细代码)

融云 RongCloud

ios 音视频

RVB2601应用开发实战系列二: 跑马灯

Roy夹馍

物联网 risc-v 嵌入式开发

RVB2601 应用开发实战系列一: Helloworld 最小系统

Roy夹馍

物联网 risc-v 嵌入式开发

后疫情时代新机遇,运营商如何把握智能家居市场?

鲸品堂

智能家居 运营商 智能家居商业模式

学生管理系统详细架构设计

Nullrable

GameFi/DeFi+NFT软件系统开发方案

惊艳!阿里自爆用480页讲清楚了44种微服务架构设计模式

Java~~~

Java spring 架构 面试 微服务

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