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

    队列(Queue)又称先进先出表(First In First Out),即先进入队列的元素,先从队列中取出。加入元素的一头叫“队头”,取出元素的一头叫“队尾”。利用消息队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。

    “消息队列”是在消息的传输过程中保存消息的容器。

    消息队列,顾名思义 首先是个队列。队列的操作有入队出队

    也就是你有一个程序在产生内容然后入队(生产者),另一个程序读取内容,内容出队(消费者);

    当你不需要立即获得结果,但是并发量又不能无限大的时候,差不多就是你需要使用消息队列的时候。比如你写日志,因为可能一个客户端有多个操作去写,又有很多个客户端,显然并发不能无穷大,于是你就需要把写日志的请求放入到消息队列里,在消费者那边依次把队列中产生的日志写到数据库里。

    技术都是解决问题的,消息队列解决的是将突发大量请求转换为后端能承受的队列请求,比如你的服务器一秒能处理100个订单,但秒杀活动1秒进来1000个订单,持续10秒,在后端能力无法增加的情况下,你可以用消息队列将总共10000个请求压在队列里,后台consumer按原有能力处理,100秒后处理完所有请求(而不是直接宕机丢失订单数据)

    通俗的说,就是一个容器,你把消息丢进去,不需要立即处理。然后有个程序去从你的容器里面把消息一条条读出来处理。
    消息队列,可以是activeMQ,kafka之类的,也可以是数据库的一张任务表。

    个人觉得消息队列,主要有两个作用:

    1. 降低耦合
    2. 消息可以暂时存在在消息队列中,等待消息接收者根据自身的负载处理能力控制处理消息的处理速度,减小在大并发访问时候的压力。
  • 相关阅读:
    SQL Server连接Oracle详细步骤
    SQLServer2012连接mysql5.5
    SQL Server的链接服务器技术
    2键盘录入Scanner
    1标识符
    电脑从新分盘(软件)
    Tomcat安装配置
    windows下安装和配置多个版本的JDK
    Myeclipse2014的安装
    Could not find acceptable representation
  • 原文地址:https://www.cnblogs.com/zhuwenlubin/p/5149282.html
Copyright © 2011-2022 走看看