4.RabbitMQ实战 --- 解决Rabbit相关问题:编码与模式,RPC
4.2 发后即忘模型1.警告通知2.并行处理3.用 RabbitMQ 实现 RPC 并等待响应
RPC:使用rabbit来实现RPC时,你只是简单的发布消息而已。rabbitmq会负责使用绑定来路由消息到合适的队列。rpc服务器会从这些队列上消费消息。rabbitmq替你完成了所有工作:将消息路由到合适的地方,通过多台rpc服务器对rpc消息进行负载均衡,甚至当处理消息的服务器崩溃时,将rpc消息重发到另一台。私有队列和发送确认:由于amqp消息是单向的,rpc服务器如何才能将结果返回给原始客户端呢?由于rabbit处于中间环节,rpc服务器甚至都不知道客户端调用者的身份(除非在消息内放入特定的id)。rabbit团队的方案:使用消息来发回应答。在每个amqp消息头中有个字段叫做 reply_to。消息的生产者可以通过该字段来确定队列的名称,并监听队列等待应答。然后接受消息的rpc服务器能够检测 reply_to 字段,并创建包含应答内容的新的消息,并以队列名称作为路由键。你也许会想'关每次创建唯一队列名就得花很多功夫吧'。我们怎么阻止其他客户端读到应答消息呢?如果你声明了没有名字的队列,rabbit会为你指定一个。这个名字恰好是唯一的队列名;同时在声明的时候指定 exclusive参数,确保只有你可以读取队列上的消息。所有的rpc客户端需要做的是声明临时的,排他的,匿名的队列,并将该队列名称包含到rpc消息的 reply_to 头中,于是服务器就知道应答消息发往哪儿了。值得注意的是我们并没有提到应答消息绑定到交换器上,这是因为rpc服务器将应答消息发到rabbit时没有指定交换器,rabbit就知道目的地是应答队列,路由键就是队列的名字。
4.1 解耦风雨路:谁将我们推向消息通信
4.RabbitMQ实战 --- 解决Rabbit相关问题:编码与模式,RPC相关推荐
- RabbitMQ实战教程
RabbitMQ实战教程 1.什么是RabbitMQ 1.1 MQ(Message Queue)消息队列 1.1.1 异步处理 1.1.2 应用解耦 1.1.3 流量削峰 1.2 背景知识介绍 1.2 ...
- rabbitmq实战指南_RabbitMQ之脑裂
点击上方蓝色字体,选择"设为星标" 9 10 本文总结<RabbitMQ实战指南>网络分区章节,并亲自实践才有这篇文章,手动处理章节详细记录了操作过程中的注意事项.如果 ...
- 《RabbitMQ 实战指南》第五章 RabbitMQ 进阶(下)
<RabbitMQ 实战指南>第五章 RabbitMQ 进阶(下) 文章目录 <RabbitMQ 实战指南>第五章 RabbitMQ 进阶(下) 一.持久化 二.生产者确认 1 ...
- RabbitMQ实战笔记
RabbitMQ实战笔记 1 MQ引言 1.1 中间件技术及架构的概述 1.2 什么是MQ 1.3 为什么要用MQ 1.4 MQ的分类 1.5 MQ的选择 2 RabbitMQ 的引言 2.1 Rab ...
- RabbitMQ实战:可用性分析和实现
为什么80%的码农都做不了架构师?>>> 本系列是「RabbitMQ实战:高效部署分布式消息队列」书籍的总结笔记. 上一篇介绍了各种场景下的最佳实践,大部分场景可以使用「发后即 ...
- 《RabbitMQ实战指南》笔误及改进记录
2017年12月上旬笔者的一本新书--<RabbitMQ实战指南>上架,里面的校稿都是自己独自完成的,一共进行了15遍,但还是会有漏网之鱼.本篇博文用来记录现在发现的一些笔误,一是给购书的 ...
- RabbitMQ实战经验分享
RabbitMQ实战经验分享 原文:RabbitMQ实战经验分享 前言 最近在忙一个高考项目,看着系统顺利完成了这次高考,终于可以松口气了.看到那些即将参加高考的学生,也想起当年高三的自己. 下面分享 ...
- 《RabbitMQ 实战指南》第三章 客户端开发向导
<RabbitMQ 实战指南> 文章目录 <RabbitMQ 实战指南> 一.简介 二.连接 RabbitMQ 三.使用交换器和队列 1.exchangeDeclare 方法详 ...
- 《RabbitMQ 实战指南》第二章 RabbitMQ 入门
<RabbitMQ 实战指南> 文章目录 <RabbitMQ 实战指南> 一.相关概念介绍 1.生产者和消费者 2.队列 3.交换器.路由键.绑定 4.交换器类型 5.Rabb ...
- Spring Boot实战解决高并发数据入库: Redis 缓存+MySQL 批量入库
前言 最近在做阅读类的业务,需要记录用户的PV,UV: 项目状况:前期尝试业务阶段: 特点: 快速实现(不需要做太重,满足初期推广运营即可) 快速投入市场去运营 收集用户的原始数据,三要素: 谁 在什 ...
最新文章
- 存储时间:高清3D化,技术应用化?
- Android自定义ScrollView
- 腾讯这家公司的核心竞争力是什么?为什么?
- redis 备份导出rdb_redis简单安装学习
- Python 增删改查
- window.location跳转页面
- 电脑桌面整个都变大了_三招拯救你的电脑桌面,堪比整容!
- jzoj6310-Global warming【线段树,LIS】
- centos7 編譯 chmsee
- Maven中安装本地Jar包到仓库中或将本地jar包上传
- 异步生成器_异步生成器作为状态管理的替代方法
- 刷新iframe页面
- 1002.写出这个数
- SQL 日期函数的使用方法
- 嵌入式驱动开发学习路线
- Linux性能统计工具
- 动态规划(一)——矩阵连乘
- sql 转换 不足位数补0
- MCS-51指令系统
- Cluster04 - Ceph概述 部署Ceph集群 Ceph块存储