版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434213
分布式项目中有一个框架基本是必不可少的,那就是消息队列(简称MQ)。消息队列的话,我们项目中最经常用到就是两个功能,一个是MQ是几种消息发送接收模式(简单模式、工作模式、消息发布和订阅、*路由模式、主题模式)、另一个就是MQ的延时队列。下面我针对具体的应用场景来介绍一下这两种功能。
应用场景:
场景一:项目不可避免的会有那种异步操作,比如项目中我们需要删除商品这个功能,可是因为关联的操作很多,所以是一个很耗时间的操作,这个时候我们就可以采用MQ来处理这个删除商品的功能,MQ的操作是异步的,所以用户点击删除的时候可以马上返回删除成功的提示,后台我们可以慢慢进行删除的操作。
场景二:项目中有一个活动要开始,但是时间并不是马上执行,而是过一段时间之后在开始执行。基于这种情况我们就可以采用MQ的延迟队列来实现了,通过设置消息发送的时间,就可以随意的让它在规定的时间内执行了。
应用升级:
升级一:因为很多耗时的工作都放在MQ上面异步执行,而且耗时的操作往往是非常重要的操作,所以肯定要保证MQ的高可用性,不然要是MQ突然挂掉,所有的走MQ的功能全部卡死了,这是非常恐怖的一件事情。基于这种情况,我们肯定必须将MQ也进行集群,来提高MQ系统的高可用性。这里的方案就是采用Kubernetes(k8s)来实现MQ的集群。我们可以部署多个MQ,然后通过k8s来进行负载均衡这些MQ。方案图如下所示:
升级二:这个时候MQ的安全性提升了,但是k8s还是存在挂掉的可能性,这边我们也可以对k8s进行集群,通过集群就可以完美的解决这个问题了。