首页 > 其他分享 >MQ 消息队列

MQ 消息队列

时间:2022-10-30 16:00:23浏览次数:39  
标签:异步 队列 业务 MQ 消息 从属

1、MQ

MQ(Message Queue)消息队列, FIFO 数据结构。

  • 角色

    1. 生产者:产生数据(消息)并放入队列。
    2. 存储信息:即消息的队列。
    3. 消费者:两种获取信息的方式
      • :到指定队列拉取消息。
      • :订阅相应的队列,由MQ服务端给其推送消息。
  • 不同 MQ 对比

    Active MQ Rabbit MQ Kafka Rocket MQ
    发布订阅
    轮询分发
    公平分发
    重发
    消息拉取

2、作用

作用:解决应用解耦,异步消息,流量削锋等问题。

实现高性能,高可用,可伸缩和最终一致性架构。

  1. 解耦:一个业务需要多个模块共同实现,或者一条消息有多个系统需要对应处理。
    1. 主业务执行结束后发送一条 MQ。
    2. 其余模块消费 MQ 消息,即可实现业务。
    3. 降低模块之间的耦合。
  2. 异步:业务分为需要即时处理的主业务,可后台执行的从属业务。
    1. 主业务执行结束后发送一条 MQ。
    2. 从属业务消费 MQ 信息,异步执行。
    3. 减低业务的响应时间,提高用户体验。
  3. 削峰:高并发情况下,业务异步处理,提供高峰期业务处理能力,避免系统瘫痪。

3、缺点

  1. 系统可用性降低:依赖服务越多,服务越容易挂掉。需要考虑MQ瘫痪的情况
  2. 系统复杂性提高:需要考虑消息丢失、消息重复消费、消息传递的顺序性。
  3. 业务一致性:主业务和从属业务需要考虑一致性的处理。

标签:异步,队列,业务,MQ,消息,从属
From: https://www.cnblogs.com/secretmrj/p/16841453.html

相关文章

  • Go 容器之队列的几种实现方式
    1队列的概念队列是有序集合,遵循FIFO(Firstinfirstout,即先进先出)排队方法的容器。添加操作发生在队列的尾部,移除操作则发生在头部。新元素从尾部进入队列,然后一直向前移......
  • rmq板子
    typedeflonglongLL;constexprinlineintlg2(LLx){returnsizeof(LL)*8-1-__builtin_clzll(x);}template<typenameT,size_tN,size_tK>structRangeQ......
  • SQL Server推送数据到MQ字段丢失的生产问题排查
    背景从SQLServer推数据到MQ。SQL查询语句(省略若干查询字段):selectCallStartDt,SeqNum,CallId,Service_Id,UMIDfromCallDetailwhereCallInsertDt>=CONVERT(varchar(10),......
  • 数据结构之环形队列
    概述队列是一种具有先进先出(FIFO)的数据类型,可以使用多种数据结构来实现队列:数组和链表。简单队列的应用场景比较有限,于是那些牛人们就发明一些复杂的队列:环形队列双端队列优......
  • zookeeper+ActiveMQ集群启动后无法访问
    zookeeper和ActiveMQ进程都在,但是MQ无法使用,也不能访问MQ的管理页面,其实还是没真正的启动。删除leveldb文件夹才行。将全部节点的./apache-activemq/data/leveldb文件夹删......
  • 腾讯云~基于zookeeper(集群)+LevelDB的ActiveMq高可用伪集群安装、配置、测试
    文章目录​​一、预先准备​​​​1.技术选型​​​​2.zk集群搭建​​​​3.MQ集群规划​​​​二、预先准备​​​​2.1.MQ下载​​​​2.2.解压​​​​2.3.复制3......
  • Eclipse 给 Java 应用创建 Run configuration 时找不到 main type 的错误消息
    我在Eclipse里选中com文件夹下选中一个.java文件,这个Java文件实现了​​publicstaticvoidmain(String[]args)​​方法,我想作为一个Java应用直接运行它。选......
  • HM-RocketMQ1.3【RocketMQ集群搭建】
    1集群中各角色介绍Producer:消息的发送者;举例:发信者Consumer:消息接收者;举例:收信者Broker:暂存和传输消息;举例:邮局一个Broker主节点可以配备多个Broker从节点主节点......
  • .Net Core&RabbitMQ限制循环消费
    前言当消费者端接收消息处理业务时,如果出现异常或是拒收消息将消息又变更为等待投递再次推送给消费者,这样一来,则形成循环的条件。循环场景生产者发送100条消息到Rabbit......
  • RabbitMQ 进阶 -- 阿里云服务器部署RabbitMQ集群
    一、为什么要搭建RabbitMQ集群?未部署集群的缺点如果RabbitMQ集群只有一个broker节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致message的丢失(尤其是在非......