浅练RabbitMQ

1.RabbitMQ介绍

1.1.什么是mq

消息队列(Message Queue,简称MQ):是在消息的传输过程中保存消息的容器。用于分布式系统之间进行通信。

1.2.什么是RabbitMQ?

RabbitMQ是采用Erlang语言开发的基于AMQP协议标准的消息中间件。

1.3.为什么要使用RabbitMQ ?

1.3.1.解耦合

​ 以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。当转变成基于消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当物流系统恢复后,继续处理订单信息即可,中间用户感受不到物流系统的故障,提升系统的可用性。

1.3.2.异步

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

同步

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

在这里插入图片描述

1.3.3.削峰

并发量大的时候,可以从mq中处理系统所承受的最大限度的请求,等高峰期一过,就将在mq中积压的请求全部处理掉。

2.RabbitMQ的安装

2.1.下载地址

官网下载地址:http://www.rabbitmq.com/download.html

2.2.先安装erlang语言环境

在这里插入图片描述

rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps
rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps
rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps

2.3.安装rabbitmq

rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

2.4.启动、停止

service rabbitmq-server start #开启

service rabbitmq-server stop #停止

service rabbitmq-server restart #重启

service rabbitmq-server status #状态

2.5.设置开机启动

chkconfig rabbitmq-server on

2.6.防火墙开放15672端口(也可关闭防火墙)

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

/etc/rc.d/init.d/iptables save

2.7.开启web界面后台管理工具

rabbitmq-plugins enable rabbitmq_management

service rabbitmq-server restart

2.8.创建账户(也可通过管理工具创建账户)

这里我们以创建个admin帐号,密码1111为例,创建一个账号并支持远程ip访问。

1.创建账号

rabbitmqctl  add_user admin 1111

2.设置用户角色

rabbitmqctl  set_user_tags admin  administrator

3.设置用户权限

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

4.设置完成后可以查看当前用户和角色(需要开启服务)

rabbitmqctl list_users

账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过虚拟机本地登陆,可用admin登陆本地

5.测试

​ 浏览器输入:serverip:15672。其中serverip是RabbitMQ-Server所在主机的ip,15672是RabbitMQ-Server的端口号

2.9.web界面后台管理工具

在这里插入图片描述

  1. connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况

  2. channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。

  3. Exchanges:交换机,用来实现消息的路由

  4. Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。

端口:

5672: rabbitMq的编程语言客户端连接端口

15672:rabbitMq管理界面端口

25672:rabbitMq集群的端口

1、 超级管理员(administrator)

可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。

2、 监控者(monitoring)

可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

3、 策略制定者(policymaker)

可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。

4、 普通管理者(management)

仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。

5、 其他

无法登陆管理控制台,通常就是普通的生产者和消费者。

2.10.创建Virtual Hosts

虚拟主机:类似于mysql中的database。他们都是以“/”开头

在这里插入图片描述

2.11.设置权限

1、点击用户名
在这里插入图片描述

2、设置权限

3、查看效果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值