
[RabbitMQ]
RabbitMQ
我能在河边钓一整天的鱼
欢迎来到我的酒馆
展开
-
RabbitMQ的事务机制
RabbitMQ基于AMQP协议。该协议实现了事务机制。其事务主要由三部分组成txSelect:用户将当前的channel设置为transaction模式txCommit:用于提交事务txRollback:用于回滚事务生产者代码演示public class TxSend { private static final String QUEUE_NAME = "test_queue_tx"; public static void main(String[] ar...原创 2020-09-12 16:41:35 · 724 阅读 · 0 评论 -
RabbitMQ如何保证有序消费消息?如何防止消息被重复消费?
目录有序消费消息防止消息被重复消费有序消费消息造成消息乱序消费的原因有两种情况一:情况二如何保证消息有序被消费情况一:情况二:防止消息被重复消费消息被重复消费的原因造成消费被重复消费的原因来源于我们之前为了防止消息在消费者端丢失,采用的手动回复MQ的解决方案。如果消费者处理消息成功,手动向MQ回复消息时,网络不稳定,无法回复MQ消费完毕。此时MQ因为收不到消费者的回复而仍然把这条消息保存到MQ中,并...原创 2020-07-07 15:39:28 · 4914 阅读 · 5 评论 -
如何解决RabbitMQ的消息堆积与消息丢失
目录消息堆积消息丢失消息堆积消息堆积的本质当消息生产速度远远大于消息消费的速度,就会造成消息堆积。消息堆积的后果新消息无法进入队列、旧消息无法丢失、消息等待消费时间过长以至于超出了业务容忍范围。消息堆积的原因生产者突然大量发布消息、消费者消费失败、消费者出现性能瓶颈、消费者直接挂掉了如何解决消息堆积1.排查消费者的消费性能瓶颈2.增加消费者的多线程处理3.部署增加多个消费者4.新增消息队列,可以想办法把消息按顺序的转移...原创 2020-07-07 15:16:35 · 2725 阅读 · 1 评论 -
RabbitMQ的集群监控的方式
目录前言启动插件tracing监控Zabbix监控自定义监控信息前言监控RabbitMQ有四种方式:启动插件、查看Track日志、自定义监控信息、使用第三方组件如Zabbix启动插件这种办法用的很少,注意是自带的插件监控的粒度不够rabbitmq-plugins enable rabbitmq_managementtracing监控之前有提到https://blog.youkuaiyun.com/Deli...原创 2020-07-07 11:24:19 · 862 阅读 · 1 评论 -
RabbitMQ的集群架构
前言RabbitMQ的集群架构分两种:一种叫普通集群(副本集群)、另一种叫镜像集群举个例子:普通集群中消息存储在1个机器上称为主节点,其他的从节点里保留着主节点的链接,也就是说一切正常情况下,你从哪个机器上消费都可以,但一旦主节点宕机,你便无法再进行消费。而镜像集群真正做到了既可以在主节点中读消息,又可以再从节点中读消息。消息进行了复制备份,主节点宕机也没关系。普通集群(副本集群)从节点相当于主节点的链接,所有从节点收到的请求,真实转向的都是主节点。...原创 2020-06-26 09:55:04 · 523 阅读 · 0 评论 -
RabbitMQ之Topic模式实战
目录需求分析生产者发送消息1.引入依赖2.配置文件3.改造GoodsService消费者接受消息测试需求分析以微服务项目举例。item-service项目是生产者,里面集成了对商品的增删改查操作。search-service是消费者1,负责获取商品的各种信息goods-web是消费者2,这个项目负责把常用的商品页面静态化,并持久...原创 2020-02-20 19:01:41 · 1689 阅读 · 1 评论 -
SpringBoot整合RabbitMQ
目录整合RabbitMQ使用RabbitTemplate实现五种消费模式整合RabbitMQ前期准备启动RabbitMQ,并且创建好对应的用户及虚拟主机,并把用户和虚拟主机进行绑定1.新建springboot项目,勾选如下依赖,RabbitMQ找不到的话就搜索2.编辑application.yml文件连接rabbitmq,注意:你自己新建的virtrual host以及用户名密码别配错了spring: application: ...原创 2020-06-25 19:49:25 · 237 阅读 · 0 评论 -
RabbitMQ的死信队列及延迟队列
目录过期时间TTL死信队列延迟队列消息确认机制消息追踪机制过期时间TTLTTL表示可以对消息设置预期时间,在这个时间内的消息可以被消费者接收获取,过了之后消息自动被删除。RabbitMQ设置TTL有两种方式~通过队列属性进行设置,队列中的所有消息都有相同的过期时间 对消息进行单独设置,每条消息TTL可以不同如果同时使用上述两种方法,则消息过期时间以两者之间的TTL较小数值为准。消息在队列的生存时间一旦超过了TTL值,就称为dead message并被投递到..原创 2020-07-07 11:11:25 · 528 阅读 · 1 评论 -
RabbitMQ的五种常用消息模型
目录五种消息模型基本消息模型work消息模型订阅模型-Fanout(广播)订阅模型-Direct(路由)订阅模型-Topic(通配符)持久化五种消息模型RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ。其中3、4、5这三种都属于订阅模型,只不过进行路由的方式不同。基本消息模型原理P...原创 2020-02-20 16:01:22 · 3800 阅读 · 0 评论 -
RabbitMQ的基础概念
目录什么是RabbitMQRabbitMQ 管理命令行RabbitMQ的Web管理界面介绍RabbiMQ消息发送流程什么是RabbitMQ一款基于AMQP通信协议,erlang语言开发的,部署及其广泛的消息中间件RabbitMQ 管理命令行# 1.服务启动相关 systemctl start|restart|stop|status rabbitmq-server# 2.管理命令行 用来在不使用web管理界面情况下命令操作Rabb...原创 2020-06-24 10:38:17 · 247 阅读 · 0 评论 -
什么是消息队列MQ?
目录什么是MQAMQP和JMS什么是MQMQ即消息队列。消息队列是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。AMQP和JMSMQ是消息通信的模型,并不是具体实现。现在实现...原创 2020-02-19 20:33:17 · 476 阅读 · 0 评论 -
CentOS7安装RabbitMQ3.4.1
目录安装Erlang1.全局安装Erlang安装RabbitMQ1.新建RabbitMQ的安装路径2.通过wget下载rabbitmq安装包3.设置配置文件4.启动5.开启界面管理工具6.设置rabbitmq开机自启动7.开放端口8.访问一下吧~可视化界面的常用操作1.登录2.连接端口3.新建用户4.通过新用户登录安...原创 2020-02-19 22:36:44 · 414 阅读 · 0 评论