消息队列(MQ)总结

1.简介:消息队列是一种通信方式,是数据发送给需要的一方。消息队列分为消息生产者和消息消费者。消息队列主要用在海量数据操作,避免对海量数据的操作使服务器宕机。

2.原理:

队列是一种数据结构,它的特点是先进先出,先进入的数据在获取时先取出。这和JAVA的栈的数据存储不一样,JAVA的栈的特点是先进后出,先进入的数据获取时后取出。队列像隧道,栈像容器,可以这样记忆。

消息队列就是传递消息的队列。传递消息有消息生产者Producer。消费者Consumer。MQ的服务端,它的作用是把消息从发送端传递到服务端。一个消息被消费了,这个消息就会从消息队列中消失。

点对点消息队列模型:用于消息生产者和消费者之间点对点的通信。消息被发送到队列后,队列保留着消息,可以放在内存中也可以持久化,直到他们被消费或超时。

点对点模式包含三个角色:消息队列(Queue),发送者(Sender),接收者(Receiver)

特点是:

  •  每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)
  •  发送者和接收者之间在时间上没有依赖性
  •  接收者在成功接收消息之后需向队列应答成功

发布订阅消息模型:多个发布者将消息发送到服务端系统,系统将这些消息传递给多个订阅者。

发布订阅模型包含三个角色:主题(Topic), 发布者(Publisher),订阅者(Subscriber)。

特点是:

  •  每个消息可以有多个消费者:和点对点方式不同,发布消息可以被所有订阅者消费
  •  发布者和订阅者之间有时间上的依赖性。
  •  针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息。
  •  为了消费消息,订阅者必须保持运行的状态。

点对点和发布订阅的区别:

  • 生产者发送一条消息到队列,只有一个消费者能收到。
  • 发布者发送到服务端系统的消息,只有订阅了的订阅者才会收到消息。而且可以被所有订阅者消费

3.应用

使用较多的消息队列有 RockerMQ,RabbitMQ,Kafka,ZeroMQ,MetaMQ,应用场景有异步处理,应用解耦,流量削锋、日志处理和消息通讯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值