RabbitMQ教程

1.前言

1.1 为什么要用mq(应用场景)

1.1.1 异步处理

传统模式

传统模式的缺点:

一些非必要的业务逻辑以同步的方式运行,太耗费时间。

消息中间件模式

中间件模式的的优点:

将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度

 1.1.2 应用解耦

传统模式

传统模式的缺点:

系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!

消息中间件模式

 

中间件模式的的优点:

将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。

 1.1.3  流量削峰

传统模式

传统模式的缺点:

并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常

消息中间件模式

中间件模式的的优点:

系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。

​​​​​​​1.2 使用了消息队列会有什么缺点?

1.2.1 系统可用性降低

       你想啊,本来其他系统只要运行好好的,那你的系统就是正常的。

现在你非要加个消息队列进去,那消息队列挂了,你的系统不是呵呵了。因此,系统可用性降低。

1.2.2 ​​​​​​​系统复杂性增加

      要多考虑很多方面的问题,比如一致性问题、如何保证消息不被重复消费,如何保证消息可靠传输。

因此,需要考虑的东西更多,系统复杂性增大。

但是,我们该用还是要用的。

1.3 ​​​​​​​常见消息队列比较

 1.4 常见术语

     RabbitMQ 使用一些术语:生产者、队列、消费者。

1.4.1 生产者

  一个发送消息的程序是一个生产者。

1.4.2 队列 

     队列类似于邮箱。虽然消息通过 RabbitMQ 在你的应用中传递,但是它们只能存储在队列中。队列只受主机的内存和磁盘限制的限制,它本质上是一个大的消息缓冲区。不同的生产者可以通过同一个队列发送消息,此外,不同的消费者也可以从同一个队列上接收消息。

1.4.3 消费者

一个等待接收消息的程序是一个消费者。

 

         整个过程非常简单,生产者创建消息,消费者接收这些消息。你的应用程序既可以作为生产者向其他应用程序发送消息,也可以作为消费者,等待接收其他应用程序的消息。其中,存储消息的是消息队列,它类似于邮箱,消息通过消息队列进行投递。

2. RabbitMQ环境搭建(windows)

2.1 ​​​​​​​安装(windows)

1.下载并安装erlang,下载地址:http://www.erlang.org/download

2.配置erlang环境变量信息

  新增环境变量ERLANG_HOME=erlang的安装地址

  将%ERLANG_HOME%\bin加入到path中

3.下载并安装RabbitMQ,下载地址:http://www.rabbitmq.com/download.html

注意: RabbitMQ 它依赖于Erlang,需要先安装Erlang。

2.2 服务启动停止

 2.3 访问地址

RabbitMQ 管理平台地址 http://127.0.0.1:15672

默认账号:guest/guest  用户可以自己创建新的账号

默认帐号guest是不允许远程登录。

2.4 创建用户

 

 

2.5 ​​​​​​​创建virtual host

 

 

 2.6 ​​​​​​​rabbitmq web服务忘记用户名和密码

忘记账号密码,需要新增一个管理员账号,然后进去修改账号密码
在服务器上运行以下命令即可:(linux环境一下)

命令如下:

rabbitmqctl add_user newadmin newpassword

rabbitmqctl set_user_tags newadmin administrator

rabbitmqctl set_permissions -p / newadmin ".*" ".*" ".*"

3. Linux Centos6.5环境安装

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值