关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

消息队列的功能特点

发布时间:2023-06-26 14:00:25

消息队列的功能特点

消息队列的核心

  • 消息:指传递的数据
  • 队列:指存储消息的数据结构,管理着消息的进入和退出
  • 一个基础的消息队列是这样的:
    • Broker(消息处理中心):负责消息的接受、存储、转发
    • Producer(生产者):消息生产者,产生消息,推送给Broker
    • Consumer(消费者):从Broker获取消息,并进行一定的处理

说完消息队列的基础模型,接下来就得说说消息队列所存在的问题,以及解决方案

消息堆积

  • 消息堆积是指Consumer消费消息的速度赶不上Producer生产消息的速度,进一步导致系统的Broker的资源积压无法释放。
    • 解决方案一般分为当Broker积压到达阈值时,直接拒绝;不在进入处理中心,防止系统资源耗尽,导致消息队列不可用。
    • 当然,如果消息队列对消息的可靠性有要求不能直接拒绝,可以采用备用的消息队列提升处理的性能。

消息持久化

  • 消息持久化是指对消息进行物理存储,防止在服务宕机的情况下,消息丢失的情况,常用的策略有磁盘,数据库,分布式文件系统

可靠投递

  • 可靠投递是指,不允许发生消息丢失的情况
  • 消息丢失可能发生在如下时间:
    • Producer->Broker(超时重发,ACK确认,如TCP)
    • Broker->Consumer(Consumer执行完message后,手动commit;参考数据库事务)
    • Broker对消息的持久化(提高刷盘的频率)

消息重复

  • 为了解决消息的可靠投递,会使用重发机制;有可能导致消息重复消费(消息在持久化时,对消息进行唯一值判断;或者进行SET集合修正数据)

严格有序

  • 消息队列中的消息既然是存储在队列中,则自然消息是严格有序的

/template/Home/leiyu/PC/Static