(1)系统可用性降低

系统引入的外部依赖越多,越容易挂掉,本来你就是 A 系统调用 BCD 三个系统的接口就好了,人 ABCD 四个系统好好的,没啥问题,你偏加个 MQ 进来,万一MQ 挂了咋整?MQ 挂了,整套系统崩溃了,你不就完了么。

(2)系统复杂性提高

硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?头大头大,问题一大堆,痛苦不已

(3)一致性问题

A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是,要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,咋整?你这数据就不一致了。

所以消息队列实际是一种非常复杂的架构,你引入它有很多好处,但是也得针对它带来的坏处做各种额外的技术方案和架构来规避掉,最好之后,你会发现,妈呀,系统复杂度提升了一个数量级,也许是复杂了 10 倍。但是关键时刻,用,还是得用的。

最新文章

  1. 基于shell脚本比较数字大小
  2. samba服务器安装,共享nginx目录
  3. 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment
  4. CTR预估评价指标介绍
  5. mac 解决eclipse OutOfMemoryError
  6. 【bzoj3674】 可持久化并查集加强版
  7. NoteExpress 自定义参考文献输出样式
  8. 161019、并发容器ConcurrentHashMap
  9. asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
  10. word2003公式编辑器公式显示不完整问题
  11. asp生成静态HTML(动态读取)
  12. iOS_SN_沙盒文件操作及位置
  13. 如何在已经存在python2的linux环境上安装python3
  14. SQL中存储过程和自定义函数的区别(转载)
  15. 排序算法入门之插入排序(java实现)
  16. HBuilder真机联调、手机运行
  17. java_异常
  18. 2015-11-06 ajax
  19. 使用Dockerfile来构建镜像
  20. scoketio

热门文章

  1. python-通过configparser模块读取后缀为 .ini 的配置文件信息
  2. 在 CentOS 或 RHEL 系统上检查可用的安全更新的方法
  3. 【C# 异常处理】调试器 管理异常
  4. Oracle之关系型数据库
  5. syntax error: unexpected end of file完美解决方案
  6. IDEA 连接MySQL并使用
  7. 民间流转的pytest项目结构设计
  8. 『德不孤』Pytest框架 — 11、Pytest中Fixture装饰器(一)
  9. Git更新本地仓库及冲突"Commit your changes or stash them before you can merge"解决
  10. think php 修改页面