来自公众号:京东技术

消息队列(MQ)是一种不同应用程序之间(跨进程)的通信方法。应用程序通过写入和检索出入列队的数据(消息)来通信,而无需通过专用链接来连接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用(Remote Procedure Call. RPC)的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求,这样天然的就实现了异步的目标。那么MQ还有哪些功能场景呢?下面逐一介绍。

解耦

MQ最直接的使用场景就是可以将两个系统进行解耦,比如我们的货款抵扣业务场景,用户生成订单发送MQ后立即返回,结算系统去消费该MQ进行用户账户金额的扣款。这样订单系统只需要关注把订单创建成功,最大可能的提高订单量,并且生成订单后立即返回用户。而结算系统重点关心的是账户金额的扣减,保证账户金额最终一致。这个场景里面还会涉及到重试幂等性问题,后面有介绍。

削峰填谷

还是以订单系统和结算系统场景为例,如果订单系统通过RPC框架来调用结算系统,在有高峰促销的情况下生成订单的量会非常大,而且由于生成订单的速度也非常快,这样势必会给结算系统造成系统压力,服务器利用率则会偏高,但在不是高峰的时间点订单量比较小,结算系统的服务器利用率则会偏低。对于结算系统来说就会出现下面这样的高峰波谷现象图。

<

java onmessage监听消息队列_消息队列(MQ)功能场景相关推荐

  1. java gui 监听组合键_【CSDN常见问题解答】Swing监听组合键 | 学步园

    其实监听键盘事件和简单,键盘也就这3个事件keyTyped, keyReleased, keyPressed 下面我们就监听一个CTRL+C组合键好了. import java.awt.Color; ...

  2. java 多线程监听同一个端口_使用多线程在Java服务器中同时侦听两个端口

    我正在构建一个简单的Java服务器,该服务器使用两个ServerSocket实例同时在两个端口上同时侦听客户端请求.这是服务器的代码: import java.io.PrintWriter; impo ...

  3. java用监听捕捉点_使用Robot类创建自己的Java版屏幕捕捉程序

    评论: # re: 使用Robot类创建自己的Java版屏幕捕捉程序 2006-05-18 16:56 | spermakert 刚学JAVA向你学习! spermakert@gamil.com 谢谢 ...

  4. 【监听微信公众号消息】

    监听微信公众号消息 效果图如下: 环境要求 效果图如下: 环境要求 需要windows服务器,登陆上微信.获取到的消息是xml格式,需要解析内容获取自己想要的公众号推送的消息. 详情:https:// ...

  5. ajax和Java session监听

    Session监听嘛,没什么好解释的,java提供了很灵活的事件机制来监听session,可以监听session的创建和销毁,监控session 所携带数据的创建.变化和销毁,可以监听session的 ...

  6. java jmenu 监听_Java中用得比较顺手的事件监听

    第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...

  7. Java实现监听文件变化的三种方法,推荐第三种

    背景 在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载.当然,在其他业务场景下,比如想实现配置文件的动态加载.日志文件的监听.FTP文件变动监 ...

  8. java如何监听以太坊交易

    2019独角兽企业重金招聘Python工程师标准>>> 你可以在web3j库的帮助下使用java轻松监听以太坊交易,但此库无法监听Erc20 Token交易. 要监听Erc20Tok ...

  9. 事件监听机制(一)Java事件监听

    事件监听机制(一)Java事件监听 事件监听实现流程 事件对象: 继承自java.util.EventObject对象,由开发者自行定义实现. 事件源: 就是触发事件的源头,不同的事件源会触发不同的事 ...

最新文章

  1. 让dwz 的表格或者表单显示竖滚动条的代码
  2. linux系统基本操作命令
  3. String.format()的使用
  4. 【转载】飞鸽传书2013【绿色版】
  5. The more, The Better(HDU-1561)
  6. GridView自带的分页功能的实现
  7. python官网下载文件-使用Python下载文件的简单示例
  8. 谈谈我们的学习和我们的Blog
  9. Microsoft Excel设置单元格下拉框的方法
  10. 自动驾驶 2-1 第 1 课补充阅读:传感器和计算硬件 -- 下
  11. C语言从入门到精通需要多久?你真的知道吗!
  12. 武汉理工大学计算机专业课程表,武汉理工大学2014年春季第一周课表.xls
  13. Vyos防火墙功能配置
  14. 基于multisim的fm调制解调_基于SDR的FM调制与解调器的实现
  15. 94个比付费软件更好的免费软件(转载)
  16. 美式口语发音技巧:《连读》
  17. 物联网操作系统软件定时器
  18. 作为计算机专业学生,说一说校招
  19. UOS系统无线网络手动关闭后无法恢复解决办法
  20. 飞针测试和专用治具测试流程详解

热门文章

  1. 留给百度云的时间不多了
  2. 韩国抵免区块链研究税收
  3. opencv转换颜色空间更改图片背景
  4. 从两点战斗到六点,喝光了豪享来两瓶红茶
  5. 去雨方向工作概述(二)
  6. 看书之 常量指针 指针常量
  7. 跟老男孩儿学习LINUX运维
  8. ORA-03137: TTC protocol internal error : [12333] [7] [9] [50] [] [] [] []
  9. 高仿网易云音乐(vue实战项目)
  10. kubernetes 中安装 heapster 问题