请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,即时通讯使用MQ我有一些疑问

我对于MQ的理解主要是:削峰、异步、解耦。
比如在一个时间段内流量比较大,而实际业务允许延迟处理,实时性不高的情况下,可以引入mq快速返回消息,实际业务延迟去消费。
或者是用户发送一个请求,这个请求除了处理必要的业务外,还需要记录请求日志。这个时候也可以引入mq去异步执行,也达到了一个主要业务与次要业务解耦的一个目的。
但是对于即时通讯来说,用户A发送一条消息,需要在处理完业务(比如敏感词过滤)后,即时传输给用户B,这个时候异步是否还有必要?除非是消息发送没有成功,才需要使用mq异步去做一些补偿吧?

正在回答 回答被采纳积分+3

1回答

Danny_Idea 2024-01-27 10:05:18

如果同时在线聊天的人非常多,mq可以起到削峰的效果。另外mq的解耦效果也很明显,im不需要关注下游的业务接口,只要投递mq即可。


0 回复 有任何疑惑可以回复我~
  • 提问者 Caesar_123 #1
    针对一些即时性不强的业务,可以这样做。但聊天消息也使用mq去异步消费,很难理解。
    回复 有任何疑惑可以回复我~ 2024-01-27 14:09:17
  • 提问者 Caesar_123 #2
    刚才测试了一下微信,微信消息也是即时传输的,如果消息发送失败,客户端也会立即返回发送失败的提示。
    回复 有任何疑惑可以回复我~ 2024-01-27 14:26:53
  • 提问者 Caesar_123 #3
    离线消息、消息的持久化,如果使用mq异步消费,才是合理的。
    回复 有任何疑惑可以回复我~ 2024-01-27 14:30:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信