zoukankan      html  css  js  c++  java
  • 消息队列介绍

    1、什么是消息队列?

     

    消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。

     

    消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。

     

    消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,双发进行存取操作,发布者和使用者都不用感知对方的存在。

     

     

     

    2、消息队列优点

     

    1. 屏蔽异构平台的细节:发送方、接收方系统之间不需要了解双方,只需认识消息。
    2. 异步:消息堆积能力;发送方接收方不需同时在线,发送方接收方不需同时扩容(削峰)。(我不需要立即处理完所有的消息,当我空闲我会不断拉去队列中的信息并进行处理)
    3. 解耦:防止引入过多的API给系统的稳定性带来风险;调用方使用不当会给被调用方系统造成压力,被调用方处理不当会降低调用方系统的响应能力。
    4. 复用:一次发送多次消费。(一个微服务改变某个对象,需要同步到多个微服务,只需一次性将更新后的信息放到消息队列,其余微服务自行订阅就好)
    5. 可靠:一次保证消息的传递。如果发送消息时接收者不可用,消息队列会保留消息,直到成功地传递它。
    6. 提供路由:发送者无需与接收者建立连接,双方通过消息队列保证消息能够从发送者路由到接收者,甚至对于本来网络不易互通的两个服务,也可以提供消息路由。

     

    3、消息队列的特点

     

    1、异步性

    将耗时的同步操作,通过以发送消息的方式,进行了异步化处理。减少了同步等待的时间。

    2、松耦合

    消息队列减少了服务之间的耦合性,不同的服务可以通过消息队列进行通信,而不用关心彼此的实现细节,只要定义好消息的格式就行。

    3、分布式

    通过对消费者的横向扩展,降低了消息队列阻塞的风险,以及单个消费者产生单点故障的可能性(当然消息队列本身也可以做成分布式集群)。

    4、可靠性

    消息队列一般会把接收到的消息存储到本地硬盘上(当消息被处理完之后,存储信息根据不同的消息队列实现,有可能将其删除),这样即使应用挂掉或者消息队列本身挂掉,消息也能够重新加载。

  • 相关阅读:
    代码规范圣战
    代码复审结果
    个人工程总结
    第一周个人博客作业
    软工课程总结
    软件工程课程的建议
    大泥球你好~
    第一次会议记录
    软件工程的瀑布, 大泥球, 教堂,集市,和银弹
    vs2013——单元测试&& 性能图
  • 原文地址:https://www.cnblogs.com/AganRun/p/12080559.html
Copyright © 2011-2022 走看看