RabbitMQ初学自学笔记
1、 为什么学习消息队列,首要学习rabbitMQ?
消息可靠性高、支持多种编程语言、支持集群化、高可用部署架构
2、 什么是高可用?
就是系统一年停机的总时长,百度就是行业典范
要做到到可用,就要在系统架构中的每一层做到适当冗余,保证宕机后,不影响继续交易
3、 我的问题
为什么自己搭建了mq的demo,还是理解不了其中的道理?
为什么行内的架构中,会要求配置交换机等信息?
怎样才算真正意义上的学会了消息队列?
学习过程中的问题
什么是AMDQ协议?
什么是AMQP?
什么是OS?
由exchange、queue、routingKey三个才能决定一个从exchange到queue的唯一线路
exchange:消息交换机,指定消息按照什么规则,路由到哪个队列
queue:消息队列载体,每个消息都会被投入到一个或多个队列
routingKey:路由关键字,exchange根据这个关键字进行消息投递
queue(队列)是rabbitMQ的内部对象,用于存储信息,rabbitMQ中的消息只能存储在queue中
实际应用中,可能会出现消费者拿到消息之后,并没有处理完就宕机,那么此时需要消费者发送一个回执消息,rabbitMQ收到回执消息之后,再将消息从队列中删除
exchage:生产者实际上是将消息发送到交换机,由交换机将消息路由到一个或者多个queue中,或者丢弃
binding
rabbitMQ通过binding将exchange与queue关联起来,这样rabbitMQ就知道如何将消息正确地路由到指定的queue
bindingKey
在绑定exchange和queue的时候,需要指定bindingKey
bindingKey通常依赖exchangeType才会生效