![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
文章平均质量分 91
Crayoncxy
这个作者很懒,什么都没留下…
展开
-
RabbitMQ学习笔记二:Hello World
一、流程概述 本文主要实现RabbitMQ在JAVA项目中的入门级别应用,即实现消息生成者发送一条‘’Hello World“ 消息,消费者收到这条信息并打印出来。消息的传递流程是“生产者-队列-消费者”,没有经过交换机,如图:P:消息生产者QUEUE:队列X:消息接收者二、源代码 我这里用的是一个maven项目,首先要在pom.xml中引入RabbitMq原创 2018-01-22 14:03:35 · 994 阅读 · 1 评论 -
RabbitMQ学习笔记九:RabbitMQ实现RPC(远程过程调用)
一、概述 前面几篇文章讲述的内容都是单向的消息传递,生产者将消息发送给消费者之后就不再管后续的业务处理了。实际业务中,有的时候我们还需要等待消费者返回结果给我们,或者是说我们需要消费者上的一个功能、一个方法或是一个接口返回给我们相应的值,而往往大型的系统软件,生产者跟消费者之间都是相互独立的两个系统,部署在两个不同的电脑上,不能通过直接对象.方法的形式获取想要的结果,这时候我们就需要用到原创 2018-02-07 19:10:23 · 3584 阅读 · 1 评论 -
RabbitMQ学习笔记八:RabbitMQ的消息确认
一、概述 前文说到RabbitMQ的交换机、队列、消息的持久化并不能100%的保证消息不会丢失。首先从生产者端,持久化的消息在RabbitMQ同步到磁盘之前,还需要一段时间,这个时间很短,但是不容忽视。假如此时服务器宕机了,那么消息就丢失了。这种发生在生产者上的消息丢失我们可以使用镜像队列和事务机制来保证数据的完整性。其次是消费者端,假如消费者拿到消息还未处理,发生异常而崩溃,此时这条消原创 2018-02-07 09:19:54 · 1993 阅读 · 1 评论 -
RabbitMQ学习笔记七:交换机、队列、消息的持久化
一、概述 在生产过程中,难免会发生服务器宕机的事情,RabbitMQ也不例外,可能由于某种特殊情况下的异常而导致RabbitMQ宕机从而重启,那么这个时候对于消息队列里的数据,包括交换机、队列以及队列中存在消息恢复就显得尤为重要了。RabbitMQ本身带有持久化机制,包括交换机、队列以及消息的持久化。持久化的主要机制就是将信息写入磁盘,当RabbtiMQ服务宕机重启后,从磁盘中读取存入的原创 2018-02-06 09:14:33 · 2880 阅读 · 1 评论 -
RabbitMQ学习笔记一:基本概念与环境搭建
一、定义 MQ(Message Queue,消息队列)是基于应用程序之间的一种通信方式,应用程序通过读写出入队列的消息进行通信,而不需要用专用的连接来连接它们。消息通信指的是程序之间在消息中传递信息进行通信,而不是传统的通过直接调用(如RPC)的方式进行通信。MQ的使用除去了消息接收和发送的应用程序同时执行的要求。RabbitMQ是实现了AMQP协议MQ的一个中间件,它由ERLANG语言原创 2018-01-20 14:58:37 · 473 阅读 · 0 评论 -
RabbitMQ学习笔记五:Exchange的学习(3)
一、概述 前两篇文章中讲述了全部匹配和直接匹配两种交换机Exchange的类型,这篇文章讲述第三种模糊匹配Topic类型的交换机。Topic类型的交换机,支持路由规则routingKey模糊匹配,匹配符号有‘#’全部一个或多个单词,‘*’一个单词。 示例:假设我们有两条队列,队列的绑定规则不确定,只有部分是确定的,也就是我们会接收包含这确定路由规则的信息。 实现方原创 2018-01-27 12:05:05 · 234 阅读 · 0 评论 -
RabbitMQ学习笔记六:Exchange的学习(4)
一、概述 前面三篇文章讲述了RabbitMQ 常用的三种Exchange类型,这篇文章学习一下第四种不常用的Exchange类型:Headers这种类型与topic类型类似,只不过不是匹配routingKeys,是匹配AMQP协议中的Header,Header是一个HashTable类型的键值对,而routingKey是String类型的字符串。功能与Topic相同,消息发送者绑定消息的原创 2018-02-01 17:04:53 · 262 阅读 · 0 评论 -
RabbitMQ学习笔记四:Exchange的学习(2)
一、概述 前一篇文章中,我们了解了交换机的四种类型,并使用了一个广播式发送消息的示例学习了fanout类型的交换机,这篇文章继续学习direct类型的交换机。direct类型的交换机可以实现不同的消息发送到不同的队列中去。 示例场景:在绑定同一个交换机的两个队列中,一个队列负责接收生产者发送的奇数消息,一个队列负责接收生产者发送的偶数消息,当发送的消息为10的整数倍时,两个队列原创 2018-01-25 11:21:11 · 418 阅读 · 1 评论 -
RabbitMQ学习笔记三:Exchange的学习(1)
一、概述 上一篇文章中讲述了一个简单的消息传递模型,消息从生产者发送到消费者再发送到队列,实际的工作中生产者不知道要把消息发送给哪个队列,可能有多个消费者要生产者的消息,也可能有的消费者不需要生产者的全部消息,比如日志系统,一个消费者需要info级别的信息,另一个消费者需要error和info级别的信息,这时候我们就用到了交换机,生产者把消息发送到交换机,交换机像是一个消息中转站,一边接原创 2018-01-23 17:03:35 · 313 阅读 · 2 评论 -
RabbitMQ学习笔记十:RabbitMQ与Spring 的整合
一、概述 前面的文章中整理了常规项目下RabbitMQ实现各种通用消息队列的方式,一般的企业级项目,通常使用Spring框架来实现项目,本文主要讲述RabbitMQ与Spring的集成,通过一个简单的示例演示集成。 示例:通过Spring管理项目,实现RabbitMQ的fanout类型交换机的消息队列,一个生产者Producer,一个fanout类型的交换机exchangeTest,两个...原创 2018-02-24 09:01:16 · 360 阅读 · 0 评论