携程MQ系统架构演进
我们也曾做过很久的MQ的话,也犯过很多错踩过很多坑。1.0版本是在三四年前,那时需要的消息队列很简单,只要有一个地方可以存入和读取就可以,架构如图2所示。客户端直接写消息到mongo里面去,消费者直接从里面拖出来。它没有broker,就没有server,它支持queue和topic,不支持consumer gorup。1.0版本的特点在于,开发成本极低,但是一旦要升级,就会涉及大量的客户端,这个在企业里面基本上推不下去。还有它没有broker,但是客户端之间,主要是消费者之间,要做一定的协调。因为没有broker,只能通过DB做协调,可能就会涉及到DB里面有find and modify。大量的用DB去做协调,这时DB被用得很重,性能会很差。还有很多feature没有办法做,因为你没有broker,或者server帮你的协调,feature就没有办法去做。此外,没有弹性,或者说没有架构,基本上没法做任何调整。