介绍
moonmq是一个用go实现的高性能消息队列系统,后续准备用于我们消息推送服务以及各个后台的异步任务。
在设计上面,moonmq主要借鉴了rabbitmq以及rocketmq相关的思想,但是做了很多减法,毕竟我不是要设计成一个非常通用的mq。
名词解释
- publisher,消息生产者
- consumer,消息消费者
- broker,消息中转站
- queue,消息存储队列
publisher给一个命名的queue发送消息msg,broker负责将msg存放在queue里面。
consumer可以关注自己感兴趣的queue,这样当queue里面有消息的时候,broker就会将该消息推送给该consumer。
推拉模型
在rocketmq里面,支持的是pull msg,而rabbitmq则是支持push和pull msg。moonmq只支持push msg。主要有如下考量: