RabbitMQ(消息中间件)在工作中的应用场景有如下几种:

1 、跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。

2 、多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。在企业应用集成( EAI )中,文件传输,共享数据库,消息队列,远程过程调用都可以作为集成的方法。

3 、应用内的同步变异步,比如订单处理,就可以由前端应用将订单信息放到队列,后端应用从队列里依次获得消息处理,高峰时的大量订单可以积压在队列里慢慢处理掉。由于同步通常意味着阻塞,而大量线程的阻塞会降低计算机的性能。

4 、消息驱动的架构( EDA ),系统分解为消息队列,和消息制造者和消息消费者,一个处理流程可以根据需要拆成多个阶段( Stage ),阶段之间用队列连接起来,前一个阶段处理的结果放入队列,后一个阶段从队列中获取消息继续处理。

5 、应用需要更灵活的耦合方式,如发布订阅,比如可以指定路由规则。

6 、跨局域网,甚至跨城市的通讯( CDN 行业),比如北京机房与广州机房的应用程序的通信。

这里还有一种情况,同时有大量用户注册你的软件,再高并发情况下注册请求开始出现一些问题,例如邮件接口承受不住,或是分析信息时的大量计算使cpu满载,这将会出现虽然用户数据记录很快的添加到数据库中了,但是却卡在发邮件或分析信息时的情况,导致请求的响应时间大幅增长,甚至出现超时,这就有点不划算了。面对这种情况一般也是将这些操作放入消息队列(生产者消费者模型),消息队列慢慢的进行处理,同时可以很快的完成注册请求,不会影响用户使用其他功能。

所以在软件的正常功能开发中,并不需要去刻意的寻找消息队列的使用场景,而是当出现性能瓶颈时,去查看业务逻辑是否存在可以异步处理的耗时操作,如果存在的话便可以引入消息队列来解决。否则盲目的使用消息队列可能会增加维护和开发的成本却无法得到可观的性能提升,那就得不偿失了。

java工作中mq应用多吗_RabbitMQ消息中间件在工作中的应用场景相关推荐

  1. Java黑皮书课后题第8章:**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。编写一个程序,按照总工时降序显示

    **8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中.1行包含7列,记录了一个雇员7天的工作小时数.编写一个程序,按照总工时降序显示 题目 题目描述 破题 代码 ...

  2. java中成员变量的加载时机_工作奇谈——JAVA高级特性之反射

    一.从问题入手 最近又要面试新人,所以翻了翻以前的代码,突然发现了一个有意思的问题. 问:如下一个Student类,请实例Student并对其成员变量赋值. public class Student ...

  3. JAVA应用开发MQ实战最佳实践——Series2:消息队列RocketMQ性能测试案例

    简介:JAVA应用开发MQ实战最佳实践--Series2:消息队列RocketMQ性能测试案例 往期内容 JAVA应用开发MQ实战最佳实践--Series1:RocketMQ综述及代码设计 1. 消息 ...

  4. java连接ibm mq

    http://blog.csdn.net/liaomin416100569/article/details/7254191 首先 打开 IBM websphere MQ 管理器 添加一个队列管理器 名 ...

  5. java ibm 2035,C# java 连接 IBM MQ时出现 2035 或 2013认证错误的解决方法

    当C# 或 java 连接 IBM MQ 是出现 2035 或 2013的错误时 java的错误提示: com.ibm.msg.client.jms.DetailedJMSSecurityExcept ...

  6. 如何在Java中处理ConcurrentModificationException? 在循环中从ArrayList中删除元素时要当心...

    从Java中从ArrayList中删除元素时常见的问题之一是ConcurrentModificationException. 如果您对索引使用经典的for循环或增强的for循环,并尝试使用remove ...

  7. Java程序停止 mq通道未关闭_java – 如何在MQ上停止丢失消息

    我正在编写一个在LINUX环境中运行的Java应用程序,它使用SYNCPOINT在MQ上执行事务.它使用Websphere MQ Java类与MQ服务进行交互.我在我的代码中做的是以下(伪): MQG ...

  8. 深入分析Java I/O的工作机制 (三)网络I/O的工作机制 很详细

    3.网络I/O的工作机制 前言:数据从一台主机(服务端)发送到网络中的另一台主机(客户端)需要经过很多步骤:首先需要有相互沟通的意向.其次要有能够沟通的物理渠道(物理链路):是通过电话,还是直接面对面 ...

  9. java中的静态、动态代理模式以及Spring中的CgLib动态代理解读(面试必问)

    java中的静态.动态代理模式以及Spring中的CgLib动态代理解读(面试必问) 静态代理 动态代理 CgLib动态代理     基础知: 反射知识 代理(Proxy)是一种设计模式,提供了对目标 ...

最新文章

  1. [hihocoder 1075] 开锁魔法III
  2. 开发日记-20190417 关键词 WheelView(视图绘制)
  3. html+not选择器,CSS3属性选择器与(:not)选择器_html/css_WEB-ITnose
  4. jena 学习思路(转)
  5. 数据库元数据数据字典查询_1_列出模式中所有的表
  6. VS2010-MFC(对话框:一般属性页对话框的创建及显示)
  7. usb接口定义引脚说明_PerfDogService使用说明
  8. Redux 中 combineReducers实现原理
  9. jq使用教程03_JQData说明书概要
  10. 动态规划 —— 最长递增子序列(LIS)
  11. python 函数 思维导图
  12. 第二章第三章 查找和排序(上)
  13. 高速公路计算机网络安全,计算机网络安全技术在高速公路收费网络的应用
  14. 客户至上 | 国产BI领跑者,思迈特软件完成C轮融资
  15. Activiti学习之根据条件判断流程走向
  16. js ajax获取天气预报,Ajax 通过城市名获取数据(全国天气预报API)
  17. 用html5做一个介绍自己家乡的页面_(近万字)一篇文章带你了解HTML5和CSS3开发基础与应用-适合前端面试必备...
  18. 九阴真经服务器维护,《九阴真经》-官方网站-一亿人的真武侠梦,开创全自由空中打斗...
  19. 华为5c_华为5c手机价格及产品参数配置【图文】
  20. 火狐网页对话框_默认情况下,在Firefox中展开“添加书签”对话框

热门文章

  1. php给网页加水印_php实现图片添加水印功能
  2. 雅思阅读真经总纲_你们要的刘洪波《雅思阅读真经总纲》高清PDF扫描版来了!!...
  3. iphone最新款手机_从甲骨到iphone,那些掉进中国式陷阱的歪果仁
  4. 参考AWR中的Instance Activity Statistics 计算IOPS
  5. list copy中status列的状态的意义。
  6. mysql 加密 en_以极少的停机时间加密运行 MySQL 或 MariaDB 的 Amazon RDS 数据库实例...
  7. 基于JAVA+SpringMVC+MYSQL的火车票订票系统
  8. ad用户和计算机无法启动,windows 2008AD计算机启动脚本无法执行
  9. 应用层协议:HTTPS
  10. 【洛谷1090】合并果子