#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。( 二 )


第二个场景 , 异步提升效率 , 用户注册后 , 需要发注册邮件和注册短信 。 传统的做法有两种 , 串行的方式 , 并行方式 。 串行方式就是 , 将注册信息写入数据库成功后 , 发送注册邮件 , 再发送注册短信 。 以上三个任务全部完成后 , 返回结果给客户端 。 响应时间为150ms
第二个就是并行 , 将注册信息写入数据库成功后 , 发送注册邮件的同时 , 发送注册短信 。 以上三个任务完成后 , 返回给客户端 。 与串行的差别是 , 并行的方式可以提高处理的时间 , 响应时间为100ms
而引入消息队列 , 将不是必须的业务逻辑 , 异步处理 。 改造后的架构如下:整体时间至于要55ms.大大提高了系统的效率 。
第三个场景就是流量削峰 , 一般在秒杀或团抢活动中使用广泛 , 使用场景->系统其他时间A系统每秒请求量就100个 , 系统可以稳定运行 。 系统每天晚间八点有秒杀活动 , 每秒并发请求量增至1万条 , 但是系统最大的处理能力只能每秒处理1000个请求 , 于是系统崩溃 , 服务器宕机 。
传统的架构:大量用户(100万用户)通过浏览器在晚上八点高峰期同时参与秒杀活动 。 大量的请求涌入我们的系统中 , 高峰期达到每秒钟5000个请求 , 大量的请求打到MySQL上 , 每秒钟预计执行3000条SQL 。 但是一般的MySQL每秒钟扛住2000个请求就不错了 , 如果达到3000个请求的话可能MySQL直接就瘫痪了 , 从而系统无法被使用 。 但是高峰期过了之后 , 就成了低峰期 , 可能也就1万用户访问系统 , 每秒的请求数量也就50个左右 , 整个系统几乎没有任何压力
引入MQ之后 , 100万用户在高峰期的时候 , 每秒请求有5000个请求左右 , 将这5000请求写入MQ里面 , 系统A每秒最多只能处理2000请求 , 因为MySQL每秒只能处理2000个请求 。 系统A从MQ中慢慢拉取请求 , 每秒就拉取2000个请求 , 不要超过自己每秒能处理的请求数量即可 。 MQ , 每秒5000个请求进来 , 结果只有2000个请求出去 , 所以在秒杀期间(将近一小时)可能会有几十万或者几百万的请求积压在MQ中 。
这个短暂的高峰期积压是没问题的 , 因为高峰期过了之后 , 每秒就只有50个请求进入MQ了 , 但是系统还是按照每秒2000个请求的速度在处理 , 所以说 , 只要高峰期一过 , 系统就会快速将积压的消息消费掉 。 我们在此计算一下 , 每秒在MQ积压3000条消息 , 1分钟会积压18万 , 1小时积压1000万条消息 , 高峰期过后 , 1个多小时就可以将积压的1000万消息消费掉 。
在引入MQ之后是带来了不少的方便但是同样也带来了不少新的问题 , 比如在传递过程当如何保证消息的不丢失 , 如何保障消息传递的顺序 , 如何保障消息在传递过程中不重复 。 但是还是一开始那句话就算有太多的弊端 , 该使用MQ的时候还是必须要是用MQ的不能因为有新的问题就不去使用 。 以上就是MQ的简介和使用场景 , 接下来就是MQ的安装 , 是windows系统的安装过程 。
MQ的下载地址 , http://www.rabbitmq.com/download.html选择点击红框的部分 , 下载之后就是一个rabbitmq-server-3.8.3.exe的文件 。
双击安装rabbitmq-server-3.8.3.exe , 我这里下载的是3.83版本的 。 之后会出现一个这样的对话框 , 意思大概就是 , 安装MQ之前需要安装一个otp点击确定就好了 , 会有一个otp的版本列表 , 选择一个下载就行 。
otp下载版本
在安装MQ要注意几个问题 , 推荐使用默认的安装路径安装包也就11.5M不是太大安装在C盘也无所谓了 。 系统用户名必须是英文 , Win10改名字非常麻烦 , 具体方法百度 , 系统的用户必须是管理员 。 计算机名必须是英文 。 这些地方都要注意 , 提前改好 , 避免在安装过程中 , 炸了 。
下载好otp接下来就是安装了 , 首先也就是要安装otp之后才可以安装MQ一路疯狂下一步就行 。