消息中间件一般两个功能,解耦和异步处理,分别举个例子吧

解耦合:
比如我们做一个微博产品中的好友系统,就很需要使用消息中间件
当我们添加一个关注的时候, 涉及以下几个子系统

推荐系统,需要根据你关注的人给你做数据分析
搜索系统,需要根据你的数据建立索引
feed系统,需要根据你关注的人,发送一条新鲜事
统计系统 用于数据统计,了解产品情况

而如果直接在加关注的流程里进行这些操作,可能带来风险,所以,会引入mq来解耦合,因此就像你说的,一般是 "单向传输" 的(当然这不是绝对的,取决于你系统复杂度),而且发往mq的数据一般都不大,比如 from_uid, to_uid 就行了,一般都不会很大,如果发送的数据不满足你的要求,这个时候,需要调用好友系统提供的接口了

异步处理:
有的时候,我们一个操作可能会耗时比较久,所以,并不会在主要业务流程里进行处理
比如,我们在删除一个用户的时候,可能会有很多关联数据的操作,为了尽快的响应以及解耦合,我们会将这个消息发送给其他系统,让它们根据需求自己处理

转自:http://blog.sina.com.cn/s/blog_7085382f0102uy79.html

场景

1.分布式系统中,不同系统之间传递消息。 
比如系统B要监听系统A的消息,当A发出消息的时候,系统B根据消息,做相应的变化。这个场景很容易理解,就是不同系统之间的异步交互。 
2.在系统A中,自己发消息,自己监听。这个场景是我在现在工作中遇见的,当时看到自己的系统监听消息,下意识就想,是哪个系统发送的消息呢?后来问了别人才知道,是自己系统发消息,自己监听。为什么要这样做,自己系统中,直接可以调用到自己内部的一些方法了呀?原来这样做的原因有如下,首先,发送消息可以实现异步做一些动作,比如我们对一些信息做了修改,这些信息要同步到另一个系统中,我们有一种方法是,在一个事务里,做完修改就立刻调用另一个系统的modify方法,但是这样有一个问题,如果这个事务中很多方法,很可能导致调用超时,或者我们这一个方法体中,有多个调用,会导致系统耦合性太强,如果我们通过发送消息的方式调用,就做到了在本方法体中减少了方法调用,调用移动到了消息监听者中。这样不仅方法体中调用减少,而且做到了松耦合。

转自:http://blog.csdn.net/u012814506/article/details/48303071

转载于:https://www.cnblogs.com/beijingstruggle/p/6399298.html

消息中间件的意义和应用场景 (activeMq)相关推荐

  1. ActiveMQ消息中间件的作用以及应用场景

    ActiveMQ消息中间件的作用以及应用场景 一.ActiveMQ简介 ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE1.4 ...

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

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

  3. Html页面head标签元素的意义和应用场景

    相信在html5之前,很少人会关注html页面上head里标签元素的定义和应用场景,可能记得住的只有"title"."keyword"和"descri ...

  4. 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记

    最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了.额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ(ActiveMQ/RabbitMQ/Rocke ...

  5. 惊了 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记

    最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了. 附面试思维导图: 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ( ActiveMQ/Rab ...

  6. 熔断的意义和适用场景,你真的清楚吗?

    作者简介:曾任职于阿里巴巴,每日优鲜等互联网公司,任技术总监,15年电商互联网经历. 关于熔断,网上的文章很多,但是真正讲明白的文章寥寥无几.很多作者互相抄袭,缺乏自己的认知和理解. 分享熔断之前,咱 ...

  7. 消息中间件的多个企业级场景案例--分析

    1 用户注册后(会立即提示注册成功),过一会发送短信和邮件通知 发布/订阅模型 以上模式一般是用户注册成功后,写入一条数据到mysql,在发送一条消息到MQ! 如果不用消息中间件(或者简单的做成异步发 ...

  8. Html学习总结(2)——Html页面head标签元素的意义和应用场景

    相信在html5之前,很少人会关注html页面上head里标签元素的定义和应用场景,可能记得住的只有"title"."keyword"和"descri ...

  9. qos 流控功能_探讨一下QoS存在的意义以及使用场景

    2012年时在使用上海电信2.6MB下行/135KB上行的带宽时,当时没设定了QOS的网络下载迅雷连 路由管理界面都打不开,而设定了QOS则可以正常打开web管理界面至今想不通为什么. 从我的思维我认 ...

最新文章

  1. R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化
  2. bzoj2463谁能赢呢?
  3. postgresql数据库基础
  4. H5网页播放器播不了服务器上的mp4视频文件
  5. Redis运维和开发学习笔记(4) Redis参数意义
  6. html调用父页面的函数,js调用父框架函数与弹窗调用父页面函数的方法
  7. mysql+drbd+heartbeat高可用配置说明
  8. 【接口测试】axios测试接口
  9. 搭建html5的,HTML5 - 搭建移动Web应用
  10. 《精通 ASP.NET MVC 3 框架(第三版)》----第1章 设计思路 1.1 Web开发简史
  11. [Hadoop]Sqoop 1.4.2中文文档(二)之数据导出
  12. python怎么批量下载图片_批量下载网页图片(python)
  13. 液晶电视TCON板原理讲解<转>
  14. 《编程回忆录》之 Unity3D 视频教程
  15. 环绕声混响效果器-Acon Digital Verberate Immersive 2.2.1 WiN-MAC
  16. 哔哩哔哩缓存视频无声音,使用python合成音频与视频
  17. CAS:1537170-85-6_DBCO-PEG4-COOH_PEG-DBCO衍生物
  18. 【翻译】开发人员的技术写作
  19. 互联网电影院新战略5G+民族电影
  20. nodo合并多个mp3文件

热门文章

  1. Add margining capability to a dc/dc converter
  2. 如何查看mysql连接相关参数
  3. 桥牌笔记:当其它希望不存在时,才进行飞张
  4. Spring3基于注释驱动的AOP
  5. c的按位取反运算符(~) 与逻辑逻辑(!)
  6. opencv 图片读取和视频读取(一)
  7. 操作系统(科普章节)
  8. JSP 与 Servlet 的关系
  9. CodeForces 362C
  10. 转化率极高的十个网站 怎样来提高转化率