消息队列有哪些 消息队列( 八 )


AMQP(advanced message queuing protocol) 是一个提供统一消息服务的应用层标准协议 , 基于此协议的客户端与消息中间件可传递消息 , 并不受客户端/中间件不同产品 , 可以跨语法开发
AMQP是一种协议 , 更准确的说是一种binary wire-level protocol(链接协议),兼容JMS
消息队列(mq)是什么?是生产者先将消息投递一个叫队列的容器中 , 然后再从这个容器中取出消息 , 最后再转发给消费者 。
消息队列是 Microsoft 的消息处理技术 , 它在任何安装 Microsoft Windows 的计算机组合中 , 为任何应用程序提供消息处理和消息队列功能 , 无论这些计算机是否在同一个网络上或者是否同时联机 。
消息队列网络是能够相互间来回发送消息的任何一组计算机 。网络中的不同计算机在确保消息顺利处理的过程中扮演不同的角色 。它们中有些提供路由信息以确定如何发送消息 , 有些保存整个网络的重要信息 , 而有些只是发送和接收消息 。
消息队列的类型介绍:
消息队列目前主要有两种类型:POSIX消息队列以及系统V消息队列 , 系统V消息队列目前被大量使用 。每个消息队列都有一个队列头 , 用结构struct msg_queue来描述 。队列头中包含了该消息队列的大量信息 。包括消息队列键值、用户ID、组ID、消息队列中消息数目等等 。
消息队列就是一个消息的链表 , 可以把消息看作一个记录 , 具有特定的格式以及特定的优先级 。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息 。消息队列是随内核持续的 。
消息队列 - 死信、延迟、重试队列DLQ(Deal Letter Queue) , 死信队列 。当一个消息在队列中变成死信之后 , 他能被重新发送到 DLQ 中 , 与 DLQ 绑定到队列就是死信队列 。
生产者生产一条消息 , 存储到普通队列中;设置队列的过期时间为 10 秒 , 在 10 秒内没有消费者消费消息 , 那么判定消息过期;此时如果设置了死信队列 , 过期消息被丢给死信队列交换机 , 然后被存储在死信队列中 。
顾名思义就是延迟执行消息 , 比如我们可以增加一个队列并设置其超时时间为 10 秒并且不设置任何消费者 , 等到消息超时 , 我们可以将消息放入死信队列 , 让消费者监听这个死信队列就达到了延迟队列的效果 。
重试的消息在延迟的某个时间点(业务可设置)后 , 再次投递给消费者 。而如果一直这样重复消费都持续失败到一定次数 , 就会投递到死信队列 , 最后需要进行人工干预 。

秒懂生活扩展阅读