JAVA-消息队列使用的场景

泛微OA自定义post接口和路径(无侵入) 阅读详情

消息队列场景:异步处理,应用解耦,流量削锋,日志处理,消息通讯。

①异步处理:
场景:用户进行注册,需要发送邮件和发送短信。传统的处理方式:1.串行 2.并行

1.串行: 将注册信息写入数据库成功后,发送注册邮件,再发送注册短信,以上三个步骤全部完成,才会返回给客户端。
在这里插入图片描述

2.并行: 将注册消息写入到数据库成功后,发送注册邮件的同时也发送注册短信。三个任务完成后,再返回给客户端。与串行相比,减少了后面发送两步的处理时间。
在这里插入图片描述

不考虑其他因素:
如图所示:串行处理时间花费了150ms,并行处理时间花费了100ms。

在引入消息队列后,将不是必须的业务逻辑,进行异步处理。
在这里插入图片描述

②应用解耦:
场景:用户下单后,订单系统需要通知库存系统。传统做法:订单系统调用库存系统的接口。
在这里插入图片描述
缺点:

  • 假如库存系统无法访问,则订单减库存将失败,从而导致订单失败。
  • 订单系统和库存系统耦合。

利用消息队列来处理上述问题:
在这里插入图片描述

  • 订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列, 返回用户订单下单成功。
  • 库存系统:订阅下单的消息,采用拉/推的方式,获取下单信息,库存系统根据下单信息,进行库存操作。
  • 假如:在下单时库存系统不能正常使用,也不影响正常下单,因为下单后,订单系统写入消息队列就不再关系后续其他操作了。实现订单系统与库存系统的应用耦合。

③流量削锋:
流量削锋一般在秒杀活动或者团抢活动出来容易出现 。
场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,一般需要在应用前端加入消息队列。

  • 可以控制活动的人数
  • 可以缓解短时间内高流量压垮应用

在这里插入图片描述

  • 用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误界面。
  • 秒杀业务根据消息队列中的请求信息,再做后续处理。

④日志处理:
日志处理是指将消息队列用于日志处理中,比如kafka的应用,解决大量日志传输的问题。
在这里插入图片描述

  • 日志采集客户端:负责采集日志数据,并定时买入kafka队列。
  • kafka消息队列:负责日志数据的接收、存储和转发。
  • 日志处理应用:订阅并消费kafka队列中的日志数据。

新浪kafka日志处理机制:
在这里插入图片描述

  • kafka:接收用户日志的消息队列。
  • logstash:做日志的解析,把日志解析成json格式给Elasticsearch。
  • Elasticsearch:实时日志分析服务的核心技术,一个schemaless,实时的数据存储服务,通过index组织数据,兼具强大的搜索和统计功能。
  • Kibana:基于Elasticsearch的数据可视化组件,超强的数据能力是众多公司选择ELK stack的原因。

⑤消息通讯:
消息通讯是指一般消息队列都内置了高效的通信机制,因此也可以单纯的用来消息通讯。比如实现点对点消息队列,或者聊天室。

点对点通讯:
在这里插入图片描述
客户端A和客户端B使用同一个消息队列进行通信。

聊天室通讯:
在这里插入图片描述
客户端A,客户端B,,客户端N都订阅了同一个消息队列,用于消息的发布和接收,实现聊天室通讯。

https://www.cnblogs.com/ruiati/p/6649868.html (原文,非常好)

老版QQ原生表情gif动态 这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。 立即下载

相关推荐

COCOS 3.8 接入高德定位SDK

/微信登录所必须的code。//是否获得code。

八喜互动 1993

java 消息队列 例子_RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

一、消息队列使用场景或者其好处消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接...

weixin_33324399的博客 1094

嵌入式环境下XML配置文件解析实践

在资源受限的嵌入式环境中,如何轻量级地解析XML配置文件成为关键。通过简化语法结构与优化内存使用,实现快速读取和解析配置文件,提升系统启动效率与稳定性。

weixin_31869917的博客 399

Java消息队列_消息队列的使用

原文:https://www.cnblogs.com/linjiqin/p/5720865.html 关于消息队列的使用 一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息...

qq_22339269的博客 1006

汽车测试工程师工作准则

希望这份综合的工作规范能帮助你更好地规划职业发展。如果你对某个特定领域,比如自动驾驶测试或智能座舱测试,有进一步的兴趣,我很乐意提供更具体的信息。

qq_40844444的博客 452

用Omniverse Kit开发第一个USD插件:从环境配置到实战案例(Python 3.7版)

本文详细介绍了如何使用NVIDIA Omniverse Kit和Python 3.7开发第一个USD插件,涵盖从环境配置到实战案例的全过程。通过创建可实时同步材质属性的USD插件,开发者可以快速掌握Omniverse开发框架,提升3D内容创作效率。

x8y9z0的博客 586

消息队列RabbitMQ基本使用(Java代码实现)

同步通讯的问题调用链中每个服务在等待响应的过程中,不能释放请求占用的资源,如果服务级联失败,提供者出现故障,会导致所有调用方出现问题。这里介绍几个概念,以购买商品为例,支付服务是事件发布者(publisher),支付完成后只需要发布一个支付成功的事件(event),事件中带上订单id。订单服务和物流服务是事件订阅者(Consumer),订阅支付成功的事件,监听到事件后完成自己业务即可。有一个中间人(Broker)。发布者发布事件到Broker,不关心谁来订阅事件。订阅者从Broker订阅事件,不关心谁发来的

weixin_44372857的博客 3996

详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢

详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢。

具身机器人和通用AI 1229

Java进阶-实现一个基本的消息队列

消息队列是一种用于在应用程序之间传递消息的关键组件,它能够提高系统的可伸缩性和可靠性。在这篇文章中,我们将探讨如何实现一个基本的消息队列,了解其核心概念和基本原理。

踏雨歌青春,诗酒趁年华 4537

分子动力学仿真软件:LAMMPS_(16).应用案例分析

通过以上四个应用案例,我们详细介绍了如何使用LAMMPS进行不同系统的分子动力学仿真。从简单的液体水仿真到复杂的纳米管仿真,每个案例都包含了详细的步骤说明和代码示例。读者可以通过这些示例实际操作并验证结果,从而更好地理解LAMMPS的功能和使用方法。希望这些案例能够为读者在分子动力学仿真领域的研究和应用提供帮助。

kkchenjj的博客 837

高级数据库--作业及答案

中科大金培权老师的高级数据库课程作业及答案

一杯水果茶!足矣~ 1658

JAVA队列(Queue)用法附实例讲解

队列用于模拟队列这种数据结构,队列通常是指“先进先出”的容器。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。

机智大头 1万+

利用人工神经网络在Abaqus中实现本构模型的网格粗化计算框架:详细指南与实践

在这篇文章中,我们详细介绍了如何在Abaqus中实现基于人工神经网络(ANN)的本构模型以进行网格粗化的计算框架。我们通过两个主要模块——数据生成器模块和ANN训练模块,实现了这一计算框架,并将训练好的ANN集成到Abaqus的用户材料子程序(UMAT)中,创建了一个基于ANN的本构模型。我希望这篇文章能帮助到那些希望在Abaqus中实现基于ANN的本构模型的读者,同时,我也非常欢迎大家提出宝贵的意见和建议,让我们共同进步。

qq_38334677的博客 1715

java消息队列使用场景

转自:http://blog.163.com/sir_876/blog/static/11705223201332444647261/

赠人玫瑰,手留余香. 2421

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JAVA 消息队列的使用场景

laizi :http://blog.youkuaiyun.com/u012260707/article/details/50476475 今天看到我们的招聘信息有对消息队列有要求,然后就思索了一翻,网上一搜一大堆。 我可以举个小例子先说明应用场景 假设你的服务器每分钟的处理量为200个,但客户端再峰值的时候可能一分钟会发1000个消息给你,这时候你就可以把他做成队列,然后按正常有序的处理,先进后出

公子七 6039

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

消息队列的使用场景【Java】

消息队列的使用场景【Java】

小蜜蜂vs码农 767

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java消息队列的使用场景

对初学者来说,消息队列的使用场景或许并不是那么清楚,那么下面来给大家列举几种常见的消息队列使用场景:

Spring为核心 1819

JAVA开发之消息队列使用场景

消息队列顾名思义就是将需要发送的消息存入队列,一般有两种 (1) Stack(LIFO) (2) Queue(FIFO) 当需要或者能处理该消息时出列, 这两种消息队列都可以用linkedlist封装与实现, 如下 public class MyStack<T> { private LinkedList<T> storage = new LinkedList&l...

qq_38700349的博客 423

阿里二面:为什么使用消息队列?

你需要去考虑一下你负责的系统中是否有类似的场景,就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ。其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?给他异步化解耦,也是可以的,你就需要去考虑在你的项目里,是不是可以运用这个 MQ。需要我们进行流量的削峰,让系统可以平缓的处理突增的请求。系统现在不需要了呢?

jcc4261的博客 276

Java面试八股之消息队列中推模式和拉模式分别有哪些使用场景

多级队列:在某些复杂的系统架构中,可能会使用多级队列来优化消息处理过程,例如先用推模式快速分发,再用拉模式进行精细化处理。混合模式:一些系统可能会采用推模式来快速传递消息,然后使用拉模式来处理消息,以确保消息被可靠处理。可靠性较高:消费者可以根据需要控制消息的获取频率和数量,降低因处理速度跟不上导致的消息丢失风险。系统资源可控:推模式对消费者端的资源管理要求较高,适用于资源可控的场景。资源受限的环境:消费者端资源有限,需要精细控制消息的处理量和频率。消费者数量固定:消费者数量相对稳定,且容易预测。

u012151345的博客 789

java基础(十三)消息队列

消息队列(Message Queue,简称 MQ)是一种用于在不同系统、服务或组件之间传递消息的通信机制。你可以将其理解为一个中间转发器,负责接收、存储和投递消息,实现系统间的解耦、异步通信和流量削峰。消息队列作为分布式系统的核心组件,在现代架构中扮演着越来越重要的角色。

2301_79028279的博客 1740

Java中的消息队列技术及其应用场景

Java中的消息队列技术及其应用场景大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!消息队列是一种在应用程序之间传递消息的通信方式,它提供了解耦、异步处理和可靠传输的能力。在大规模分布式系统中,消息队列被广泛应用于各种场景,如系统解耦、异步处理、削峰填谷、日志处理等。Java中的消息队列实现在...

weixin_41438751的博客 113

探索Java中的消息队列系统及其应用场景

Java中的消息队列系统为解决分布式系统中的异步处理、系统解耦和流量削峰填谷等问题提供了有效的手段。通过Apache Kafka和RabbitMQ等常见的消息队列系统,可以实现高效、可靠的消息传递。在实际应用中,根据具体业务需求选择合适的消息队列系统和应用场景,从而提升系统的性能和可维护性。RabbitMQ是基于AMQP协议的消息队列系统,具有强大的路由和消息确认机制,适用于多种应用场景。在需要长时间处理的任务中,使用消息队列将任务异步化,从而提高系统的响应速度和吞吐量。中添加RabbitMQ的依赖。

微赚淘客系统开发者博客 1150

java 消息队列_java消息队列,业务应用场景概述

1. 异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间假设三个业务节点每个使用50...

weixin_39637614的博客 91

java消息队列_java消息队列,业务应用场景概述

1.异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间假设三个业务节点每个使用50毫...

weixin_39944146的博客 87
上一篇: JAVA-消息队列及分布式消息队列原理
下一篇: JAVA-消息中间件-RabbitMQ
Small-lP-Pig
博客等级 码龄8年 14粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值