RabbitMQ
文章平均质量分 56
RabbitMQ 学习
搬砖的小农民
这个作者很懒,什么都没留下…
展开
-
RabbitMQ TTL 过期时间 和 死信队列
文章目录TTL 过期时间队列过期时间设置消息过期时间设置死信队列TTL 过期时间TTL是time to live的缩写。也就是生存时间。RabbitMQ支持队列的过期时间, 从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除RabbitMQ支持消息的过期时间, 在消息发送时可以进行指定队列过期时间设置package com.example.rabbitmq.ttl;import com.rabbitmq.client.Channel;import com.rabb原创 2021-02-16 14:42:25 · 679 阅读 · 0 评论 -
RabbitMQ 消费端的ack与重回队列
消费端的ACK与NACKack:成功处理nack:处理失败消费端因为业务异常,我们可以进行日志的记录,然后进行补偿。由于服务器宕机等严重问题,那我们就需要手工ACK,保障消费端消费成功。消费端重回队列:对没有处理成功的消息,会把消息重新递给Broker。一般不使用重回队列。生产者代码:package com.example.rabbitmq.limit;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Co原创 2021-02-16 13:06:56 · 460 阅读 · 0 评论 -
RabbitMQ 消费端限流
假如:RabbitMQ服务器上有上万条未消费的消息,我们随便打开一个消费者客户端,会出现如下情况:巨量的消息推送过来,单个客户端无法同时处理这么多数据。导致服务器挂掉。RabbitMQ 提供了一种qos(服务质量保证)功能,即咋非自动确认消息的前提下,如果一定数目的消息(通过基于consume或者channel设置qos的值)未被确认前,不进行新的消费。( 不能设置自动签收 autoAck为false )关键方法:void BasicQos(unit prefetchSize, ushort pr原创 2021-02-16 12:54:24 · 631 阅读 · 2 评论 -
RabbitMQ 消费端自定义监听
消费端自定义监听创建自定义监听类 MyConsumer,继承 DefaultConsumer。生产者代码:package com.example.rabbitmq.consumer;import com.rabbitmq.client.*;import java.io.IOException;import java.util.concurrent.TimeoutException;/** * 生产者代码 */public class producer { public sta原创 2021-02-16 12:42:22 · 1024 阅读 · 2 评论 -
RabbitMQ confirm 确认消息 和 Return 消息机制
Cofirm消息确认理解Cofirm消息确认的流程解析在channel上开启确认模式:channel.confirmSelect()在channel上添加监听,addConfirmListener,监听成功和失败的返回结果,根据具体的结果对消息进行重新发送,或记录日志等后续处理!代码如下:package com.example.rabbitmq.confirm;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Co原创 2021-02-16 12:13:55 · 438 阅读 · 0 评论 -
RabbitMQ 跟 springBoot 整合,相关组件
RabbitMQ和SpringBoot整合使用的组件列表:RabbitAdmin: RabbitAdmin 可以用来声明exchange,queue,binding。发送消息等操作SpringAMQP 声明 通过@Bean注解方式声明交换机和队列。RabbitTemplate 消息模板 我们在与springAMQP整合的时候进行发送消息的关键类原创 2021-02-15 11:17:29 · 1040 阅读 · 8 评论 -
RabbitMQ Binding(绑定) 和 Message (消息)
Virtual host - 虚拟主机虚拟地址,用于进行逻辑隔离,最上层的消息路由。一个virtual host中可以有若干个Exchange和Queue。不同的virual host中可以有相同名称的exchange和Queue。Binding - 绑定Exchange 和 Exchange,Queue之间的连接关系Bindding中可以包含RoutingKey或者参数Queue - 消息队列消息队列,实际存储消息。Durability:是否持久化,Durable:是,Tran原创 2021-02-09 17:30:16 · 2461 阅读 · 0 评论 -
RabbitMQ Exchange 交换机
Exchange 交换机: 接收消息,并根据路由键转发消息到所绑定的队列。交换机属性属性名称介绍name交换机名称type交换机类型 :direct,topic,fanout,headersDurability是否进行持久化Auto Delete当最后一个绑定到Exchange上的队列删除后,自动删除Internal当前Exchange是否用于RabbitMQ内部使用,默认为False。(大部分不需要)Arguments扩展参数,用户扩.原创 2021-02-09 13:34:44 · 272 阅读 · 0 评论 -
RabbitMQ 创建生产者与消费者
创建生产者步骤创建工厂 connectionFactory获取连接通过connection创建一个channel发布消息4.1. 指定 exchange(交换机)4.2. 指定 routing key(路由规则,路由到哪一个queue)import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import j原创 2021-02-09 12:57:49 · 1219 阅读 · 0 评论 -
RabbitMQ 常用命令行
RabbitMQ 常用命令行原创 2021-02-09 12:47:54 · 884 阅读 · 0 评论 -
RabbitMQ 的安装和启动
安装官网地址:http://www.rabbitmq.com/ 安装前应先安装Erlang。提前准备:安装linux必要的安装包。下载RabbitMQ安装包。修改配置文件。或者使用docker安装。更加简单。修改配置文件。安装后修改配置文件配置文件目录: vi /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/ebin/rabbit.app文件格式是json,rabbitmq_server-3.7.7 为rabbitmq版本号修改 l原创 2021-02-09 12:41:43 · 643 阅读 · 0 评论 -
RabbitMQ 简介
rabbitMQ 简介:开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据。RabbitMq是使用Erlang语言来进行编写。并且RabbitMq基于AMQP协议。RabbitMq高性能的原因:Erlang语言最初是用于交换机领域的架构模式,这使得RabbitMQ在Broker之间进行数据交互的性能是非常优秀的。Erlang语言的优点:Erlang有着和原生Socket一样的延迟。AMQP协议: Advanced Message Queuing Protocol .原创 2021-02-09 11:01:09 · 3061 阅读 · 5 评论