1,MQ的引入

使用场景,将耗时的通知业务交给消息中间件【业务逻辑进行解耦】

使用消息中间件的逻辑交互

2,MQ的应用场景

首先消息中间件是一个异步处理

有两个关键点:①耗时;②业务的耦合度

案例1:注册某网站会员成功,短信通知成功,这个就可以直接交给消息中间件

案例2:注册某网站会员,需要使用手机验证码,这个就不能使用消息中间件,业务必须使用【原因:消息中间件是异步执行的,可能导致收不到验证码】

3,MQ的消费类型

4,消息中间件类型

redis、ActivityMQ、RocketMQ(nameSrv)【阿里巴巴使用】、Kafka【zookeeper】、RabbitMQ、ZerOMQ

5,ActivityMQ安装与使用

http://activemq.apache.org/components/classic/download/

在浏览器中登录localhost:8161 初始账号:admin,密码:admin

查看端口:8161;消息服务端口:61616

6,MQ点对点通信

7,MQ发布订阅

8,MQ的签收模式

自动签收、手动签收【massage.acknowledge()】、事务签收【session.commit()】、

9,SpringBoot操作ActiveMQ

10,ActiveMQ冥等性

防止信息重复消费

11,注意事项

①消费者代码不要抛出异常,否则activeMQ默认有重试机制;

②如果代码发生异常,需要发布版本才可以解决问题,不要使用重试机制,采用日志记录方式,定时Job进行补偿;

③如果不需要发布版本解决的问题,可以采用重试机制进行补偿。

参考链接:https://www.bilibili.com/video/av45541255/?p=11

ActivityMQ消息中间件【待完成】的更多相关文章

  1. Windows环境下消息中间件RabbitMq的搭建与应用

    前言 消息中间件目前已经在很多大型的项目上得到了运用,我们常见的有 RabbitMq, activitymq,kafka,rocketmq,其中rocketmq是阿里自己在kafka的基础上用java ...

  2. ActivityMq的使用(小例子)

    一.ActivityMq的介绍: 1.什么是消息中间件?与传统的传输通讯有什么区别? 异步,无需等待,消息存放在队列里面. 2.为什么要使用消息中间件? 消息中间件可以解决高并发. 两种通讯方式:01 ...

  3. Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能-转自阿里中间件

    引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. ...

  4. 消息中间件MetaQ高性能原因分析-转自阿里中间件

    简介 MetaQ是一款高性能的消息中间件,经过几年的发展,已经非常成熟稳定,历经多年双11的零点峰值压测,表现堪称完美. MetaQ当前最新最稳定的稳本是3.x系统,MetaQ 3.x重新设计和实现, ...

  5. 阿里开源消息中间件RocketMQ的前世今生-转自阿里中间件

    昨天,我们将分布式消息中间件RocketMQ捐赠给了开源软件基金会Apache. 孵化成功后,RocketMQ或将成为国内首个互联网中间件在Apache上的顶级项目. 消息一出,本以为群众的反应是这样 ...

  6. 消息中间件:RabbitMQ基本探索

    RabbitMQ是一个基于AMQP协议(Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中 ...

  7. kafka与传统的消息中间件对比

    RabbitMQ和kafka从几个角度简单的对比 业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比, 在应用场景方面, Rabbi ...

  8. C++ 消息中间件(MQ4CPP)

    MQ4CPP支持: MultiThreading Sockets Cluster Encription Compression Service lookup Message routing 看到MQ4 ...

  9. 消息中间件与JMS标准

    初识消息中间件 维基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on ...

随机推荐

  1. AI案例

    https://www.bilibili.com/read/cv830627     到底什么是人工智能?人工智能能做什么?这是大家最关心的问题,但说到真正能够理解的话,还是只小部分专业人士.这篇文章 ...

  2. IIS URL Rewriting and ASP.NET Routing

    IIS URL Rewriting and ASP.NET Routing With the release of the URL Rewrite Module for IIS and the inc ...

  3. C++ private,public,protected 关键字

    第一: private,public,protected的访问范围:   private: 只能由该类中的函数.其友元函数访问,不能被任何其他访问,该类的对象也不能访问. protected: 可以被 ...

  4. 动画之Evaluator

    Evaluator就是通过监听器拿到当前动画对对应的具体数值,作用在于从插值器返回的数值进行转换成对应的数值.简单来说就是转换器 Evaluator返回值的类型更加动画中值决定的,所以在使用的时候注意 ...

  5. 自定义控件之canvas变换和裁剪

    1.平移 //构造两个画笔,一个红色,一个绿色 Paint paint_green = generatePaint(Color.GREEN, Paint.Style.STROKE, 3); Paint ...

  6. QSplitter的使用案例

    #include <QApplication> #include <QSplitter> #include <QTextEdit> #include <QTe ...

  7. Qt 自定义信号SIGNAL

    emit toLine(lineQStr);connect(vcthread, SIGNAL(toLine(QString)), this, SLOT(appendText(QString)));

  8. IDEA新建本地项目关联远程git仓库

    现在远程git仓库创建一个repository,然后本地创建项目,最后进行关联.三板斧,打完收工. 第一步.第二步地球人都知道,略过不表,第三步比较关键,举个例子: 0.创建本地Git仓库:VCS - ...

  9. ES6深入浅出-1 新版变量声明:let 和 const-3.视频 相关面试题

    执行顺序问题 请问console.log输出的值是多少 输出的肯定是1 假如这里有一行未知的代码 会打印出几? 如果这段未知的代码是a=2.那么其实console输出的就是2 只关心代码,没有关心代码 ...

  10. JAVA8 JVM内存结构变了,永久代到元空间

    在文章<JVM之内存结构详解>中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化.作为面试官如果你还不知道,那么面试过程中是不是有些露怯? ...