zoukankan      html  css  js  c++  java
  • RabbitMQ

    消息队列(Message Queue)

      消息队列(MQ)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在

    为什么使用消息队列?

      消息队列是一种应用间的异步协作机制。

      以常见的订单系统为例,用户点击【下单】按钮之后的业务逻辑可能包括:扣减库存、生成相应单据、发红包、发短信通知。在业务发展初期这些逻辑可能放在一起同步执行,随着业务的发展订单量增长,需要提升系统服务的性能,这时可以将一些不需要立即生效的操作拆分出来异步执行,比如发放红包、发短信通知等。这种场景下就可以用 MQ ,在下单的主流程(比如扣减库存、生成相应单据)完成之后发送一条消息到 MQ 让主流程快速完结,而由另外的单独线程拉取MQ的消息(或者由 MQ 推送消息),当发现 MQ 中有发红包或发短信之类的消息时,执行相应的业务逻辑。

    RabbitMQ 

      rabbitMQ是一款基于AMQP(高级消息队列协议)的消息中间件,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗

       RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层保存这个数据。

      例如一个日志系统,很容易使用RabbitMQ简化工作量,一个Consumer可以进行消息的正常处理,另一个Consumer负责对消息进行日志记录,只要在程序中指定两个Consumer所监听的queue以相同的方式绑定到同一exchange即可,剩下的消息分发工作由RabbitMQ完成。

    相关博客介绍链接

    相关博客介绍链接

  • 相关阅读:
    document.body.scrollTop or document.documentElement.scrollTop
    获取到body的offsetTop和offsetLeft值
    Web安全学习笔记之一
    angular.js学习笔记之一
    backbone学习笔记一
    IE中的CSS3不完全兼容方案
    c#调用c++库函数
    c++动态库封装及调用(3、windows下动态库调用)
    c++动态库封装及调用(2、windows下动态库创建)
    c++动态库封装及调用(1、动态库介绍)
  • 原文地址:https://www.cnblogs.com/LearningOnline/p/9866662.html
Copyright © 2011-2022 走看看