随笔分类 -  RabbitMQ教程

摘要:转载自微信公众号:楼仔 常见的消息队列很多,主要包括 RabbitMQ、Kafka、RocketMQ 和 ActiveMQ,这篇文章只讲 RabbitMQ,先讲原理,后搞实战。 思维导图: 1. 消息队列 1.1 消息队列模式 消息队列目前主要 2 种模式,分别为“点对点模式”和“发布/订阅模式”。 阅读全文
posted @ 2022-07-18 08:52 KILLNPE 阅读(558) 评论(0) 推荐(2) 编辑
摘要:mandatory和immediate是channel.basicPublish方法中的两个参数, 它们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能, RabbitMQ 提供的备份交换器(Altemate Exchange) 可以将未能被交换器路由的消息(没有绑定队列或者没有匹配的绑定 阅读全文
posted @ 2022-05-28 14:58 KILLNPE 阅读(83) 评论(0) 推荐(0) 编辑
摘要:在应用程序使用完之后,需要关闭连接,释放资源: channel.close(); connection.close(); 显式地关闭Channel 是个好习惯,但这不是必须的,在Connection关闭的时候,Channel 也会自动关闭。 AMQP 协议中的Connection 和Channel 阅读全文
posted @ 2020-11-21 10:59 KILLNPE 阅读(4418) 评论(0) 推荐(1) 编辑
摘要:为了保证消息从队列可靠地达到消费者, RabbitMQ 提供了消息确认机制( message acknowledgement), 消费者在订阅队列时,可以指定autoAck参数, ,当autoAck 等于false时,RabbitMQ会等待消费者显式地回复确认信号后才从内存(或者磁盘)中移去消息(实 阅读全文
posted @ 2020-11-21 10:31 KILLNPE 阅读(663) 评论(0) 推荐(0) 编辑
摘要:Rabb itMQ 的消费模式分两种: 推( Push )模式和拉( Pull )模式。推模式采用Basic.Consume进行消费,而拉模式则是调用Basic.Get 进行消费。 推模式 在推模式中,可以通过持续订阅的方式来消费消息,使用到的相关类有: import com.rabbitmq.cl 阅读全文
posted @ 2020-11-21 10:10 KILLNPE 阅读(845) 评论(0) 推荐(0) 编辑
摘要:系统: windows 1.RabbitMQ 的运行 进入rabbitmq的安装目录, 进入sbin目录, 执行命令: rabbitmq-server.bat 2.查看RabbitMQ 是否正常启动 sbin -> 执行命令: rabbitmqctl.bat status 3.访问rabbitmq本 阅读全文
posted @ 2020-11-20 16:55 KILLNPE 阅读(154) 评论(0) 推荐(0) 编辑
摘要:如果要发送一个消息,可以使用Channel 类的basicPublish 方法,比如发送一条内容为"Hello World! "的消息,参考如下: byte[] messageBodyBytes = "Hello,world! ". getBytes(); channel.basicPublish( 阅读全文
posted @ 2020-10-13 13:36 KILLNPE 阅读(462) 评论(0) 推荐(1) 编辑
摘要:我们不仅可以将交换器与队列绑定,也可以将交换器与交换器绑定,后者和前者 RabbitMQ知识点整理8-queueBind方法详解 的用法如出一辙,相应的方法如下: 1.Exchange.BindOk exchangeBind(String destination, String source, St 阅读全文
posted @ 2020-10-12 16:46 KILLNPE 阅读(1156) 评论(0) 推荐(2) 编辑
摘要:将队列和交换器绑定的方法如下,可以与前两节中的方法定义(exchangeDeclare和queueDeclare)进行类比。 1.Queue.BindOk queueBind(String queue, String exchange, String routingKey) throws IOExc 阅读全文
posted @ 2020-10-12 16:14 KILLNPE 阅读(1682) 评论(0) 推荐(1) 编辑
摘要:queueDeclare方法相对于exchangeDeclare方法而言, 重载的方法个数就少很多, 只有两个重载方法 1.Queue.DeclareOk queueDeclare() throws IOException; 2.Queue.DeclareOk queueDeclare(String 阅读全文
posted @ 2020-10-12 16:00 KILLNPE 阅读(4850) 评论(0) 推荐(2) 编辑
摘要:exchangeDeclare 有多个重载方法,这些重载方法都是由下面这个方法中缺省的某些参数构成的。 Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDele 阅读全文
posted @ 2020-10-12 15:09 KILLNPE 阅读(5010) 评论(0) 推荐(1) 编辑
摘要:交换器和队列, 在应用程序使用它们的之前就已经存在了, 所以在使用之前要先声明它们 package demo.java.web.amqp.rabbitmq.demo2; import java.io.IOException; import java.util.concurrent.TimeoutEx 阅读全文
posted @ 2020-10-12 14:59 KILLNPE 阅读(746) 评论(0) 推荐(1) 编辑
摘要:RabbitMQ Java 客户端使用com.rabbitmq.client 作为顶级包名,关键的Class 和Interface有Channel 、Connection 、ConnectionFactory 、Consumer 等。AMQP 协议层面的操作通过Channel接口实现。Connect 阅读全文
posted @ 2020-10-12 13:35 KILLNPE 阅读(613) 评论(0) 推荐(1) 编辑
摘要:现在来了解整个消息队列的使用过程。在最初状态下,生产者发送消息的时候: (1)生产者连接到RabbitMQ Broker , 建立一个连接( Connection) ,开启一个信道(Channel) (2) 生产者声明一个交换器,并设置相关属性,比如交换机类型、是否持久化等 (3)生产者声明一个队列 阅读全文
posted @ 2020-10-11 16:55 KILLNPE 阅读(323) 评论(0) 推荐(1) 编辑
摘要:RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。可以把消息传递的过程想象成:当你将一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上, RabbitMQ 就好比由邮局、邮箱和邮递员组成的一个系统。从计算机术语层面来说,RabbitMQ 模型更像是一种交 阅读全文
posted @ 2020-10-11 16:28 KILLNPE 阅读(259) 评论(5) 推荐(1) 编辑
摘要:演示如何使用RabbitMQ Java 客户端生产和消费消息 目前最新的RabbitMQ Java 客户端版本为5.9.0, 相应的maven 构建文件如下: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</ 阅读全文
posted @ 2020-10-11 15:36 KILLNPE 阅读(431) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示