永发信息网

NET的消息队列使用在什么场合比较合适

答案:2  悬赏:10  手机版
解决时间 2021-12-24 04:10
NET的消息队列使用在什么场合比较合适
最佳答案
跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。

多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。
在企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程过程调用都可以作为集成的方法。
应用内的同步变异步,比如订单处理,就可以由前端应用将订单信息放到队列,后端应用从队列里依次获得消息处理,高峰时的大量订单可以积压在队列里慢慢处理掉。由于同步通常意味着阻塞,而大量线程的阻塞会降低计算机的性能。
消息驱动的架构(EDA),系统分解为消息队列,和消息制造者和消息消费者,一个处理流程可以根据需要拆成多个阶段(Stage),阶段之间用队列连接起来,前一个阶段处理的结果放入队列,后一个阶段从队列中获取消息继续处理。
应用需要更灵活的耦合方式,如发布订阅,比如可以指定路由规则。
跨局域网,甚至跨城市的通讯,比如北京机房与广州机房的应用程序的通信。
个人认为消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。
使用场景的话,举个例子:
假设用户在你的软件中注册,服务端收到用户的注册请求后,它会做这些操作:
校验用户名等信息,如果没问题会在数据库中添加一个用户记录
如果是用邮箱注册会给你发送一封注册成功的邮件,手机注册则会发送一条短信
分析用户的个人信息,以便将来向他推荐一些志同道合的人,或向那些人推荐他
发送给用户一个包含操作指南的系统通知
等等……

但是对于用户来说,注册功能实际只需要第一步,只要服务端将他的账户信息存到数据库中他便可以登录上去做他想做的事情了。至于其他的事情,非要在这一次请求中全部完成么?值得用户浪费时间等你处理这些对他来说无关紧要的事情么?所以实际当第一步做完后,服务端就可以把其他的操作放入对应的消息队列中然后马上返回用户结果,由消息队列异步的进行这些操作。

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

所以在软件的正常功能开发中,并不需要去刻意的寻找消息队列的使用场景,而是当出现性能瓶颈时,去查看业务逻辑是否存在可以异步处理的耗时操作,如果存在的话便可以引入消息队列来解决。否则盲目的使用消息队列可能会增加维护和开发的成本却无法得到可观的性能提升,那就得不偿失了。
全部回答
msmq安装完成后,立即就可以在.net应用程序中运行。 msmq交互 开发基于消息的应用程序从队列开始。msmq包含四种队列类型: 外发队列:消息发送到目
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题下列标点符号使用有错误的一项是………
现在哪款笔记本电脑比较好?
syncmaster 940nw如何消磁啊
安卓手机用微云存的东西,在苹果手机微云里还
一个半径为4cm的半圆的周长是多少厘米?
全城热恋王峥牵手以后,现在还和郭爽在一起吗
单选题“人生自古谁无死,留取丹心照汗青”,
如何用高压锅蒸馒头
本科留学回国后在杭州交过社保,硕士留学回来
单选题The weather in your
怎么清洗converse帆布鞋的橡胶鞋头?
湖南铁路科技职业技术学院中专部学费多少钱?
游民下载的上古卷轴5怎么安装
车怎么读音是什么
拿深圳欢乐谷的门票去香港迪士尼玩是不是有优
推荐资讯
新疆托克逊距离奇台多远
烧毛棉英语怎么说
一升食用油倒满3个同样的杯子后,剩下的正好装
(1)根据下列条件,分别求代数式4(x-y)+5
求半价便当争夺战百度云资源
毛巾有荧光剂怎么办?
ghost恢复分区时可以用全盘镜像吗
2012年10月3日的中秋晚会,根据举办地的地方
三星手机进水了,怎么办
东港市工商局大东工商分局办公位置在哪啊?好
壁纸和乳胶漆哪个更环保
找一首英文歌,歌词是这样...oh,my love won’
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?