RabbitMQ
文章平均质量分 85
一只胡说八道的猴子
共勉!!高处见!
展开
-
RabbitMQ系列10 RabbitMQ集群搭建 与负载均衡-HAProxy
RabbitMQ集群搭建摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。集群方案的原理RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步E原创 2021-02-25 09:31:49 · 264 阅读 · 0 评论 -
RabbitMQ系列9 消息可靠性保障与消息幂等性处理
RabbitMQ应用问题主要内容1.消息可靠性保障2.消息幂等性处理1.消息可靠性保障问题在RabbitMQ的使用过程中我们如何保证消息百分百从生产端发送到服务端呢,在淘宝,银行等系统中是不允许任何错误的,任何消息的不可达都可能会造成巨大的损失。下面来教大家一个解决方案,即消息补偿机制图解这个图看起来好像很复杂,其实只做到了三件事情:发消息收到消息确认检查比对是不是收到消息了当发生业务操作的时候,业务数据写入数据库生产者将消息发送给MQ的队列Q1发送了一条与step2中原创 2021-02-25 09:31:08 · 196 阅读 · 0 评论 -
RabbitMQ系列8 TTL 死信队列 延迟队列
1.TTL什么是TTL概念介绍TTL全称Time to live (存活时间/过期时间)当消息到达存活时间之后,还没有被消费,会被自动清除RabbitMQ可以对消息设置过期时间,也可以对整个队列设置过期时间应用场景比如我们日常生活中在网上购买东西他会有一个规定的付款时间,这个时间过了,这个订单就被取消了,即订单系统将订单提交带中间件中,自付系统如果没有在规定时间内取出该订单,该订单就被取消了RabbitMQ控制台演示创建一个队列,队列中消息过期时间为1000毫秒绑定交换机发布一条原创 2021-02-25 09:29:43 · 350 阅读 · 0 评论 -
RabbitMQ系列7 消费端限流
3.消费端限流为什么使用消费端限流假设一个场景,首先,我们 Rabbitmq 服务器积压了有上万条未处理的消息,我们随便打开一个消费者客户端,会出现这样情况: 巨量的消息瞬间全部推送过来,但是我们单个客户端无法同时处理这么多数据!当数据量特别大的时候,我们对生产端限流肯定是不科学的,因为有时候并发量就是特别大,有时候并发量又特别少,我们无法约束生产端,这是用户的行为。所以我们应该对消费端限流,用于保持消费端的稳定,当消息数量激增的时候很有可能造成资源耗尽,以及影响服务的性能,导致系统的卡顿甚至直接崩溃原创 2021-02-25 09:27:50 · 347 阅读 · 0 评论 -
RabbitMQ系列6 消息的可靠性传递与ConsumerACK
1.消息可靠性投递存在的问题在使用RabbitMQ的时候,我们可能会由于种种原因发送消息丢失或投递失败的场景就像我们生活中送快递一样,快递员送快递后,需要我们确认签收,才能证明这个快递到我们手上了。如果快递在运输的途中丢了,我们就需要向快递公司反馈,这里面就有一套处理机制。RabbitMQ也是如此解决方案在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或投递失败场景,RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性模式。1.confirm 确认模式2.return原创 2021-02-25 09:27:05 · 213 阅读 · 0 评论 -
RabbitMQ系列5 SpringBoot整合RabbitMQ
SpringBoot整合RabbitMQ生产者整合步骤概述1.创建生产者SpringBoot工程2.导入依赖坐标3.编写yml配置,基本信息配置4.定义交换机,队列以及绑定关系的配置类5.注入RabbitTemplate,调用方法,完成消息发送1.创建生产者SpringBoot工程2.导入依赖坐标<!--继承父类工程--> <parent> <artifactId>spring-boot-starter-parent</原创 2021-02-24 15:47:18 · 100 阅读 · 0 评论 -
RabbitMQ系列4 Spring整合RabbitMQ
Spring整合RabbitMQ创建两个工程添加依赖消费者和生产者的依赖都一样 </dependency> <!--spring集成Rabbit--> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <v原创 2021-02-24 15:46:43 · 137 阅读 · 0 评论 -
RabbitMQ系列3 RabbitMQ工作模式介绍
RabbitMQ工作模式介绍1. simple简单模式模式介绍消息产生着将消息放入队列消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)应用场景:聊天(中间有一个过度的服务器;p端,c端)代码演示生产者端public class Producer { static final String QUEUE_NAME = "work_que原创 2021-02-24 15:44:53 · 185 阅读 · 0 评论 -
RabbitMQ系列2 RabbitMQ安装与基础入门
RabbitMQ简介:AMQP(Adcanced Message Queuing Protocol)AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。JMSJMS即Java消息服务(JavaMessage Service)应用原创 2021-02-24 15:42:43 · 281 阅读 · 0 评论 -
RabbitMQ系列1 什么是MQ
MQ(Messgae Queue)什么是MQMQ全称为Message Queue,即消息队列,消息队列是应用程序与应用程序之间通信的一致方法,即在消息的传输过程中保存消息的容器,多用于分布式系统之间的通信分布式系统通信的两种方式直接远程调用借助第三方完成间接通信发送方称为生产者接收方称为消费者MQ的优势应用解耦异步提速削峰填谷应用解耦MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。未使用MQ之前如下图有一个订单系统直接调用库存系统,支付系统,物流系统原创 2021-02-24 15:41:30 · 218 阅读 · 0 评论 -
RabbitMQ学习
RabbitMQ学习MQ(Messgae Queue)什么是MQMQ全称为Message Queue,即消息队列,消息队列是应用程序与应用程序之间通信的一致方法,即在消息的传输过程中保存消息的容器,多用于分布式系统之间的通信分布式系统通信的两种方式直接远程调用借助第三方完成间接通信发送方称为生产者接收方称为消费者MQ的优势应用解耦异步提速削峰填谷应用解耦MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。未使用MQ之前如下图有一个订单系统直接调用库存系原创 2021-02-18 08:33:02 · 231 阅读 · 0 评论