restful消息队列

queue的Python项目详细描述


Travis CI build report

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

沃特?另一个消息队列?

考虑到消息队列的激增,人们可能倾向于相信 发明更多不是答案。使用现有的解决方案是 多次尝试与大多数现有的消息队列产品。

其他的失败(对于我们的用例)。

queuey是用来处理大多数其他消息 队列解决方案要么处理不好,要么处理得很差。其中许多是为了 为不需要的队列或发布/订阅情况编写示例 可能是长期(多天)存储,不仅是许多消息,而且 排队的人很多。

排队假设和功能:

  • 消息可能会持续3天以上
  • 使用时间戳进行范围扫描,以倒带和重新读取队列中的消息
  • 可能会创建数百万个队列
  • 消息传递特性需要根据 排队部署的特定成本效益
  • http api可方便多种客户端访问,包括ajax
  • 支持多个“应用程序”访问队列的身份验证系统 具有可选的浏览器ID客户端身份验证
  • 单个部署可能支持多个应用程序 消息传递特性和身份验证受限队列 访问

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

  • 交付一次,且仅交付一次
  • 至少交付一次(在极少数情况下,可能会更多)
  • 交付不超过一次(在极少数情况下,可能不交付)

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

有关queuey的更多背景信息,请参见the Mozilla wiki section on queuey

要求

确保您已经有了以下软件 在继续之前安装:

  • Java 1.6
  • 蚂蚁
  • 制造
  • python 2.7(安装了virtualenv)

安装

在第一次下载存储库之后, CD进入目录并运行:

$ make

这将执行以下操作:

  • 创建虚拟python环境
  • 在此环境中安装所需的python包

卡桑德拉

要运行queuey,您需要队列的存储后端。违约 存储后端是cassandra。此安装已在 queuey的makefile,将cassandra安装在与 排队:

make cassandra

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

默认值(cassandra)将其数据和文件存储在本地cassandra中 目录,以免干扰任何现有的卡桑德拉装置 系统。

运行

运行Cassandra服务器:

消息存储(服务器用于路由消息) http服务器必须单独启动。台阶 是(从根项目目录开始)

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

在将来的任何时候关闭它:

kill -2 `cat cassandra.pid`

运行队列应用程序:

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

bin/pserve etc/queuey.ini

故障排除:

“升级”队列可能需要重新初始化架构。重新初始化 架构,删除所有数据文件。新的正确架构将自动 在下一个队列启动期间创建。

  1. 停止卡桑德拉:

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

    rm -rf ./cassandra
    
  3. 启动卡桑德拉:

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

更改日志

0.8(2012-08-28)

功能

  • 与Cassandra 1.1兼容
  • 添加新的API以按消息ID获取、发布和更新消息
  • 为测试目的添加新的内存存储后端。
  • 添加基于metlog的度量日志。
  • 使用pycassa的系统管理器支持以编程方式创建 启动期间的Cassandra架构。

错误修复

  • 修复服务器端消息ID到时间戳转换中的精度错误。
  • 强制消息密钥为有效的uuid1,而不是任何uuid。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径