秒杀接口优化——rabbitMq 配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jcsyl_mshot/article/details/81148185

本篇博客RabbitMQ 的配置安装是在虚拟机下Centos 6.5 版本中完成,从RabbitMQ服务的启动到客户端的访问,确实走了不少坑,这里详细说明:

0.秒杀优化瓶颈

减少数据库的访问
1.系统初始化,把商品库存数量加载到Redis
2.收到请求,redis 预减少库存,库存不足,直接返回
3.请求入队,立即返回排队中
4.请求出队,生成订单,减少库存
5.客户端轮询,是否秒杀成功。

1.安装RabbitMQ

方式一:

1.Windows 下载安装erlang.
http://www.erlang.org/downloads/20.1
通过secureCRT 上传到 linux 服务器端
注意:传递过来的文件默认在当前的目录下 也就是root 用户登陆后的 /root 目录下

2.Windows 下载rabbitMQ
http://www.rabbitmq.com/install-generic-unix.html
通过secureCRT 上传到 linux 服务器端

3.软件安装
Linux下/usr/local 相当于windows 桌面,良好的习惯将软件安装在该目录下
具体安装过程建议参靠下面方式二。

方式二:

直接使用Linux 下wget 命令进行下载安装
具体参考:
https://blog.csdn.net/hanzheng260561728/article/details/71545541?locationNum=10&fps=1

4.安装成功
通过本地机器(注意不要用虚拟机下Centos 浏览器)输入:
http:IP:15672
应当出现如下界面:
这里写图片描述

2.运行过程遇到的问题

按照上述操作会在我们启动rabbitmq 该服务之前会设置用户,密码 和为其配置管理员权限。该服务默认的用户 :guest ,密码 :guest.(无需自己创建)
本人客户端是通过SpringBoot 实现测试该服务。曾出现过以下几个问题:

1.连接超时

 Consumer raised exception, processing can restart 
 if the connection factory supports it. Exception summary: 
 Connection timed out: connect

这个问题,反反复复搜索很久都没能解决,直观的表现就是连接不上rabbitmq 服务,开始以为是服务本身没有配置好,看完下面这篇博客找到了问题的所在,对,没错 就是防火墙问题,和redis 服务一样,需要设置防火墙对该服务端口不进行拦截,哭嘤嘤
https://bbs.csdn.net/topics/390949911

2.用户问题
如果直接使用之前我们配置的用户进行服务启动,还是会被rabbitmq 拒绝,这里建议还是使用默认的guess 用户(需要设置能够远程访问,这里就不多说了)

3.个人失误问题
java.lang.IllegalStateException: ApplicationEventMulticaster not initialized”这种错误大部分是由于缺少spring jar包。
由于采用springBoot 进行开发,将相关jar 下载到我们的本地仓库中,很多时候下载一般失败就会产生该错误,解决思路也很简单,删除,在eclipse中右键 选择maven,再选择更新我们的maven 项目,将会自动下载。

猜你喜欢

转载自blog.csdn.net/jcsyl_mshot/article/details/81148185