
RabbiMQ实战
介绍rabbitMQ的使用方法
kongfanyu
这个作者很懒,什么都没留下…
展开
-
SpringBoot中使用 RabbitMQ
本章主要建立在已经安装好Erlang以及RabbitMQ的基础上,接下来,简单介绍一下使用一、Direct直接模式通过routingKey和exchange决定的那个唯一的queue可以接收消息1、首先到RabbitMQ的管理界面新建一个队列(Direct模式)2、测试项目的基础结构如下:这里为了方便测试,直接在父项目中建立两个子模块(生产者和消费者)3、pom.xml文件的依赖如下:父项目:<?xml version="1.0" encoding="UTF-8"?>&l原创 2020-11-15 23:33:57 · 9680 阅读 · 2 评论 -
RabbitMQ如何保证消息的可靠投递?
Spring Boot整合RabbitMQSpring有三种配置方式基于XML基于JavaConfig基于注解当然现在已经很少使用XML来做配置了,只介绍一下用JavaConfig和注解的配置方式RabbitMQ整合Spring Boot,我们只需要增加对应的starter即可 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b原创 2020-11-15 23:22:10 · 271 阅读 · 0 评论 -
10. RabbitMQ 应用与面试
10.1. 消息堆积当消息生产的速度长时间,远远大于消费的速度时。就会造成消息堆积。消息堆积的影响可能导致新消息无法进入队列可能导致旧消息无法丢失消息等待消费的时间过长,超出了业务容忍范围。产生堆积的情况生产者突然大量发布消息消费者消费失败消费者出现性能瓶颈。消费者挂掉解决办法排查消费者的消费性能瓶颈增加消费者的多线程处理部署增加多个消费者场景介绍在用户登录成功之后,会向rabbitmq发送一个登录成功的消息。这个消息可以被多类业务订阅。登录成原创 2020-11-15 23:19:13 · 185 阅读 · 0 评论 -
9. RabbitMQ高可用集群
9.1. RabbitMQ集群架构模式主备模式用来实现RabbitMQ的高可用集群,一般是在并发和数据不是特别多的时候使用,当主节点挂掉以后会从备份节点中选择一个节点出来作为主节点对外提供服务。远程模式主要用来实现双活,简称为Shovel模式,所谓的Shovel模式就是让我们可以把消息复制到不同的数据中心,让两个跨地域的集群互联。镜像队列模式镜像队列也被称为Mirror队列,主要是用来保证mq消息的可靠性的,他通过消息复制的方式能够保证我们的消息100%不丢失,同时该集群模式也是原创 2020-11-15 23:08:38 · 410 阅读 · 0 评论 -
8. RabbitMQ 集群
RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的。在实际使用过程中多采取多机多实例部署方式,为了便于同学们练习搭建,有时候你不得不在一原创 2020-11-15 22:58:56 · 358 阅读 · 0 评论 -
7. RabbitMQ 高级
7.1. 过期时间TTL 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。第二种方法是对消息进行单独设置,每条消息TTL可以不同。如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为dead message被投递到死信队列,原创 2020-11-13 19:28:36 · 265 阅读 · 0 评论 -
6. Spring Boot整合RabbitMQ
6.1. 简介在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQ https://github.com/spring-projects/spring-amqp尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。一般在开发过程中:生产者工程:application.yml文件配置RabbitMQ相关信息;在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定注入Rab原创 2020-11-13 19:15:38 · 130 阅读 · 0 评论 -
5. RabbitMQ工作模式
5.1. Work queues工作队列模式5.1.1. 模式说明Work Queues与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。5.1.2. 代码WorkQueues与入门程序的简单模式的代码是几乎一样的;可以完全复制,并复制多一个消费者进行多个消费者同时消费消息的测试。1)生产者package com.kongfanyu.rabbitmq.work;import com原创 2020-11-12 10:56:42 · 434 阅读 · 2 评论 -
1. 消息中间件概述
1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ 在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中介,生产方通过MQ与消原创 2020-11-12 10:52:24 · 452 阅读 · 0 评论