开门见山(文末附有消息队列的几个基本概念) 1.直接模式( Direct)模式 直白的说就是一对一,生产者对应唯一的消费者(当然同一个消费者可以开启多个服务). 虽然使用了自带的交换器(Exchange),但使用的是默认的“”空字符串交换器, 也相当于直接跨过交换器到达消息队列,也是称为直接模式的原因(猜的) 生产者代码: @Autowired private RabbitTemplate rabbitTemplate; /* 普通模式: */ @Test public void SendMag…
MQ全程(Message Queue)又名消息队列,是一种异步通讯的中间件.可以理解为邮局,发送者将消息投递到邮局,然后邮局帮我们发送给具体的接收者,具体发送过程和时间与我们无关,常见的MQ又kafka.activemq.zeromq.rabbitmq等等. RabbitMQ RabbitMQ是一个遵循AMQP协议,由面向高并发的erlang语言开发而成,用在实时的对可靠性要求比较高的消息传递上,支持多种语言客户端,支持延迟队列. 基础概念 Broker:消息队列的服务器实体 Exchange:…
延迟消息就是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费. 延迟队列 订单业务: 在电商/点餐中,都有下单后30分钟内没有付款,就自动取消订单. 短信通知:下单成功后60s之后给用户发送短信通知. 失败重试:业务操作失败后,间隔一定的时间进行失败重试. 这类业务的特点就是:非实时的,需要延迟处理,需要进行失败重试.一种比较笨的方法是采用定时任务,轮训数据库,方法简单好用,但性能低下,在高并发情况下容易弄死数据库,间隔时间不好设置,时间过大,影响…
RabbitMQ 是流行的开源消息队列系统,是 AMQP(Advanced Message Queuing Protocol 高级消息队列协议)的标准实现,用 erlang 语言开发.RabbitMQ 具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用. 一.安装 erlang // 下载 rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.…
Kafka 来源 Kafka的前身是由LinkedIn开源的一款产品,2011年初开始开源,加入了 Apache 基金会,2012年从 Apache Incubator 毕业变成了 Apache 顶级开源项目.同时LinkedIn还有许多著名的开源产品.如: 分布式数据同步系统Databus 高性能计算引擎Cubert Java异步处理框架ParSeq Kafka流处理平台 Kafka 介绍 Kafka 用于构建实时数据管道和流应用程序.它具有水平可扩展性,容错性,快速性,并在数千家公司的生产环…
一,thymeleaf模板中insert/include/replace三种引用fragment方式的区别 insert: 把整个fragment(包括fragment的节点tag)插入到当前节点内部, replace:用fragment(包括fragment的节点tag)替换掉当前节点 include:把fragment的内容(不包括fragment的节点)插入到当前节点内容 文字描述还是不够直观, 看代码的测试更容易了解三者的区别 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https…
package com.loan.msg.config; import com.loan.msg.service.MessageReceiver; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectio…
前言 前面学习了 RabbitMQ 基础,现在主要记录下学习 Spring Boot 整合 RabbitMQ ,调用它的 API ,以及中间使用的相关功能的记录. 相关的可以去我的博客/RabbitMQ 正文 我这里测试都是使用的是 topic 交换器,Spring Boot 2.0.0, jdk 1.8 配置 Spring Boot 版本 2.0.0 在 pom.xml 文件中引入 AMQP 的依赖 <dependency> <groupId>org.springframewor…
附上消息队列中间件百度网盘连接: 链接: https://pan.baidu.com/s/1FFZQ5w17e1TlLDSF7yhzmA 密码: hr63…
一.消息中间件的应用场景 异步处理 场景:用户注册,信息写入数据库后,需要给用户发送注册成功的邮件,再发送注册成功的邮件. 1.同步调用:注册成功后,顺序执行发送邮件方法,发送短信方法,最后响应用户 2.并行调用:注册成功后,用多线程的方式并发执行发邮件和发短信方法,最后响应用户 3.消息队列:注册成功后,将要发送的消息用很短的时间写入消息队列中,之后响应用户:发送邮件的服务和发送短息的服务就可以从消息队列中异步读去,然后发送任务. 应用解耦 场景:购物下单后,调用库存系统,更新库存. 1.耦合…