MQ全称Message Queue(消息队列),是在消息的传输过程中保存消息的容器,多用于分布式系统之间 进行通信。

A系统先将数据发送给MQ,MQ再将数据发送给B系统,完成A系统与B系统之间的通信
(1)应用解耦

当系统之间直接进行相互调用时,如果其中一个子系统发生了错误,则主系统需要进行大量的修改;

使用MQ中间件,子系统之间相互独立,只需要到MQ中间件中去取数据,则降低了系统之间的耦合性,提高了可维护性。
(2)异步提速

不使用MQ中间件

使用MQ中间件时,订单系统只需要把消息给到MQ中间件,不管之后的操作是否执行成功,直接给用户返回下单成功,提升了用户体验;
(3)削峰填谷

当用户发来的请求超过了系统最大处理的数量,系统宕机;

当使用MQ中间件时,用户的请求先发送到MQ中间件,而MQ中间件是可以存储5000个请求的,A系统再慢慢去从MQ中间件中取出请求进行处理;

(1) 系统可用性降低
系统引入的外部依赖越多,系统稳定性就越差。一旦MQ宕机,就会对业务产生影响,必须保证MQ的高可用。
(2) 系统复杂性提高
MQ的加入大大增加了系统的复杂性,需要保证消息没有被重复消费、处理好消息丢失的情况、保证消息传递的顺序性。
(3)一致性问题
对于MQ中传来的消息数据,如果A、B系统处理成功了,C系统处理失败了,如果保证数据处理的一致性?
(1)生产者不需要从消费者处 获得反馈。引入消息队列之前的直接调用,其接口的返回值应该为空,才能使下层的动作还没做,上层当成做完了继续往后走,使异步成为可能;
(2)容许短暂的不一致性;
(3)确实是用了有效果。
来源:http://www.itheima.com/special/brandzly/index.html?jingjiahmpz-pz-pc-biaoti
基础概念 事务的相关解读:用于一组要么一起成功要么一起失败的场景 什么是事务 将一组操作绑定在一起,要么都成功或者都失败的操作 生活中需要事务的案例 转账 事务的目的 保证操作的原子性 操作失败的标准 操作过程出现了异常,导致操作没有执行完成 事务控制的重点 在失败的情况下,如何撤销已经成功的操作 事务成功的标准 数据发生了变化 事务控制的原理 封装数据库的事务来实现 应用事务与数据...
1.1 What is Scrum? Scrum is an iterative, incremental process for developing any product or managing any work. It produces a potentially shippable set of functionality at the end of every itera...
PHP的基本概念 PHP文件的代码需要放在<?php ?>中,只有PHP的代码的时候,结束符? >可以省略。也可以简写为<? ?> 这种方法默认并不支持,需要去 php.ini 中修改 short_open_tag=off 改为 on才可正常使用,不推荐 修改PHP.ini里面的内容需要重启服务器 php代码可以与html 嵌套使用 php中只要不是{ }的语句都要用...
1、进程的定义 程序:就是一个指令序列 早期的计算机只支持单道程序,程序的代码放在程序段内,程序运行过程处理的数据放在数据段内(如变量)。 引入多道程序技术以后,系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)。为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体的概念。 PCB、程序段、数据段三部分构成了进程实体(进程映像)。...
# fdisk -l Disk /dev/hda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes (7M多每个柱面) Device Boot &nbs...
树 1.节点的度:一个节点含有的子树的个数称为该节点的度。 2. 树的度:一棵树中,最大的节点的度为树的度。 3. 叶子节点/终端节点:度为0的节点称为叶子节点。 4. 双亲节点/父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点。 5. 孩子节点/子节点:一个节点含有的子树的根节点称为该节点的子节点。 6. 根节点:没有双亲节点的节点。 7. 节点的层次:从根开始定义起,根为第一层,跟...
HIVE是什么 数据仓库:倾向于数据管理,管理的原始数据可以不是存储在自己本地 应用场景 OLAP:联机分析处理,适用于数据仓库,hive中不支持事务 OLTP:联机事务处理,适用于数据库 模式 数据仓库:hive读模式时会进行校验,写模式不进行校验 数据库:关系型数据库一般是写模式,分布式数据库的模式无法确定 hive的优缺点 优点:延展性,可自定义函数 缺点: 不支持事务 不支持行级别的upd...
这段时间工作中用到了Docker以及Kubernetes(简称K8S),现在整理下我学习Docker以及K8S过程中看的一些比较好的资料,方便自己回顾,也希望能给容器小白一些帮助。给自己定一个小目标,二月底之前完成。 这是本系列的第一篇文章, 将简单介绍什么是Docker以及Docker的一些基本概念。 整理自: https://www.gitbook.com/book/ye...
2012年4月25日晚,翻翻自己喜欢的一门语言学习书(python参考手册),无意中发现书中夹着之前的明信片(有一次和同事一起去前门邓丽君音乐生活馆留下来的),感觉学习也是一种美!于是乎拍下这不经意的时刻,哈哈!...
I am examining the interaction between a continuous variable (bloodq) and a categorical variable with three levels (ER, RB, and WB). In order to see how the betas differ across tissue types, I would l...
I want to pass the output of ConvLSTM and Conv2D to a Dense Layer in Keras, what is the difference between using global average pooling and flatten Both is working in my case. That both seem to work d...
I am writing a validation groovy script for a test step, intended to test a SOAP Web Service. Now, I want to call the same test step, with different input value from the groovy script. Is it possible?...
I have a problem with my web application with wicket. I am using wicket 6.14. I can't say exactly what the problem is, but I can describe the problem. I am using a self written pagestore, which uses h...
In unity is it possible to load a resource that is out side of the resources folder. I want the user to be able to set a textAsset variable from a file outside of the Assets directory entirely. You ca...