
RabbitMQ
文章平均质量分 88
学习 RabbitMQ
sco5282
这个作者很懒,什么都没留下…
展开
-
SpringBoot 集成 RabbitMQ(下)
这篇文章内容:SpringBoot 集成 RabbitMQ 的其它模式:工作队列模式、1. 工作队列模式 WorkQueue工作队列模式:一个生产者对应多个消费者1.1 生产者生产者工程结构图:application.ymlserver: port: 8081spring: rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest virtual-host: /原创 2021-10-19 20:17:27 · 378 阅读 · 0 评论 -
SpringBoot 集成 RabbitMQ(上)
接下来使用 SpringBoot 来集成 RabbitMQ1. 简单模式原创 2021-09-26 11:33:43 · 2043 阅读 · 0 评论 -
RabbitMQ 学习教程(八)主题模式 Topic
主题模式direct 类型的交换机路由规则是完全匹配 BindingKey 和 RoutingKey,但是这种严格的匹配方式在很多情况下不能满足实际业务的需求。topic 类型的交换机在匹配规则上进行了扩展,它与 direct 类型的交换机类似,也是将消息路由到 BindingKey 和 RoutingKey 相匹配的队列中,但这里的匹配规则有些不同,它约定:RoutingKey 为一个点号 “.” 分割的字符串(被点号 “.” 分割开的每一段独立的字符串成为一个单词)。如:com.rabbitmq原创 2021-09-05 17:20:56 · 4197 阅读 · 0 评论 -
RabbitMQ 学习教程(七)路由模式 Direct
路由模式direct 类型的交换机路由规则很简单,它会把消息路由到那些 BindingKey 和 RoutingKey 完全匹配的队列中路由模式结构图如下:P:生产者,向交换机 Exchange 发送消息,发送消息时,会指定一个路由键 routing key;X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与 routing key 完全匹配的队列;Q1:队列(消费者监听此队列),指定了需要与交换机 Exchange 进行绑定的绑定键 BindingKey 为 warnin原创 2021-09-05 17:20:28 · 1584 阅读 · 0 评论 -
RabbitMQ 学习教程(六)发布/订阅模式 Fanout
发布/订阅模式发布/订阅模式:交换机类型为 fanout,也称为广播模式,即:一个生产者对应多个消费者。发布/订阅模式的简要说明如下:一个生产者,多个消费者每个消费者都绑定一个自己的队列生产者没有将消息直接发送给队列,而是发送给交换机 Exchange每个队列都需要绑定到交换机上生产者发送的消息,经过交换机到达队列,可实现一个消息被多个消费者消费发布/订阅模式结构如下图:X(Exchanges):交换机一方面:接收生产者发送的消息;另一方面:知道如何处理消息。例如:递交给某个特别队列原创 2021-09-05 14:09:24 · 1542 阅读 · 0 评论 -
RabbitMQ 学习教程(五)工作队列模式
工作队列模式工作队列或者竞争消费者模式结构如下图:工作队列模式与简单模式相比,多了一个消费端,两个消费端(或多个消费端)共同消费同一个队列中的消息,但是一个消息只能被一个消费者获取。它解决了当消息队列的消息过多的情况,单消费者消费速率有限导致的消息堆积的问题。工作队列模式分为两种:轮询分发、公平分发轮询分发:任务平均分配。不管谁忙,都不会多给消息,总是你一个我一个公平分发:能者多劳。谁消费得快,谁就消费得多。这种模式下,必须关闭自动应答 ACK,改成手动应答,并且设置 channel.bas原创 2021-09-04 11:52:55 · 936 阅读 · 1 评论 -
RabbitMQ 学习教程(四)消费端限流策略
在进入今天的主题之前,咱们先来了解下一个方法 channel.basicQos() 方法1. channel.basicQos() 方法原创 2021-09-03 21:07:10 · 1396 阅读 · 0 评论 -
RabbitMQ 学习教程(三)消息确认机制 ACK
在这讲正式之前,咱们先把之前的生产者、消费者代码,简单优化下吧首先,提取一个工具类 RabbitMqUtil,用来处理连接、关闭功能:public class RabbitMqUtil { // 私有构造 private RabbitMqUtil() {} // 获取连接 public static Connection getConnection(String name) throws Exception { ConnectionFactory co原创 2021-08-31 20:43:20 · 684 阅读 · 0 评论 -
RabbitMQ 学习教程(二)RabbitMQ 的简单模式
1. 五种工作模式RabbitMQ 常用的工作模式有以下五种:简单模式工作队列模式(轮询、公平分发)发布/订阅模式(fanout 路由键在这个模式中没有意义)路由模式(direct)主题模式(topic 路由中的 #:表示0个或多个;*:表示至少只有一个)1.1 简单模式简单模型如下图:在上图的模型中,有以下概念:P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来Queue:消息队列,图中红色部分。可以缓存消息;生产者向其中投递消息,消费者从其中取原创 2021-08-28 17:07:32 · 1215 阅读 · 0 评论 -
RabbitMQ 学习教程(一)认识 RabbitMQ
RabbitMQ 是由 Erlang 语言开发,基于 AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列。它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com1. 下载安装RabbitMQ 由 Erlang 语言开发,在安装 RabbitMQ 之前,需要安装与之对应版本的 Erlang 语言环境。网上自行搜索安装教程【注意】:本机电脑的用户名不能是中文,否则会安装失原创 2021-08-28 13:04:20 · 519 阅读 · 0 评论 -
RabbitMQ 学习教程(零)认识中间件
“中间件”对于初学者而言,这是一个很抽象的概念。那么,到底什么是中间件呢?我其实,我也不知道,但我可以帮你去理解它。简单来说,就一个公式:中间件 = 平台 + 通信那么,如何来解读这个公式呢?一般,一个平台是包含多个子系统,而用来开发这些子系统的编程语言可能是多种(Java、Go、C++),但这些子系统通过中间件、操作系统进行通信(如:一个电商平台,订单系统是由 Java 语言开发,而支付系统是由 Go 语言开发。当一个用户下完单准备支付时,此时,支付系统是要和订单系统进行通信的,订单系统要告诉支原创 2021-08-27 20:46:45 · 303 阅读 · 0 评论