![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rabbitmq
文章平均质量分 70
null_null_bug
这个作者很懒,什么都没留下…
展开
-
RabbitMQ消息可靠性保证机制3--消费端ACK机制
可以保证数据成功的发送到RabbitMQ,以及持久化机制,然尔这依然无法完全保证整个过程的可靠性,因为如果消息被消费过程中业务处理失败了,但是消息却已经被标记为消费了,如果又没有任何重度机制,那结果基本等于丢消息。由于消息被不断的重新放回队列,而消费者又只有当前这一个,所以,在不断拒收中被放回。从观察到的结果也印证了,反复的被推送,接收的一个过程中,使用命令查看队列的一个消费的情况。通过观察发现,消息已经没有在队列中了,那就是消息已经被丢弃了。在浏览器中访问,同样有66%的概率会被拒绝,仅33%会被确认。原创 2024-01-07 21:28:32 · 1421 阅读 · 0 评论 -
RabbitMQ消息可靠性保证机制2--持久化存储机制
RabbitMQ通过配制queue_index_embed_msgs_below可以根据消息大小决定存储位置,默认queue_index_embed_msgs_below是4096字节(包含消息体、属性及headers),小于该值的消息都存在rabbit_queue_index中。在重启之后,非持久化的消息队列已经没有了,而定义为持久化的消息交换器、队列和消息都还是存在的。这里存在两个队列,一个是持久化的队列, 一个是非持久化的消息队列。在文件内容中,还有检查到发送的数据内容: hello world。原创 2024-01-07 21:26:07 · 647 阅读 · 0 评论 -
RabbitMQ-常用命令
rabbitmq-常用命令使用原创 2023-08-26 16:13:08 · 4541 阅读 · 0 评论 -
RabbitMQ消息可靠性保证机制--发送端确认
RabbitMQ后来引入了一种轻量级的方式,叫发送方确认(publisher confirm)机制,生产者将信息设置成confirm(确认)模式,一旦信道进入了confirm模式,所有在该信道上面发送的消息都会被指派成一个唯一的ID(从1开始),一旦消息被投递到所有匹配的队列之后(如果消息和队列是持久化的,那么消息会在消息持久化后发出),RabbitMQ就会发送一个确认(Basic.Ack)给生产者(包含消息的唯一的ID),这样生产者就知道消息已经正确送达了。原创 2023-09-24 19:52:38 · 321 阅读 · 0 评论 -
SpringBoot整合RabbitMQ
引入SpringBoot的父类</</</</maven的导入</</</</</</</</</</</</</</原创 2023-09-21 20:07:57 · 270 阅读 · 0 评论 -
Spring整合RabbitMQ-注解方式
maven导入</</</</提示:ConnectionFactory有三个实现CachingConnectionFactory 基于channel的缓存模式 最常用是这个。LocalizedQueueConnectionFactory 直接连接某个节点的方式。如果是集群,此种不太适合。SimpleRoutingConnectionFactory 在当前的连接工厂中按查找的KEY获取连接工厂。运行消息的生产者,查看消息发送信息通过检查发现,消息已经成功的发送到了队列运行主程序,检查控制台的输出。原创 2023-09-12 22:09:27 · 718 阅读 · 0 评论 -
Spring整合RabbitMQ-配制文件方式-3-消息拉模式
当启动消费者后,便可获取到发送至队列的消息。经过检查确认,发现消息已经被消费了。至此拉模式的消费者完成。原创 2023-09-05 21:51:28 · 488 阅读 · 0 评论 -
Spring整合RabbitMQ-配制文件方式-2-推模式消费者
除消息外,还提供了Channel这个对象,通过channel可以有更大的灵活性。再观察消息者,便能看到消费者队列中已经收到了发送的消息。这样监听者就会处于监听状态。普通的场景基本够用。在推模式中消息的即时性比拉模式会好。再启动生产者,向队列中发送消息。原创 2023-09-05 21:49:28 · 584 阅读 · 0 评论 -
Spring整合RabbitMQ-配制文件方式-1-消息生产者
Spring-amqp是对AMQP的一些概念的一些抽象,Spring-rabbit是对RabbitMQ操作的封装实现。主要有几个核心类等类完成对Exchange、Queue、Binding的操作,在容器中管理 了类的时候,可以对Exchange、Queue、Binding进行自动声明。类是发送和接收消息的工具类。是消费消息的容器。目前一些比较新的项目会使用基于注解的方式,而比较老的一些项目可能还是基于配制文件的方式。原创 2023-09-05 21:46:05 · 627 阅读 · 0 评论 -
RabbitMQ工作模式-主题模式
top类型的交换器背后原理跟direct类型类似只要队列的bingingkey的值与消息的routingKey的匹配,队列就可以收到该消息。使用topic类型的交换器,队列绑定到交换器、bingingKey时使用通配符,交换器将消息路由转发到具体队列时,会根据消息routingKey模糊匹配,比较灵活。使用topic类型的交换器, routingKey就不能随便写了,它必须是点分单词,单词可以随便写,一般按消息的特征,该点分单词字符串最长255字节。观察可以发现,此队列与消息的绑定已经成功。原创 2023-08-30 21:57:54 · 462 阅读 · 0 评论 -
RabbitMQ工作模式-路由模式
官方文档参考:https://www.rabbitmq.com/tutorials/tutorial-four-python.html。即按日志不同的级别,分发到不同的队列。每个队列只处理自己的对应的级别日志。类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列。完成匹配的情况下消息才会转发到对应的队列中被消费。启动消费者,查看消息通否被正常消费。ERROR的消费者控制台输出。创建WARN级别的消息者。创建ERROR的消费者。创建INFO级的消费者。原创 2023-08-30 21:55:29 · 1112 阅读 · 0 评论 -
RabbitMQ工作模式-发布订阅模式
应该是追加到一个指定的队列,还是追加到多个队列,还是丢弃。每个消费者定义生成一个队列关绑定到同一个Exchange,每个消费者都可以消费完整的消息。在RabbitMQ中,生产者不是将消息直接发送给消息消息队列,实际上生产者根本不知道一个消息被发送到哪个队列。当启动生产者后,可以发现已经产生了3个默认的交换机及队列的绑定关系。交换器很简单,从名称就可以看出来(用风扇吹出去),将所有的收到的消息发给它的知道的所有队列。此样例使用的是临时队列,即消费都实现将自动创建此队列,当消费都退出后,此队列也将自动删除。原创 2023-08-30 21:51:56 · 575 阅读 · 0 评论 -
RabbitMQ工作模式-工作队列
官网关于工作模式的解释地址:https://www.rabbitmq.com/getstarted.html。原创 2023-08-30 21:37:09 · 911 阅读 · 0 评论 -
linux RabbitMQ-3.8.5 安装
当启用rabbitmq_management插件时,自动启动了依赖的rabbitmq_management_agent插件和rabbitmq_web_dispatch。RabbitMQ安装需要依赖:socat和logrotate,logrotate操作系统已经存在了,只需要安装socat就可以了。RabbitMQ的安装首先需要安装Erlang,因为它是基于Erlang的VM运行的。http://<安装RabbitMQ的机器的IP>:15672。至此RabbitMQ的安装就已经完成。登录成功后,可以看到。原创 2023-08-19 15:41:33 · 861 阅读 · 0 评论