初探消息队列-Message Queue

消息队列的产品还是蛮多的,比如 ActiveMQ RabbitMQ 还有阿里的 RocketMQ…… 那这玩意是干哈的?有什么作用呢?趁这个机会我相要深入理解下消息队列 => Message queue 消息队列是干哈的? 主要是为了限流削峰 场景:高并发用户注册。 没有MQ,当高并发请求读写数据库时,系统会创建很多数据库连接。导致连接异常,触发 too many connections,导致业务故障。 使用MQ,并发请求会先写入队列中,系统从MQ中读取消息,依照逻辑逐个处理。 MQ的工作流程 MQ由3个对象组成:生产者、队列、消费者。 我们以 RabbitMQ 为例,常用的有两种工作模式。 简单模式 生产者负责生产消息,将消息发送到队列中,消费者监听队列,队列有消息就进行消费。 工作模式 工作模式与简单模式相同,区别在于可以添加多个消费者。默认的是轮询模式分发消息。有个问题出现了,有的消费者处理的快有的处理的慢,处理的快我们就希望他多处理一点。这个时候怎么办呢? RabbitMQ 有消息确认机制。默认我们给他的是自动确认,但是我们可以自己设置为手动确认。这样就解决了这个问题。 RabbitMQ安装 使用 docker 安装 RabbitMQ,如果需要web界面,应 pull tag 为 rabbitmq:3-management 的安装镜像。 ……未完待续

January 23, 2019