MQ消息队列在软件开发中的作中

MQ的作用是非常之大的。

1、解耦。

当一个大型的系统。比如,商城系统。包括以下的功能:

1、发邮件

2、发短信

3、抽奖

4、搜索等

如果你都用一台服务器,做到一个程序里,代码会非常庞大,不利于维护。同时一台服务器的机器性能也跟不上。

我们用MQ来做,它们之间的通信,直接用MQ。

2、销峰。

假如你的秒杀活动,同时有一大批人在抢购,这个时候,如果你每个人都等待走完整的流程,那么系统会非常的延迟、我们也没有办法保证一定是按顺序执行的、有可能会多买,两个用户同时中奖等,数据不完。如果我们可以把用户提交的内容直接入MQ,用户就不用等待,同时有多台服务器来完成后续的任务。因为消息是顺序的,也保证了排队的公平性和不出错。

3、定时任务。

定时任务是一个头痛的问题,通常我们把消息写入数据库,用一个线程来监视,当时间到了之后就开始执行。这种做法太麻烦、因为它没办法做成柱塞式的,所以性能有影响,同时也容易出错,直接做成MQ来通知,岂不是更好!节省了一大堆时间,也保证了不会出现时间错误!

RabbitMQ、

Redis、

ZeroMQ、

ActiveMQ、

Jafka/Kafka

它们各有优缺点,但是总体来说,我还是喜欢用云。因为太简单了。不用自己架设服务器!

有了MQ这种东西,你很容易做出高可靠性的,游戏,电商,社交等应用。。。。

棋牌游戏中,聊天,出牌,等消息处理

电商中,解耦、分布式、销峰

社交中,聊天室,如果你的消息是自己转发的,那么几万个人的时候,你有水平、硬件需要有多高、多强大才有满足呢?

时间: 2024-10-27 01:12:31

MQ消息队列在软件开发中的作中的相关文章

阿里云ACE共创空间——MQ消息队列产品测试

一.产品背景消息队列是阿里巴巴集团自主研发的专业消息中间件. 产品基于高可用分布式集群技术,提供消息订阅和发布.消息轨迹查询.定时(延时)消息.资源统计.监控报警等一系列消息云服务,是企业级互联网架构的核心产品. MQ 目前提供 TCP .MQTT 两种协议层面的接入方式,支持 Java.C++ 以及 .NET 不同语言,方便不同编程语言开发的应用快速接入 MQ 消息云服务. 用户可以将应用部署在阿里云 ECS.企业自建云,或者嵌入到移动端.物联网设备中与 MQ 建立连接进行消息收发,同时本地开

MQ消息队列的12点核心原理总结

1. 消息生产者.消息者.队列 消息生产者Producer:发送消息到消息队列. 消息消费者Consumer:从消息队列接收消息. Broker:概念来自与Apache ActiveMQ,指MQ的服务端,帮你把消息从发送端传送到接收端. 消息队列Queue:一个先进先出的消息存储区域.消息按照顺序发送接收,一旦消息被消费处理,该消息将从队列中删除. 2.设计Broker主要考虑 1)消息的转储:在更合适的时间点投递,或者通过一系列手段辅助消息最终能送达消费机. 2)规范一种范式和通用的模式,以满

MQ(消息队列)常见的应用场景解析

前言 j提高系统性能首先考虑的是数据库的优化,之前一篇文章<数据库的使用你可能忽略了这些>中有提到过开发中,针对数据库需要注意的事项.但是数据库因为历史原因,横向扩展是一件非常复杂的工程,所有我们一般会尽量把流量都挡在数据库之前. 不管是无限的横向扩展服务器,还是纵向阻隔到达数据库的流量,都是这个思路.阻隔直达数据库的流量,缓存组件和消息组件是两大杀器. MQ简介 MQ,Message queue,消息队列,就是指保存消息的一个容器.具体的定义这里就不类似于数据库.缓存等,用来保存数据的.当然

Spring Boot:使用Rabbit MQ消息队列

综合概述 消息队列 消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式以及特定的优先级.对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程则可以从消息队列中读走消息,而消息队列就是在消息的传输过程中保存消息的容器,你可以简单的把消息队列理解为类似快递柜,快递员(消息发布者)往快递柜(消息队列)投递物件(消息),接受者(消息订阅者)从快递柜(消息队列)接收物件(消息),当然消息队列往往还包含一些特定的消息传递和接收机制. 消息队列作为分布式系

中间件 | mq消息队列解说

消息队列 1.1 什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用.消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰.降低系统耦合性.目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ. 1.2 为什么要用消息队列 使用消息队列主要有两点好处: 1.通过异步处理提高系统性能(削峰.减少响应所需时间; 2.降低系统耦合性.[结合你自己的项目来回答] 1.2.1 通过

SpringBoot日记——MQ消息队列整合(二)

基于第一篇文章搭建好环境以后,我们这篇文章继续介绍如何在springboot中使用RabbitMQ. 1).单播:添加好pom文件和自定义配置后,来看: @Autowired RabbitTemplate rabbitTemplate; @Test public void contextLoads() { // 对象被默认JAVA序列化发送,参数:Exchange,routingKey,消息 rabbitTemplate.convertAndSend("exchange.direct"

MQ消息队列(2)—— Java消息服务接口(JMS)

一.理解JMS   1.什么是JMS?         JMS即Java消息服务(Java Message Service)应用程序接口,API是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建.发送.接收和读取消息.它使分布式通信耦合度更低,消息服务更加可靠以及异步性. 我们可以简单的理解:两个应用程序之间需要进行通信,我们使用一个JMS服务,进行中间的转发,通过JMS 的使用,我们可以解除两个程序之间的耦合. JMS不是消息队列,更不是某种消息队列协议.JMS是Jav

MQ消息队列之MSMQ

主要参考文章: 消息队列(Message Queue)简介及其使用

MQ(消息队列)学习

转自: http://book.51cto.com/art/201502/466288.htm         为什么我们需要MQ? 而这就是MQ :一个高效的可嵌入库,它解决了大部分应用程序需要解决的问题,变得在网络上有良好的可伸缩性,而没有多少成本. 具体做法是: 它在后台线程异步处理I/O.这些线程使用无锁数据结构与应用程序线程进行通信,所以并发MQ 应用程序不再需要锁.信号量,或其他等待状态. 组件可以动态地来去自如,而MQ 会自动重新连接.这意味着你可以以任何顺序启动组件.你可以创建“