
RabbitMQ 入门之路
Geffin
欲戴王冠,必承其重
展开
-
RabbitMQ 入门系列7 -- 延时队列
1 场景导入在一些场景中,程序不需要同步执行,如果邮件提醒之类的,我们只需要在当前线程之外开启一个新线程,然后当前线程继续往下执行即可,无需等待新线程。但有时我们没有这么好运,想象一下,我们在网上购物,提交订单之后30分钟内必须付款,否则就会取消订单,这种情况下,我们不可能单单只开启一个异步线程而不做其他处理。在这里,我可以提供一种方案来解决这个问题,那就是使用延时消息队列。在消息发布之后,保...原创 2019-10-28 10:32:09 · 211 阅读 · 0 评论 -
RabbitMQ 入门系列6 -- 持久化与死信队列
1 RabbitMQ 的持久化1.1 场景导入我在之前的博客提到过,当消费者消息接收到一半的时候挂掉时,可以使用消息接收确认机制进行补救。那在更加极端的场景下,RabbitMQ 挂掉了,又该怎么办呢?在默认情况下,队列与消息都是非持久化的,想要将队列与消息进行保存,可以使用 RabbitMQ 的持久化机制。1.2 理论原理RabbitMQ 所谓的持久化,就是将数据写在磁盘上消息持久化...原创 2019-10-28 10:30:41 · 574 阅读 · 0 评论 -
RabbitMQ 入门系列5 -- 消息分发机制
1 问题引入在实际环境下,每个消息的“大小”是不同的,所需要的处理时间也是不同的。在这种情况下,我们应该如何分配资源来令效率最大化呢?这就需要我们来学习 RabbitMQ 的消息分发机制了。2 回顾分发机制以下分发机制的内容来自我的前几篇博客,这里借用一下。一般来说,一个队列有多个消费者同时消费数据,此时有两种分发数据的方式,一种是轮询分发,另一种是公平分发。2.1 轮询分发轮询分发,...原创 2019-10-28 10:27:49 · 703 阅读 · 0 评论 -
RabbitMQ 入门系列4 -- 消息确认机制
1 问题引入在使用 RabbitMQ 的时候,我们可能会遇到这样一个问题,在生产者发送消息之后,并不知道消息是否已经到达了服务器,这对于生产者来说是一个谜。默认情况下,生产者不会收到任何响应。那么,如果我们想要了解消息的去向,那我们应该怎么做呢?于是,RabbitMQ 的消息确认机制隆重出场了。2 消息确认的两种机制2.1 事务机制注意,在发送一条消息之后,事务机制会阻塞发送端,直到 Ra...原创 2019-10-28 10:27:00 · 325 阅读 · 0 评论 -
RabbitMQ 入门系列3 -- 三种交换机的实战
1 Direct Exchange 实战1.1 Direct Exchange 的简单介绍Direct 即是路由模式,也是 Exchange 的默认模式。唯有当 Routing Key 与 Binding Key 完全匹配的时候才将消息发送至消息队列。事实上,RabbitMQ 默认提供了一个 Exchange,名字是空字符串,类型是 Direct,绑定到所有的Queue 上(每一个 Queu...原创 2019-10-28 10:24:43 · 234 阅读 · 0 评论 -
RabbitMQ 入门系列2 -- RabbitMQ 基础概念详解
1 什么是 RabbitMQ ?RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 — 来自百度百科名词解释 – Erlang语言Erlang 是一种面向并发运行环境的通用编程语言,具有以下特征:...原创 2019-10-28 10:23:47 · 240 阅读 · 0 评论 -
RabbitMQ 入门系列1 -- 走进消息队列的世界
1 初识 MQMQ,Message Queue,也被称为消息队列。它是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列互交。消息会保存在队列中,直到接收者取回它。2 架构模型看...原创 2019-10-28 10:22:52 · 195 阅读 · 0 评论