项目设计中MQ(message queue)使用总结

项目设计研讨上听到MQ的使用,看了一些文章,做一些简单记录

我们的业务场景:

酒店系统下单调用风控计算订单换算的积分,我们需要实时返回结果,但是风控使用了MQ,我们不知道等待时间引发的问题

MQ定义:一种跨进程通信机制,用于上下游传递消息

MQ作用:解除或降低模块耦合

优点:

1)不需要预留缓冲区,上游执行完任务,下游会在第一时间执行

2)依赖多个任务,被多个任务依赖都很好处理,只需要订阅相关消息即可

3)有任务执行时间变化时,下游任务不需要调整执行时间

缺点:

1)系统变复杂

2)执行时间变长,延时增加

3)上游无法实时知道下游执行结果(设计注意,很致命)

简单说一下MQ的使用场景:

1)数据驱动的任务依赖

2)上游不关心下游执行结果

3)异步返回执行时间长

原文地址:https://www.cnblogs.com/wanglg629/p/9309446.html

时间: 2024-07-30 20:04:52

项目设计中MQ(message queue)使用总结的相关文章

详解boost库中的Message Queue .

Message Queue(后文简写成MQ或消息队列)是boost库中用来封装进程间通信的一种实现,同一台机器上的进程或线程可以通过消息队列来进行通迅.消息队列中的消息由优先级.消息长度.消息数据三部分组成.这里需要注意的事,MQ只是简单的将要发送的数据在内存中进行拷贝,所以我们在发送复杂结构或对象时,我们需要将其序列化后再发送,接收端接收时要反序列化,也就是说我们要自己去定义区分一条消息(就是自定义网络通迅协议).在MQ中,我们可以使用三模式去发送和接收消息: 阻塞:在发送消息时,若消息队列满

在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系

Message,信息的载体,用来传递数据给Handler. Handler (Handler处理者,是 Message 的主要处理者,负责 Message 的发送,Message 内容的执行处理)发送和处理Message和Runable对象,这些对象和一个线程的MessageQueue相关联.每一个线程实例和一个单独的线程以及该线程的 MessageQueue 相关联.Handler和创建它的线程绑定在一起,把 Message和Runable 对象传递给 MessageQueue,这些对象离开

Message Queue与WebService比较

最近在使用IBM Websphere Message Queue,与WebService相比,同样是跨平台的通信方式,那么各种有什么优势呢? Message Queue属于比较重量级的应用,在规范化的企业流程中用的比较多.如果企业有很多部门,部门都有自己的系统,那么不同的系统之间的集成通信,Message Queue是很好的选择.MQ一般都做为企业级IT应用的中间件存在,有很多企业是作为标准IT基础结构存在的.在市面上常见的MQ中间件有IBM websphere message queue se

消息队列(Message Queue)基本概念

背景 之前做日志收集模块时,用到flume.另外也有的方案,集成kafaka来提升系统可扩展性,其中涉及到消息队列当时自己并不清楚为什么要使用消息队列.而在我自己提出的原始日志采集方案中不适用消息队列时,有几个基本问题:1. 日志文件上传过程,有个基本的生产者-消费者问题:2. 另外系统崩溃时,数据丢失的处理问题. 今天,几位同事再次谈到消息队列这么个东西,很NB的样子,我也想弄清楚,OK,搞起. 什么是消息队列 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,F

MSMQ(Microsoft Message Queue)

http://www.cnblogs.com/sk-net/archive/2011/11/25/2232341.html 利用 MSMQ(Microsoft Message Queue),应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通信.消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障方法. MSMQ与XML Web Services和.Net Remoting一样,是一种分布式开发技术.但是在使用XML Web Services或.Net Remot

Message Queue协议AMQP

历史: Message Queue的需求由来已久,80年代最早在金融交易中,高盛等公司采用Teknekron公司的产品,当时的Message queuing软件叫做:the information bus(TIB). TIB被电信和通讯公司采用,路透社收购了Teknekron公司.之后,IBM开发了MQSeries,微软开发了Microsoft Message Queue(MSMQ).这些商业MQ供应商的问题是厂商锁定,价格高昂.2001年,Java Message queuing试图解决锁定和

Java分布式:消息队列(Message Queue)

Java分布式:消息队列(Message Queue) 引入消息队列 消息,是服务间通信的一种数据单位,消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.队列,是一种常见的数据结构,它是保存消息的容器.那么消息队列就是以消息为基本单位的优先队列. 借助消息队列,系统的不同部分可相互通信并异步执行处理操作.消息队列提供一个临时存储消息的轻量级缓冲区,以及允许软件组件连接到队列以发送和接收消息的终端节点.这些消息通常较小,可以是请求.恢复.错误消息或明文信息等. 为什么使用消息

hdu1509(Windows Message Queue) 优先队列

点击打开链接 Problem Description Message queue is the basic fundamental of windows system. For each process, the system maintains a message queue. If something happens to this process, such as mouse click, text change, the system will add a message to the

You Probably Don’t Need a Message Queue

原文地址 I’m a minimalist, and I don’t like to complicate software too early and unnecessarily. And adding components to a software system is one of the things that adds a significant amount of complexity. So let’s talk about message queues. Message Queu