rabbitMQ高级特性篇
文章平均质量分 69
rabbitmq高级特性
学nm个锤子
Qtmd
展开
-
RabbitMQ可靠性投递与高可用架构
一,可靠性投递使用 RabbitMQ 实现异步通信的时候,消息丢了怎么办,消息重复消费怎么办?在 RabbitMQ 里面提供了很多保证消息可靠投递的机制,这个也是 RabbitMQ 的一个特性。要明确一个问题,因为效率与可靠性是无法兼得的,如果要保证每一个环节都成功,势必会对消息的收发效率造成影响。所以如果是一些业务实时一致性要求不是特别高的场合,可以牺牲一些可靠性来换取效率。比如发送通知或者记录日志的这种场景,如果用户没有收到通知,不会造成业务影响,只要再次发送就可以了。[外链图片转存失败,源站原创 2021-01-29 00:01:45 · 252 阅读 · 0 评论 -
SpringAMQP详解
一,Spring AMQP介绍Java API 方式编程,有什么问题?Spring 封装 RabbitMQ 的时候,它做了什么事情?1、管理对象(队列、交换机、绑定)2、封装方法(发送消息、接收消息)Spring AMQP 是对 Spring 基于 AMQP 的消息收发解决方案,它是一个抽象层,不依赖于特定的 AMQP Broker 实现和客户端的抽象,所以可以很方便地替换。比如我们可以使用 spring-rabbit 来实现。二,Spring AMQP核心组件1,ConnectionFact原创 2021-01-28 21:29:29 · 10387 阅读 · 0 评论 -
RabbitMQ的消息流控
服务端流控当 RabbitMQ 生产 MQ 消息的速度远大于消费消息的速度时,会产生大量的消息堆积,占用系统资源,导致机器的性能下降。我们想要控制服务端接收的消息的数量,应该怎么做呢?设置消息长度队列有两个控制长度的属性x-max-length:队列中最大存储最大消息数,超过这个数量,队头的消息会被丢弃。x-max-length-bytes:队列中存储的最大消息容量(单位 bytes),超过这个容量,队头的消息会被丢弃。设置队列长度只在消息堆积的情况下有意义,而且会删除先入队的消息,不能真正地原创 2021-01-28 17:34:20 · 629 阅读 · 0 评论 -
RabbitMQ消息不丢失,幂等性,延迟消息
一,rabbitmq如何保证消息不丢失?不被重复消费?1.理论 1.配置消息持久化 Exchange 声明exchange时设置持久化(durable = true)并且不自动删除(autoDelete = false) Queue 声明queue时设置持久化(durable = true)并且不自动删除(autoDelete = false) message 发送消息时通过设置deliveryMode=2持久化消息 说明: @Queue: 当所有消费客户端连接断开后,原创 2021-01-25 01:12:05 · 499 阅读 · 0 评论 -
RabbitMQ概念与五种消息模型
一.rabbitMQ概述1.1搜索与商品服务的问题假设我们已经完成了商品详情和搜索系统的开发。我们思考一下,是否存在问题?商品的原始数据保存在数据库中,增删改查都在数据库中完成。搜索服务数据来源是索引库,如果数据库商品发生变化,索引库数据能否及时更新。如果我们在后台修改了商品的价格,搜索页面依然是旧的价格,这样显然不对。该如何解决?方案1:每当后台对商品做增删改操作,同时要修改索引库数据方案2:搜索服务对外提供操作接口,后台在商品增删改后,调用接口以上两种方式都有同一个严重问题:就是代码原创 2020-10-06 22:46:34 · 543 阅读 · 0 评论 -
springboot整合rabbitmq利用延迟插件发送延时消息
1.需求利用rabbitmq的死信交换机构建延时队列,在容器启动的时候往死信交换机发送一条消息,一分钟后监听者接收到消息并消费。2.依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>3.配置文件spring.rab原创 2021-01-23 01:07:18 · 412 阅读 · 1 评论
分享