《RabbitMQ 实战》读书笔记
MQ的好处:
1.业务上接口(系统扩展性变强)
2.性能提升(同步变异步,效率提高,还方便做负载均衡)
3.技术兼容(可以连接各种不同语言的系统,作为粘合剂)
读书笔记:
1.消息队列的应用场景:系统集成。其它方案是,通过写数据库,定时轮询来读取数据
2.信道(channel)的好处是:可以减少TCP连接的成本,在同一个TCP连接里,建立多条信道,既保证了私密性,又不会给操作系统的TCP栈造成额外负担
3.接收消息的2种订阅命令:
1)basic.consume:自动接收
2)basic.get:一条条接收(禁止,使用此命令来代替上面的命令,会有性能问题)
4.消息在接收方处理完上一条之前,不会消费下一条。利用这点,可以在消费方延迟确认,来防止应用过载。
5.当要丢弃一条消息时,使用basic.reject命令。注意把requeue参数设为false,则不会继续给下一个消费者,而是直接丢进“死信”队列
6.队列该由谁来创建:如果业务场景允许消息丢失,可以由消费来创建。否则,则应该双方都创建。
7.路由器的几种类型:
1)direct:路由键匹配
2)fanout:广播
3)topic:订阅。"."把key分割,“*”任意匹配,“#”所有匹配
PS.根据路由键和交换器类型,服务器会决定将消息投递到哪个队列去。
8.为了确保消息的准确性,可以使用confirm模式(消息带上唯一ID)。这个模式是异步的,性能消耗很小(对应的有个事务模式,性能消耗巨大,但是可以回滚)。
其它:
1.第一次阅读,是略读。很多关于高可用,效率优化方面的内容没仔细看。后面有机会再深入精度一遍
命令list:
1.basic.consume:自动接收
2.basic.get:一条条接收(禁止,使用此命令来代替上面的命令,会有性能问题)
3.basic.reject:拒收消息。注意把requeue参数设为false,则不会继续给下一个消费者,而是直接丢进“死信”队列
4.basic.decdeclare:创建队列
5.exchange.declare:声明自己的交换器
队列相关参数设置:
1.exclusive:设为ture的话,则变为私有队列。一个队列只有一个消费者
2.auto-delete:当消费者没有时,自动删除队列
3.queue.declare的passive参数:如果为ture,用于检测队列是否存在
《RabbitMQ 实战》读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- Flannel 原理简析及安装
flannel是CoreOS提供用于解决Dokcer集群跨主机通讯的覆盖网络工具.它的主要思路是:预先留出一个网段,每个主机使用其中一部分,然后每个容器被分配不同的ip:让所有的容器认为大家在同一个直 ...
- yii框架里DetailView视图和GridView的区别
1,首先从语义上分析 DetailView是数据视图,用于显示一条记录的数据,相当于网页中的详情页 GridView是网格视图,用于显示数据表里的所有记录,相当于网页里的列表页 2.用法上的区别 首先 ...
- .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
原文:.NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 我们有多种工具可以将程序集合并成为一个.打包成一个程序集可以避免分发程序的时候带上一堆依赖而出问题. ILMerge 可以用来 ...
- java之spring mvc之页面跳转
1. 如果返回值为ModelAndView,在处理方法中,返回null时,默认跳转的视图名称为请求名.跳转结果会根据视图解析器来跳转. @RequestMapping("/hello.do& ...
- selenium中的元素操作之三大等待(一)
等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完 ...
- Java之路---Day07
2019-10-21-23:30:24 ArrayList类[集合] What:java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元元素,此类提供一些方法来操作内部存储的 ...
- MySQLNonTransientConnectionException: Could not create connection to database server.
MySQLNonTransientConnectionException: Could not create connection to database server. Spring整合mybati ...
- 【开发笔记】- QQ消息轰炸
1.右键新建一个文本文件: 2.打开记事本将如下代码复制过去: On Error Resume Next Dim wsh,ye set wsh=createobject("wscript.s ...
- js 取得数组中的最大值和最小值(含多维数组)
转自:http://www.dewen.org/q/433 方法一: var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math. ...
- jquery datatable如何动态分页
展开全部 一.分页 分页的基本思想是根据datatable的页码及每页显示的行数,将数据从数据库分段提出,然后再填充到表格中,以达到分页的效果. 这里需要用到datatable插件的几个属性: &qu ...