随笔分类 -  RabbitMQ

摘要:MQ 分两种类型: * 流程类:关注消费结果 * 在生产者发送消息体中,需要申明结果回调的队列相关信息 * 需要有消费补偿机制 * 超时未消费,重新发送 * 尝试次数限制,超过指定次数需要人工介入 * 通知类:不关注消费结果 阅读全文
posted @ 2020-08-26 16:32 MarkLogZhu 阅读(176) 评论(0) 推荐(0)
摘要:RabbitMQ 默认采用轮询的方式分发消息,当一个消息需要有多个消费者都消费时,需要创建多个队列实现,示例如下: @Component public class SimpleConsume { @RabbitListener( bindings = @QueueBinding( value = @ 阅读全文
posted @ 2020-08-26 14:02 MarkLogZhu 阅读(964) 评论(0) 推荐(0)
摘要:2.1 创建表结构 CREATE TABLE `infrastructure_mq_producer` ( `message_id` bigint(20) NOT NULL COMMENT '消息标识', `content_id` bigint(20) NOT NULL COMMENT '消息内容i 阅读全文
posted @ 2020-07-15 14:52 MarkLogZhu 阅读(203) 评论(0) 推荐(0)
摘要:SpringBoot 是在 Spring AMQP 上面再次封装了一层,不需要再像 Spring AMQP 一样注入各个组件 Bean, 只需要在配置文件上配置好 RabbitMQ 属性,SpringBoot 就可以自动注入了。 而使用 @RabbitListener 注解可以轻松实现消费端事件监听 阅读全文
posted @ 2020-07-13 09:59 MarkLogZhu 阅读(671) 评论(0) 推荐(0)
摘要:之前我们使用 RabbitMQ 原生的 API 方法来实现MQ的使用,Spring 也提供了 RabbitMQ 的集成,让我们更方便的使用MQ,让我们来学习下吧。 Spring AMQP 是基于 Spring 框架的 AMQP 消息解决方案,提供模板化的发送和接收消息的抽象层,提供基于消息驱动的 P 阅读全文
posted @ 2020-07-09 15:09 MarkLogZhu 阅读(317) 评论(0) 推荐(0)
摘要:消息限流处理 如果 RabbitMQ 一次性将所有消息都发送给消费端,有很大几率会导致消费端崩掉,所以需要进行限流操作。让 RabbitMQ 每次最多发送指定数量的消息,一般情况下都设置数量为1。 通过调用 channel.basicQos(0, 1, false); 方法实现限流 实例 publi 阅读全文
posted @ 2020-07-08 17:04 MarkLogZhu 阅读(537) 评论(0) 推荐(0)
摘要:在项目中,有时候需要消息保障100%投递,我们来看下 RabbitMQ 是怎么支持的 一、RabbitMQ 持久化配置 1.1 交换机持久化配置 设置 durable 属性为 true。 实例: String exchangeType = "topic"; String exchangeName = 阅读全文
posted @ 2020-07-08 16:46 MarkLogZhu 阅读(1290) 评论(0) 推荐(0)
摘要:Message (消息) 是指服务器和应用程序之间传输的数据,它由 Properties 和 Payload (Body) 组成。 一、消息属性 1.1 消息常用属性 属性名称 属性含义 Delivery mode 是否持久化,1:Non-persistent,2:Persistent header 阅读全文
posted @ 2020-07-08 09:45 MarkLogZhu 阅读(199) 评论(0) 推荐(0)
摘要:一、交换机 1.1 作用 Exchange(交换机) 的作用就是接收消息并根据路由键转发消息到绑定的队列。 1.2 交换机常用属性 属性 含义 Name 交换机名称 Type 交换机类型,direct、topic、fanout、headers等,它们本质都一样,只是消息转发的逻辑不同 Durabil 阅读全文
posted @ 2020-07-07 14:44 MarkLogZhu 阅读(366) 评论(0) 推荐(0)
摘要:一、入门实例 1)引入依赖 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.6.5</version> </dependency> 2)创建消费者 public 阅读全文
posted @ 2020-07-07 09:51 MarkLogZhu 阅读(264) 评论(0) 推荐(0)
摘要:一、环境配置 1.1 安装相关依赖包 安装 gcc 依赖 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel 阅读全文
posted @ 2020-07-07 09:47 MarkLogZhu 阅读(186) 评论(0) 推荐(0)
摘要:RabbitMQ 是一个由 erlang 语言开发的实现 AMQP(Advanved Message Queue) 协议的开源MQ。 一、AMPQ 协议 AMQP 是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并且不受客户端/中间件不同产品,不同开发语言等条件的限 阅读全文
posted @ 2020-07-07 09:45 MarkLogZhu 阅读(149) 评论(0) 推荐(0)