![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
来自流星
这个作者很懒,什么都没留下…
展开
-
RabbitMQ备份交换器
备份交换器 Alternate-Exchange, 简称 AE 生产者在发送消息时如果不设置mandatory参数,那么消息在未被路由的情况下将会丢失。如果设置了mandatory参数,则需要添加ReturnListener的编程逻辑,生产者的代码变的复杂。 如果不想复杂生产者代码,又不想消息丢失,可以使用备份交换器将未被路由的消息存储在RabbitMQ中...原创 2019-07-08 15:54:14 · 216 阅读 · 0 评论 -
RabbitMQ消息相关概念
消息端要点: 当RabbitMQ队列拥有多个消费者时,队列收到的消息将以轮询的分发方式发送给消费者。每条消息只会发送给订阅列表里的一个消费者。这种方式非常适合扩展,如果负载加重,那么只需要创建更多的消费者来消费处理消息即可。 轮询分发机制也不是那么优雅,默认有n个消费者,那么RabbitMQ会将第m条消息分发给第 m%n(取余的方式)个消费者,RabbitMQ不管...原创 2019-07-11 15:50:41 · 86 阅读 · 0 评论 -
SpringBoot整合RabbitMQ死信队列
声明队列时,指定了死信交换器,存在死信时交由死信交换器转发消息存储到死信队列package com.song.songvue.config.rabbitmq;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframewo...原创 2019-07-15 18:00:13 · 302 阅读 · 0 评论 -
SpringBoot整合RabbitMQ
pom.xml添加以下内容: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>...原创 2019-07-15 16:13:43 · 108 阅读 · 0 评论 -
RabbitMQ发送方确认机制
发送方确认机制: 发送方无法确认消息是否准确到达RabbitMQ,随后我们了解到事务机制可以解决这个问题,但是采用事务机制会严重降低RabbitMQ的消息吞吐量,这里引入一种更轻量级的方式---发行方确认(publisher confirm)机制 生产者将信道设置成confirm(确认)模式,一旦信道进入confirm模式,所有在改信道上发布的消息都会被...原创 2019-07-11 10:26:38 · 1358 阅读 · 1 评论 -
消费端的确认与拒绝
消费端的确认与拒绝: 为了保证消息从队列可靠地到达消费者,RabbitMQ提供了消息确认机制。消费者在订阅队列时,可以指定autoAck参数,参数 autoAck: 为false时,RabbitMQ会等待消费者显示地回复确认信号。 为 true时, RabbitMQ会自动把发送出去的消息置为确认 然后才从内存(或者磁盘)中移除消息(实际上是打上删...原创 2019-07-05 17:17:48 · 444 阅读 · 0 评论 -
RabbitMQ消息相关
持久化消息 :byte[] message = "Song Game".getBytes();// 这条消息的投递模式设置为2,即消息会被持久化(存入磁盘)。channel.basicPublish("source","exKey",MessageProperties.PERSISTENT_TEXT_PLAIN,message);带有Headers消息 : /...原创 2019-07-05 15:56:44 · 113 阅读 · 0 评论 -
RabbitMQ相关使用
判断队列是否存在, 如果指定的队列存在,则正常返回,反之则抛出异常 try { AMQP.Queue.DeclareOk declareOk = channel.queueDeclarePassive(QUEUE_NAME); String queue = declareOk.getQueue(); Sys...原创 2019-07-05 14:35:53 · 1015 阅读 · 1 评论 -
RabbitMQ事务机制
生产者确认机制: 默认情况下发送消息的操作是不会返回任何信息给生产者的,也就是默认情况下生产者是不知道消息有没有正确的到达服务器, 如果在消息到达服务器之前就已经丢失了,持久化操作也解决不了问题。RabbitMQ针对这个问题,提供了两种解决方式: 通过事务机制实现 通过发送方确认(publisher confirm)机制实现 事务机制: Ra...原创 2019-07-10 17:59:36 · 425 阅读 · 0 评论 -
RabbitMQ持久化
持久化: 持久化可以提高RabbitMQ的可靠性,可以防止在异常情况下(重启、关闭、宕机)的情况下数据丢失。 交换器持久化通过声明交换器时将参数durable参数设置为true,如果不设置持久化,那么RabbitMQ服务重启之后,相关的交换器元数据会丢失,不过消息不会丢失。 队列持久化通过声明交换器时将参数durable参数设置为true,队列持久化只能保证队列本身的元数...原创 2019-07-10 17:32:55 · 172 阅读 · 0 评论 -
RabbitMQ RPC
RPC : RPC,是Remote Produce Call简称,即远程过程调用。 它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络 的技术。RPC的主要功能是让构建分布式计算更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 通俗点来说,假设有两台服务器A和B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数或者方法,由于不在同一个内存...原创 2019-07-10 15:53:51 · 214 阅读 · 0 评论 -
RabbitMQ优先级队列
延迟队列: 延迟队列存储的对象是对应的延迟消息,所谓的延迟消息是指当消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定的时间后,消费者才能拿到这个消息进行消费。延迟队列的使用场景: 在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,则对这个订单进行异常处理,这个时候可以使用延迟队列来处理这些订单。 在A...原创 2019-07-10 11:16:04 · 297 阅读 · 0 评论 -
RabbitMQ死信队列
死信队列 DLX, 全称为 Dead-Letter-Exchange,也称之为死信交换器,也有人称为死信邮箱。 当消息在一个队列中变成死信之后,它能被重新的发送到另外一个交换器中,这个交换器就是DLX, 绑定DLX的队列就是死信队列。 DLX也是一个正常的交换器,和其他一般的交换器没有区别,它能在任何队列上被指定。当这个...原创 2019-07-10 09:36:21 · 138 阅读 · 0 评论 -
RabbitMQ 登录管理端
开启支持:root@song-PC:/home/song# rabbitmq-plugins enable rabbitmq_management浏览器输入地址 : http://192.168.10.110:15672/登录成功:原创 2019-07-04 16:45:33 · 10863 阅读 · 1 评论 -
RabbitMQ生产者消费者DEMO
生产者客户端代码package com.song.songvue.config.message;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.clien...原创 2019-07-04 16:14:53 · 390 阅读 · 0 评论 -
RabbitMQ相关概念
RabbitMQ: 概念: RabbitMQ是一个生产者与消费者模型,主要负责接收、存储和转发消息。生产者:Producer: 投递消息的一方。 消息一般包含两个部分: 标签: 用来描述消息,比如交换机名称和路由键。 消息体: 具体消息内容,JOSN格式。消费者 Consumer: 消费者,就是接收消息的一方。消费者连接到RabbitMQ服务器,订阅到队列,在消...原创 2019-07-04 13:08:34 · 154 阅读 · 0 评论 -
RabbitMQ重置(不推荐)
(不推荐)使用reset方式重置rabbitmq即清空掉rabbitmq所有的队列数据和配置(划重点)root@song-PC:/home/song# rabbitmqctl stop_appStopping node 'rabbit@song-PC' ...root@song-PC:/home/song# rabbitmqctl resetResetting node 'rab...原创 2019-07-09 10:41:16 · 3569 阅读 · 1 评论 -
RabbitMQ相关
验证RabbitMQ是否安装成功:sudo rabbitmqctl status查看RabbitMQ集群信息:sudo rabbitmqctl cluster_status添加新用户:rabbitmqctl add_user root 1234567为root用户设置所有权限:root@song-PC:/# rabbitmqctl set_perm...原创 2019-07-03 15:01:18 · 94 阅读 · 0 评论 -
RabbitMQ多租户与权限
每一个RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(virtual host),简称vhost.每一个vhost本质上都是一个独立的小型RabbitMQ服务器,拥有独立的队列,交换器以及绑定关系等,并且拥有独立的权限。vhost就像是虚拟机与物理服务器一样,它们在各个实例之间提供逻辑上的分离。 vhost是绝对隔离的,无法将vhost1中的交换器与vh...原创 2019-07-11 16:08:46 · 790 阅读 · 0 评论