摘要: 死信队列 DLX(Dead Letter Exchange),可以称为死信交换器。当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换器中,这个交换器就是DLX,绑定DLX的队列就称为死信队列。 消息变成死信队列有下面几个情况: 1. 消息被拒绝(channel.b 阅读全文
posted @ 2018-12-04 17:26 Hayson 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 持久化可以提高RabbitMQ的可靠性,以防在异常情况(重启、关闭、右机等)下的数据丢失。 RabbitMQ的持久化分为三个部分: 交换器的持久化:通过在声明交换器时将 参数设置为 实现持久化。不设置持久化,在RabbitMQ服务重启后,相关的交换器元数据会丢失。不过消息因为存储在队列,不会丢失,只 阅读全文
posted @ 2018-12-04 17:22 Hayson 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 消息到队列 消息发送后,如何确定到消息是否到达了相应的队列?RabbitMQ默认在发送消息时,如果不能根据交换器类型和路由键找到相应的队列,消息将直接丢弃。而要想知道消息是否达到队列或没到队列却不想消息丢失,RabbitMQ提供有解决方案: 设置 参数 为 时,交换器无法根据自身的类型和路由键找到一 阅读全文
posted @ 2018-12-04 17:18 Hayson 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 相关概念 RPC,是Remote Procedure Call的简称,即远程过程调用。它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络的技术。RPC的主要功用是让构建分布式计算更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 通俗点来说,假设有两台服务器A和B,一个应用部署 阅读全文
posted @ 2018-12-04 17:15 Hayson 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 前面的路由教程中改进了日志系统,使用了 类型,而不是只能进行虚拟广播的 的交换器,并且有可能选择性地接收日志。 但前面的 类型交换器还是有局限性。在日志系统中,不仅要查看指定 级别的日志消息,还要知道是哪个地方、哪个类出现的错误消息,例如下面日志消息 上面日志消息除了标记 级别,还有日志消息的来源: 阅读全文
posted @ 2018-12-04 17:14 Hayson 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 前面的工作队列是假设每个任务都交付给一个工作者。在这部分,将是向多个消费者传递消息,此模式称为 。 为了说明这种模式,将构建一个简单的日志记录系统。它包含两个程序 发出日志消息 接收和打印消息,这里有两个消费 1. 将日志定向到磁盘 2. 在屏幕上看到日志 基本上,发布的日志消息将被广播给所有接收者 阅读全文
posted @ 2018-12-04 17:11 Hayson 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 工作队列,用于多个消费者从队列中消费多个消息。 工作队列(又称: 任务队列 )背后的主要思想是避免立即执行资源密集型任务,并且必须等待它完成。相反,我们安排任务稍后完成。我们将 任务 封装 为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当您运行许多工作程序时,它们之间将共享任 阅读全文
posted @ 2018-12-04 17:08 Hayson 阅读(224) 评论(0) 推荐(0) 编辑