exchange
,exchange
确定也有存储消息的地方Ack
回执:收到消息后确认消息已经消费的应答exchange
路由交换routeing key
路由键topic
主题一个生产者对应一个消费者node
三个角色git
Producer
Queue
consumer
工做队列(又称任务队列)的主要思想是避免当即执行资源密集型任务,而不得不等待它完成。相反,咱们安排任务在之后完成。咱们将任务封装 为消息并将其发送到队列。在后台运行的工做进程将弹出任务并最终执行做业。当您运行许多工做人员时,任务将在他们之间共享。github
工做队列 方式派发消息的方式的两种方式异步
消息暂存在交换机,队列拿着类型来找交换机要消息code
在pub/sub
的基础上增长了 routeing key
,能够选择性的接收消息cdn
routeing key
字符#
(哈希)能够替代零个或多个单词。*
能够代替一个单词。exchange
类型必须是topic
中间件
RPC
远程调用服务端的方法,使用
MQ
能够实现
RPC
的异步调用,基于
Direct
交换机实现
RPC
请求队列发送RPC
调用消息,同时监听RPC
响应队列RPC
请求队列,收到消息后执行服务端的方法RPC
响应队列noAck = true
自动确认模式 一旦 mq 将消息把消息分配给消费者,就会从内存中删除,若是业务方拿到消息并无处理完,消息会丢失。noAck = false
若是消费者挂了,没有发送回执,那么这条消息就没有被消费,会被其余消费者接收。消费完成必须发送回执,告诉 MQ 已经消费完成,否则会被其余消费者消费到MQ
是存在内存中的,若是它挂了,咱们的消息依然会丢失!! 可是!!RabbitMQ
能够开启持久化