原文地址:https://blog.csdn.net/yexiaomodemo/article/details/80444732

一般认为,采用消息传送机制/消息队列 的中间件技术,进行数据交流,用在分布式系统的集成。

为什么使用消息中间件

解决分布式系统之间消息的传递。

电商场景:用户下单减库存,调用物流系统,系统扩充后服务化和业务拆分。系统交互,y一般用RPC(远程过程调用)。如果系统扩充到有几十个接口,消息中间件来解决问题。

消息中间件有些什么使用场景

一、异步处理

用户注册(50ms),还需发送邮件(50ms)和短信(50ms)

串行:(150ms)用户注册—》发送邮件----》发送短信

并行(100ms):用户注册—》发送邮件

a)        |----》发送短信

消息中间件(56ms):

用户注册(50ms)—》(6ms)消息中间件《-----发送邮件

《-----发送短信

说明:一个用户注册流程,包含下述业务:

1.        注册处理以及写数据库、

2.        发送注册成功的手机短信

3.        发送注册成功的邮件信息

我们使用老方法的话,则会注册完执行发送短信再执行邮件发送。太low

一般使用的是:在注册成功后,使用两个线程去做发送邮件,发送短信操作。

如果用消息中间件:则将两个线程创建这些事情省了,直接发送消息给消息中间件,然后让邮件服务和短信服务自己去消息中间件里面去取消息,然后取到消息后再自己做对应的业务操作。就是这么方便

二、应用的解耦

a)        订单系统---》库存系统(强耦合)

b)       消息中间件:订单系统---》消息中间件《----库存系统(解耦)

说明:用户购买一笔订单,订单成交—》调用库存系统—1---》返回给订单系统,此时算一个正常业务。还有不正常的业务,就是用户订单完成后,订单系统并不去滴啊用库存系统-1操作,而是调用消息中间件,写入一个订单信息。又库存系统自己去消息中间件上去获取,然后更新库存,这样能够减少互联网型应用追求的快这一个属性。而库存系统读取订单间库存其实这个操作也是非常快的,所以有消息中间件对解耦来说也是一个不错的方向。

三、流量的削峰

a)        用户请求-----》秒杀应用

b)        应用的前端加入消息队列

c)        用户请求-----》消息队列《----秒杀应用

说明:比如,系统举行秒杀活动,热门商品。流量蜂拥而至 100件商品,10万人挤进来怎么办,10万秒杀的操作,放入消息队列。秒杀应用处理消息队列中的10万个请求中的100个,其他的打回,通知失败。流量峰值控制在消息队列处,秒杀应用不会瞬间被怼死.

四、日志处理

a)        错误日志---》消息队列《----日志处理

b)        用户行为日志--》消息队列(kafka)《-----日志的存储或流式处理

说明:日志处理 可能随时kafka的强项,大数据的日志处理非它莫属,我没用过,只知道它很强大。非常强大。

五、纯粹的消息通信

消息中间件的使用场景相关推荐

  1. 以ActiveMQ为例JAVA消息中间件学习【4】——消息中间件实际应用场景

    前言 当前真正学习消息中间件,当前已经走到了,可以简单的使用,网上有很多那种复杂的高可用的架构,但是那些都是对于一些比较大型的项目来说的. 对于一些小型的项目可能用不到那么大的架构,于是我们需要从最简 ...

  2. 消息中间件的应用场景与 RabbitMQ的六种工作模式介绍

    消息中间件的应用场景与 RabbitMQ的六种工作模式介绍 消息中间件应用场景 异步处理 应用解耦 流量削峰 RabbitMQ的六种工作模式 简单模式 工作模式 发布订阅模式 路由模式 主题模式 PR ...

  3. 不得不学习的MOM异步通信,消息中间件的使用场景,实在是太赞了

    消息中间件的使用场景 在微服务架构中,基于消息中间件的交互方式可以解决同步请求/响应模式中服务高度耦合.服务交互灵活性脆弱.交互失败导致服务不可用等问题. 假设我们现在有两个微服务:权限管理服务和人力 ...

  4. 阿里一面,说说你知道消息中间件的应用场景有哪些?

    1.前言 又到了金三银四的时候,大家都按耐不住内心的躁动,我在这里给大家分享下之前面试中遇到的一个知识点(MQ的应用场景),如有不足,欢迎大佬们指点指点. 消息中间件应用背景 提高系统性能首先考虑的是 ...

  5. 阿里P8架构师谈:消息中间件介绍、典型使用场景、以及使用原则

    大型分布式架构里一定会涉及到消息中间件,今天先谈谈消息中间件. 常用的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ. 一.kafka 1.不完 ...

  6. MQ 消息中间件重构系统

    目录 1. 写在前面 2. 划分系统边界 3. 引入消息中间件解耦 4. 利用消息中间件削峰填谷 5. 手动流量开关配合数据库运维 6. 支持多系统同时订阅数据 1. 写在前面 本文咱们来聊聊如何通过 ...

  7. 深入理解阿里分布式消息中间件

    什么是分布式消息中间件 什么是分布式消息中间件? 对于分布式消息中间件,首先要了解两个基础的概念,即什么是分布式系统,什么又是中间件. 分布式系统: "A distributed syste ...

  8. weblogic jms消息 删除_消息队列与消息中间件概述:消息中间件核心概念与技术选型...

    什么是消息? "消息"是在两台计算机间传送的数据单位. 消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象. 什么是队列? 队列(Queue)队列是一种先进先出 ...

  9. 分布式消息中间件之kafka设计思想及基本介绍(一)

    Kafka初探 场景->需求->解决方案->应用->原理 我该如何去设计消息中间件--借鉴/完善 场景 跨进程通信(进程间生产消费模型) 需求 基本需求 实现消息的发送和接收. ...

  10. 消息中间件MQ及ActiveMQ介绍

    前言 本篇文章会首先介绍MQ的概念,及核心概念及核心设计来理解出为什么需要消息中间件,消息中间间的作用,然后会接着介绍常用的activeMq的安装,以及在spring中集成,一些比较常用的命令. 无论 ...

最新文章

  1. 2019牛客第四场I题 string
  2. 信息安全培训的一些考题和答案
  3. 2021牛客暑期多校训练营3 C Minimum grid 网络流 + 二分图匹配
  4. 麒麟linux百度云,百度网盘 Linux 版发布,搭配优麒麟运行更完美!
  5. spring-bean(xml方式DI)
  6. 传闻称马斯克从创始人手中偷走了特斯拉公司,马斯克回击...
  7. Git自由之章 - 本地仓库的基本操作
  8. 备份软件选择---gengzy@dc
  9. MySQL详细学习教程(建议收藏)
  10. 需求分析报告应该包含哪些部分_一份数据分析报告所需要的内容以及注意事项...
  11. 生成对抗神经网络基本思想
  12. python中英文切换_Python方法完成转换英文字符操作
  13. CAD立体图做法详细步骤
  14. 好用免费的web报表工具
  15. 8CRM客户案例分享
  16. win12 修改dns脚本
  17. 什么是抽象类和抽象方法,以及他们的特点
  18. 《C语言程序设计》江宝钏主编-习题3-6-商和余
  19. 能用计算机做什么作文,电脑的用途作文(九篇)
  20. 读取BIL格式高光谱数据——C/C++

热门文章

  1. Linux经常使用命令(十六) - whereis
  2. Android Cursor浅析
  3. Shell脚本 批量修改目录下若干文件名
  4. phpstorm的安装和破解
  5. HihoCoder-1523(思维)
  6. D - 昂贵的聘礼(最短路径)
  7. pycharm怎样运行python_python – 如何使用PyCharm运行doctests?
  8. kmeans算法详解与spark实战
  9. java class类
  10. 血腥!实况转播SQL注入全过程,让你知道危害有多大。