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