RabbitMQ
文章平均质量分 56
xlecho
一个热爱网络技术的靓仔
展开
-
RabbitMQ没有延时队列?学会这一招玩转延时队列
什么是延时队列延时队列:顾名思义,是一个用于做消息延时消费的队列。但是它也是一个普通队列,所以它具备普通队列的特性,相比之下,延时的特性就是它最大的特点。所谓的延时就是将我们需要的消息,延迟多久之后被消费。普通队列是即时消费的,延时队列是根据延时时间,多久之后才能消费的。延时队列使用场景订单在十分钟之内未支付则自动取消。会员续费的定时推送用户注册成功后,如果三天内没有登陆则进行短信提醒。预定会议后,需要在预定的时间点前十分钟通知各个与会人员参加会议。优惠券过期提醒核心的应用内容基本都原创 2021-03-03 16:14:56 · 1311 阅读 · 9 评论 -
RabbitMQ教程-死信队列
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。什么是死信队列?死信队列:DLX,dead-letter-exchange,可以成为死信交换器,也有人称为死信邮箱。利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish到另一个Exchange,这个Exchange就是DLX什么情况下消息会成为死信?消息被拒绝(basic.reject / basic.nack),并且requeu原创 2021-02-19 15:25:44 · 259 阅读 · 0 评论 -
RabbitMQ教程-消息的顺序性
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。MQ其实就是队列,是左进右出的队列,那是不是意味着就能保证消息的有序性?RabbitMQ能保证消息的顺序吗?不能!!!尽管在网上有很多的文档都在说MQ能够做到有序消费,但是MQ是很难做到消息的顺序消费的。当然,在某些场景的下确实能够保证大部分数据不乱。在消费顺序上出现的问题direct类型的交换器是最有可能保证消息的顺序性的,假若:我们仅有一个生产者,仅适用一个队列,同时选用di原创 2021-02-02 14:41:31 · 1511 阅读 · 0 评论 -
RabbitMQ教程-使用消息确认机制confirm带来的问题
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。既然我们有了消息确认机制,我们可以用来解决很多问题,比如:我们用RabbitMQ的在项目之间消失丢失的问题,但是越多的技术的应用,往往会带来新的更多的问题。防止消息丢失,真实企业这么应用消息丢失,我们可以用确认机制来解决,实际项目的应用中我们可以这么用,实例如下:import com.rabbitmq.client.*;import java.io.IOException;i原创 2021-02-01 19:35:58 · 462 阅读 · 0 评论 -
RabbitMQ教程-消息确认机制
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。本文重点讲发送方确认机制RabbitMQ的消息确认机制有两种事务机制发送方确认机制所谓的确认机制就是让消息能够被明确的知道是否成功投递和消费怎么使用消息确认模式开启消息确认模式比较简单,只需要做两件事第一个,在我们生产者投递消息的时候生产者将信道设置成 confirm 确认)模式消费者消费的时候确认该消息已被消费即可confirm应用实例// 生产者impo原创 2021-01-27 15:00:53 · 203 阅读 · 0 评论 -
RabbitMQ教程-消息的两种消费模式
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。消费模式RabbitMQ消费模式有两种,一种是队列的push,另外一个是从队列pull。对应API如下。pull: com.rabbitmq.client.Channel#basicGet。消息中间件主动将消息推送给消费者push: com.rabbitmq.client.Channel#basicConsume。消费者主动从消息中间件拉取消息两种模式的区别push:推模式接原创 2021-01-25 15:34:05 · 1582 阅读 · 0 评论 -
RabbitMQ教程-Topic Exchange类型的基本使用demo
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。上两篇文章中,我们使用Direct Exchange和Fanout Exchange类型推送了消息,但是我们发现这两种类型在某些情况下并不适合,比如:我们MQ中有一百个不同队列订阅了我们的某个生产者,但是在某一次的时候,我们生产者只希望其中一部分对了能接受消息,那么我们的Fanout Exchange直接广播就会造成信息资源浪费,如果我们选择Direct Exchange的时候,那我们要发原创 2021-01-18 13:48:05 · 483 阅读 · 0 评论 -
RabbitMQ教程-Direct Exchange类型的基本使用demo
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。使用Direct Exchange点对点的推送一条消息和Fanout Exchange一样,我们可以直接在远程的web端创建一个队列,也可以在我们的代码里面声明(由于是demo所以直接在代码里面声明是没什么问题的,但是一般实际应用都是在web端创建)创建好了队列,记得绑定到对应的Exchange上,不然不能使用手动创建的时候,先创建Direct Exchange,然后用这个队列绑定原创 2021-01-15 15:19:23 · 213 阅读 · 0 评论 -
RabbitMQ教程-Fanout Exchange类型的基本使用demo
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。使用Fanout Exchange广播一条消息先预备3个队列,创建队列有两种方式,第一种我们可以直接在代码里面创建好队列然后使用,也可以直接在我们的web界面里面去手动创建(但是web界面手动创建的时候要注意将我们的队列绑定到某个Exchange上,不然无法接受到消息)创建好了队列,直接去Exchange上添加对应bind队列创建一个生产者package com.exam原创 2021-01-15 14:57:08 · 286 阅读 · 0 评论 -
RabbitMQ教程-Exchange的几种类型详解
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。在入门案例中我们使用到了Exchange,上文也讲到了路由器Exchange的作用,但是其实它还有很多分类,我们了解的仅仅只是其中一种Exchange的类型Fanout ExchangeFanout Exchange比较特殊会忽略路由键的设置,相当于当前Exchange广播消息,直接把消息分发到所有与当前Fanout Exchange 绑定的队列。Direct Exchan原创 2021-01-15 13:37:58 · 295 阅读 · 0 评论 -
RabbitMQ教程-推送到消费都经历了什么
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。上文我们实现了一个简单的hello world的案例,我们看到了推送和消费的整个过程。在代码中,有很多的设置我们没有讲明白,这些设置是做什么的呢?又觉得了什么?本文会详细讲明白消息传递的简单模型在我们上一个案例中,我们可以了解到如下的一个大概的消息传递模型。我们可以看到消息的传递,其实就是一个端发送到了另一个端口,很简单。但是我们消息中间件的消息传递这么简单吗?肯定不是的,假若原创 2021-01-15 10:48:29 · 324 阅读 · 1 评论 -
RabbitMQ教程-入门教程(推送和消费一个hello world)
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。安装完成了之后,我们就可以正式使用啦,现在我们来完成一个hello world的消息推送和消费吧引入链接端创建一个springboot项目,在pom文件引入RabbitMQ的依赖<!-- RabbitMQ --><dependency> <groupId>com.rabbitmq</groupId> <artifa原创 2021-01-14 15:20:28 · 287 阅读 · 0 评论 -
RabbitMQ教程-在Linux上安装RabbitMQ报错解决方案
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。如果出现如下错误先查看日志journalctl -xe请提升RabbitMQ版本可以使用一下地址先查看RabbitMQ最新版本https://github.com/rabbitmq/rabbitmq-server/releases然后根据最新版本,拼接安装源地址。如果不会可以找到最新某版本如上界面的下载文件,在该界面的下面,然后选中需要的文件,右键复制下载地址即原创 2021-01-13 16:35:07 · 343 阅读 · 0 评论 -
RabbitMQ教程-在Linux上安装RabbitMQ(亲测有效)
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。在Linux上安装RabbitMQ需要先安装它对应的运行环境‘Erlang’,我这里使用的是CentOS7安装Erlang准备工作,安装wgetyum install -y wget安装依赖项yum install -y epel-release配置安装源wget https://packages.erlang-solutions.com/erlang-solu原创 2021-01-13 16:33:06 · 273 阅读 · 0 评论 -
RabbitMQ教程-RabbitMQ简介
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。RabbitMQ简介RabbitMQ是一款非常热门的消息中间件,是实现了高级消息队列协议(AMQP)的开源消息代理软件。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。它 凭借其高可靠、易扩展、高可用及丰富的功能和支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP原创 2021-01-12 17:52:16 · 338 阅读 · 1 评论