如何使用NODEJS+REDIS开发一个消息队列

JavaScript027

如何使用NODEJS+REDIS开发一个消息队列,第1张

1. publish 将数据写入到一个list or sorted list 队列,写完成后开始给终端广播消息,告诉大家,有新的数据等待处理,这个时候,谁能pop到数据,就是谁处理,这个操作是原子性的,也就是说不会被重复处理.

2. 使用阻塞模式, redis提供了blpop brpop这种操作,也就是一直阻塞一个队列,直到有数据来. 这种模式保证了数据的原子性,而且使应用程序可以支持分布式多台机器部署.

这要看你的业务场景了,你对消息队列的需求点是什么?时序性?一致性?持久化?当然你可以用node来开发一套消息队列,或者简单的利用node的事件机制来充当满足你场景的业务调度平台。完全看你所需要的消息队列的功能了~

另外,如果让node处理海量的消息调度的话,个人感觉这对目前的node来说可能有些吃力,毕竟它的优势主要体现在非CPU密集型的一些任务上~