作者:U友50082089 | 来源:互联网 | 2023-09-04 10:35
MQ使用的主要场景就是异步处理。下面举几个常见的例子。1.长耗时的报表,这个在程序中经常遇见,处理海量数据时,可能生成一个报表需要5分中或是更长的时间,客户不能在线实时等待,报表处理比较耗费
MQ使用的主要场景就是异步处理。下面举几个常见的例子。
1.长耗时的报表,这个在程序中经常遇见,处理海量数据时,可能生成一个报表需要5分中或是更长的时间,客户不能在线实时等待,报表处理比较耗费资源,不能同时处理很多请求,甚至同时只允许处理一个,这时就可以使用MQ。客户端将报表请求和一些必要的报表条件放到Queue中,报表由另一个服务一个一个的处理,处理好后再给用户发一个消息(MSN消息,或mail等)用户再在浏览器或其他报表浏览器中查看报表。
2.在线商店,在客户下订单的过程后,系统只需做减库存、记录收货人信息和必要的日志,其他的非必须配送处理、交易统计等其他处理可以不同时完成,这时就可以将后续处理消息放入Queue中,让另一台(组)服务器去处理,这样可以加快下订单的过程,提高客户的体验;
3.应用集成,其实和在线商店的情形差不多,系统A处理完毕后,就发送消息给系统B,此时,系统A并不需要等到系统B的处理结果。比如一个货物可能由多个物流服务提供商合作送到客户那里(工厂到码头用一个物流提供商,海上运输用另一个,到另一个码头后由本地物流商送到客户手中),第一个物流商A发送信息给第二个物流商B,物流商A的系统只要确认物流商B的系统已经接收到消息就可以了,并不需要等待处理结果。
4.系统间的消息通知,系统A处理完成后,将处理后的数据放到某的地方(网络文件服务器、数据库或其他地方),然后发送一个消息通知系统B,系统B收到消息后开始后续的处理;此时系统B并不需要轮询文件系统或数据,可以提高系统的性能