沃特?另一个消息队列?
考虑到消息队列的激增,人们可能倾向于相信
发明更多不是答案。使用现有的解决方案是
多次尝试与大多数现有的消息队列产品。
其他的失败(对于我们的用例)。
queuey是用来处理大多数其他消息
队列解决方案要么处理不好,要么处理得很差。其中许多是为了
为不需要的队列或发布/订阅情况编写示例
可能是长期(多天)存储,不仅是许多消息,而且
排队的人很多。
排队假设和功能:消息可能会持续3天以上
使用时间戳进行范围扫描,以倒带和重新读取队列中的消息
可能会创建数百万个队列
消息传递特性需要根据
排队部署的特定成本效益
http api可方便多种客户端访问,包括ajax
支持多个“应用程序”访问队列的身份验证系统
具有可选的浏览器ID客户端身份验证
单个部署可能支持多个应用程序
消息传递特性和身份验证受限队列
访问
队列可以配置不同的消息保证,例如:交付一次,且仅交付一次
至少交付一次(在极少数情况下,可能会更多)
交付不超过一次(在极少数情况下,可能不交付)
更改存储后端和部署策略会直接影响
消息保证。这使队列部署能够满足不同的
要求和性能阈值。
要求
确保您已经有了以下软件
在继续之前安装: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
故障排除:
“升级”队列可能需要重新初始化架构。重新初始化
架构,删除所有数据文件。新的正确架构将自动
在下一个队列启动期间创建。停止卡桑德拉:kill -2 `cat cassandra.pid`
删除cassandra数据目录(不是cassandra二进制目录):rm -rf ./cassandra
启动卡桑德拉:./bin/cassandra/bin/cassandra -p cassandra.pid
更改日志
0.8(2012-08-28)
功能与Cassandra 1.1兼容
添加新的API以按消息ID获取、发布和更新消息
为测试目的添加新的内存存储后端。
添加基于metlog的度量日志。
使用pycassa的系统管理器支持以编程方式创建
启动期间的Cassandra架构。
错误修复修复服务器端消息ID到时间戳转换中的精度错误。
强制消息密钥为有效的uuid1,而不是任何uuid。