写在前面
为什么要使用MQ这样的中间件,做过开发的小伙伴其实都知道,无论是画个流程图还是写个DEMO,都离不开它及其简单的道理,我认为,其实它就是做到了更好的异步实现,相比线程池来说。
1、异步处理
什么是异步,为什么要使用异步,其实无非就是更关注主流程的顺利进行,比如,最近我们在改造支付回调接口,一个支付回调需要做的事情是非常多的,比如发消息、同步财务、通知下一步业务系统等等一些业务逻辑,但是最关键的步骤其实就是让订单从待支付或者支付中改为已支付,这么做有两个好处,第一让接口处理速度更快,速度更快其实就代表了能带来更高的qps,第二,减少接口异常的状况,你想,走五步和走五百步,你摔倒的几率是不一样的;
2、应用解耦
应用上的解耦我个人觉得能解决的最大的问题是分布式事务,分布式的事务问题是非常常见也是非常头疼的问题,直接导致的就是异常订单,需要人工介入,甚至带来损失。如果介入MQ,相比异步线程来说,它多了重试的机制以及保证处理完成的决心。比如,创单之后更新库存异常和一定保证更新库存成功在业务上是多么的重要啊;
3、流量削峰
这种其实工作当中我没怎么用到,我的理解是在做一些秒杀活动,瞬间接口压力非常大的时候,对接请求的是MQ,我先记下一定数量的请求之后我慢慢消化,如果你超出我的应对能力,我会放弃你,发现没,MQ使用在核心业务前后发挥的作用是不一样的。
来,安装来玩玩
到官网去下载
https://www.rabbitmq.com/install-windows.html
下载rabbitmq再来一个开发它的语言环境Erlang
https://www.erlang.org/downloads
下载erlang 安装文件傻瓜式下一步安装这两个程序
找到安装目录双击该文件然后在后面输入rabbitmq-plugins enable rabbitmq_management命令进行安装
安装然后,浏览器输入http://localhost:15672/#/
默认用户名和密码都是guest
登录,完美安装~
rabbitmq主页面添加个用户试试看
添加用户发现没有,新添加的用户没有可访问的区域,这玩意儿其实就相当于一个DB,一块领域,悟空用金箍棒画的一个圈等等,那我们也画一个
添加Virtual Hosts 添加访问权限
网友评论