跳转到主要内容

RESTful消息队列

项目描述

Travis CI build report

http://queuey.readthedocs.org/上阅读完整文档

什么?另一个消息队列?

鉴于消息队列的泛滥,人们可能会倾向于认为发明更多不是答案。已经多次尝试使用现有的解决方案,包括大多数现有的消息队列产品。

其他解决方案失败了(对于我们的用例)。

queuey旨在处理大多数其他消息队列解决方案要么不处理,要么处理得很差的某些独特条件。例如,其中许多是为不需要可能更长时期(多日)存储大量消息的队列或pub/sub情况编写的。

Queuey的假设和功能

  • 消息可能持续3天以上

  • 使用时间戳进行范围扫描,以便回滚和重新读取队列中的消息

  • 可以创建数百万个队列

  • 根据Queuey部署的具体成本效益,需要可调整的消息交付特性

  • HTTP API,方便各种客户端(包括AJAX)访问

  • 身份验证系统,支持多个“应用程序”对Queuey的访问,并可选Browser-ID客户端身份验证

  • 单个部署可能支持多个具有不同消息交付特性和认证限制队列访问的应用程序。

Queuey可以配置不同的消息保证,例如:

  • 一次且仅一次交付

  • 至少一次交付(在罕见情况下,可能更多)

  • 不超过一次交付(在罕见情况下,可能不会交付)

更改存储后端和部署策略会直接影响消息保证。这使得Queuey部署能够满足不同的需求和性能阈值。

有关Queuey的更多背景信息,请参阅Mozilla维基百科中的Queuey部分

要求

在继续之前,请确保已经安装以下软件:

  • Java 1.6

  • Ant

  • Make

  • Python 2.7(已安装virtualenv)

安装

首次下载存储库后,切换到目录并运行

$ make

这将执行以下操作:

  • 创建一个虚拟Python环境

  • 将所需的Python包安装到该环境中

Cassandra

要运行Queuey,您需要一个存储后端来存储队列。默认存储后端是Cassandra。在Queuey的Makefile中已经自动化了安装Cassandra,将其安装在Queuey同一目录下

make cassandra

这将获取Cassandra服务器并设置配置。

默认的(Cassandra)将其数据和文件存储在本地Cassandra目录中,以免干扰系统上现有的任何Cassandra安装。

运行

运行Cassandra服务器

消息存储(服务器用于路由消息)和HTTP服务器必须单独启动。步骤如下(从根项目目录开始):

./bin/cassandra/bin/cassandra -p cassandra.pid

在将来任何时候停止它

kill -2 `cat cassandra.pid`

运行Queuey应用程序

建议您将etc/queuey-dev.ini文件复制到/etc/queuey.ini。这将防止在更新过程中意外丢失配置。

bin/pserve etc/queuey.ini

故障排除

“升级”Queuey可能需要重新初始化模式。要重新初始化模式,请删除所有数据文件。新的正确模式将在下一次Queuey启动时自动创建。

  1. 停止Cassandra

    kill -2 `cat cassandra.pid`
  2. 删除Cassandra数据目录(不是Cassandra二进制目录)

    rm -rf ./cassandra
  3. 启动Cassandra

    ./bin/cassandra/bin/cassandra -p cassandra.pid

变更日志

0.8 (2012-08-28)

功能

  • Cassandra 1.1的兼容性

  • 添加新API以通过消息ID获取、发布和更新消息

  • 添加新的内存存储后端以进行测试目的

  • 添加基于metlog的度量日志记录

  • 使用pycassa的系统管理器支持在启动时编程创建Cassandra模式。

错误修复

  • 修复服务器端消息ID到时间戳转换中的精度错误。

  • 强制消息键为有效的UUID1,而不仅仅是任何UUID。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

queuey-0.8.zip (122.8 kB 查看哈希值)

上传时间

由以下组织支持