ActivityMQ消息中间件【待完成】
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消息中间件【待完成】的更多相关文章
- Windows环境下消息中间件RabbitMq的搭建与应用
前言 消息中间件目前已经在很多大型的项目上得到了运用,我们常见的有 RabbitMq, activitymq,kafka,rocketmq,其中rocketmq是阿里自己在kafka的基础上用java ...
- ActivityMq的使用(小例子)
一.ActivityMq的介绍: 1.什么是消息中间件?与传统的传输通讯有什么区别? 异步,无需等待,消息存放在队列里面. 2.为什么要使用消息中间件? 消息中间件可以解决高并发. 两种通讯方式:01 ...
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能-转自阿里中间件
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. ...
- 消息中间件MetaQ高性能原因分析-转自阿里中间件
简介 MetaQ是一款高性能的消息中间件,经过几年的发展,已经非常成熟稳定,历经多年双11的零点峰值压测,表现堪称完美. MetaQ当前最新最稳定的稳本是3.x系统,MetaQ 3.x重新设计和实现, ...
- 阿里开源消息中间件RocketMQ的前世今生-转自阿里中间件
昨天,我们将分布式消息中间件RocketMQ捐赠给了开源软件基金会Apache. 孵化成功后,RocketMQ或将成为国内首个互联网中间件在Apache上的顶级项目. 消息一出,本以为群众的反应是这样 ...
- 消息中间件:RabbitMQ基本探索
RabbitMQ是一个基于AMQP协议(Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中 ...
- kafka与传统的消息中间件对比
RabbitMQ和kafka从几个角度简单的对比 业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比, 在应用场景方面, Rabbi ...
- C++ 消息中间件(MQ4CPP)
MQ4CPP支持: MultiThreading Sockets Cluster Encription Compression Service lookup Message routing 看到MQ4 ...
- 消息中间件与JMS标准
初识消息中间件 维基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on ...
随机推荐
- Webpack中的sourcemap以及如何在生产和开发环境中合理的设置
一 . 从Sourcemap和Data URL说起 (1)什么是Sourcemap? 我们在打包中,将开发环境中源代码经过压缩,去空格,babel编译转化,最终可以得到适用于生产环境的项目代码,这样处 ...
- python __iter__ 迭代器
1. 迭代器是什么? 迭代器是一个对象,是python非常强大的特性 根本上说, 迭代器就是有一个 next() 方法的对象, 而不是通过索引来计数. 当你或是一个循环机制(例如 for 语句)需要下 ...
- [webpack]解决报错 CleanWebpackPlugin is not a constructor
错误写法 const CleanWebpackPlugin = require("clean-webpack-plugin"); 正确写法: let {CleanWebpackPl ...
- NetHogs监控Linux的每个进程流量
在日常运维环境中,我们肯定会遇到以下这种需求: 1.网络流量异常,不知道是哪个程序的流量爆涨? 2.日常需要监控网络实时的流量进去数据 面试装逼系列|这篇文章,让运维监控不再成为你的短板! 学会这 1 ...
- 【转载】 AutoML总结
原文地址: https://jinxin0924.github.io/2017/12/21/AutoML%E6%80%BB%E7%BB%93/ Posted by JxKing on December ...
- QSplitter的使用案例
#include <QApplication> #include <QSplitter> #include <QTextEdit> #include <QTe ...
- 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_06-用户认证-认证服务查询数据库-Bcrypt介绍
演示MD5加密的方式 数据库内的数据密码虽然都是6个1但是 每次加密出来的字符串是不一样的 加盐 测试BCrpty 循环10次加密 密码的校验 比人工的加盐要方便的多 这是创建的一个Spring的Be ...
- iReport报表生成html,pdf,xls,word工具类
package com.report; import java.io.ByteArrayOutputStream;import java.io.File;import java.io.InputStr ...
- 【418】C语言ADT实现Quack(stack+queue)
quack.h #include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct ...
- iOS-常见问题(错误和警告)
1.storyboard连线问题 产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性. 解决:取消关联就没事了. 2.XXXXX ...