用MongoDB取代RabbitMQ

RabbitMQ是当成应用比较广泛的队列服务系统,其配套的客户端和监控运维方案也比较成熟。BoxedIce的队列服务从今年四月开始从RabbitMQ切换到了MongoDB上,并一直稳定运行至今,下面是BoxedIce对队列系统的一个讨论PPT及相关叙述。分享给大家。

CQS:用CouchDB构建的队列系统

CQS(CouchDB Queue Service)是一个用CouchDB构建的异步队列程序,如果你用过Amazon的SQS队列服务,那么你会发现CQS与SQS的api完全一致。

Redis作者谈Redis应用场景

毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。

Architecture by Accident

这是一个非常棒的介绍web应用架构的slide,作者先分析了一个web应用随着负载越来越大,会进行怎么样的架构变迁,读写分享,构建cache,异步队列,反向代理等等技术,然后思考上在传统的关系数据库中我们是如何实现的,再引入了对如MongoDB、Redis等NoSQL的应用的思考。推荐细读。

MongoDB Tailable Cursors 特性介绍

MongoDB 有一个叫 Tailable Cursors的特性,它类似于tail -f 命令,你在一个Capped Collection上面执行查询操作,当操作完成后,你可以不关闭返回的数据Cursor,并持续地从中读出新加入的数据。

这个特性可以用来干什么?我觉得最直接的一个用途就是用作消息队列了,利用此特性加上MongoDB 天然的Replication 机制,做一个分布式的队列系统貌似不是什么难事。