MQ的优势:
解耦合-MQ相当于一个中介,帮助生产者和消费者之间交互数据。
任务异步处理:
提高用户体验和系统吞吐量(单位时间内处理的请求)。
削峰填谷:
把秒杀订单的高峰写入数据库请求进行削峰,限制写入请求数目在一定的数量,慢慢的把所有请求都写入(填谷)保证数据库正常运行。
常见的MQ产品:
RabbitMQ、RocketMQ、ActiveMQ、Kafka
RabbitMQ的6种模式:简单模式(点对点模式)、work模式、发布与订阅模式、Routing路由模式、Topics主题模式、RPC远程调用模式(不太算);
先进行安装RabbitMQ;使用COS7安装
安装依赖环境:
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make
gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
安装
Erlang
首先需要上传 3个文件
erlang-18.3-1.el7.centos.x86_64.rpm
socat-1.7.3.2-5.el7.lux.x86_64.rpm
rabbitmq-server-3.6.5-1.noarch.rpm到linux
然后使用命令安装
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm --force --nodeps
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
相关命令
# 开启管理界⾯
rabbitmq-plugins enable rabbitmq_management
# 修改默认配置信息
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
service rabbitmq-server start # 启动服务
service rabbitmq-server stop # 停⽌服务
service rabbitmq-server restart # 重启服务
启动好了之后就可以访问了 ip:15672
密码如果没改的话就是 guest账号也一样(注意只能是本地网络登录,如果是云服务器不行)
如果是云服务器可以创建一个账号
#创建用户
rabbitmqctl add_user 账号 密码
#设置为管理
rabbitmqctl set_user_tags 账号 administrator
#设置权限
rabbitmqctl set_permissions -p / 账号 "." "." ".*"
然后就可以登录啦(要记得开墙哦)
⻆⾊说明
:
1
、 超级管理员
(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对⽤户,策略
(policy)
进⾏操作。
2
、 监控者
(monitoring)
可登陆管理控制台,同时可以查看
rabbitmq
节点的相关信息
(
进程数,内存使⽤情况,磁盘使⽤情况等
)
3
、 策略制定者
(policymaker)
可登陆管理控制台
,
同时可以对
policy
进⾏管理。但⽆法查看节点的相关信息
(
上图红框标识的部分
)
。
4
、 普通管理者
(management)
仅可登陆管理控制台,⽆法看到节点信息,也⽆法对策略进⾏管理。
5
、 其他
⽆法登陆管理控制台,通常就是普通的⽣产者和消费者
Virtual Hosts
配置
像
mysql
拥有数据库的概念并且可以指定⽤户对库和表等操作的权限。
RabbitMQ
也有类似的权限管理;在
RabbitMQ
中可以虚拟消息服务器
Virtual Host
,每个
Virtual Hosts
相当于⼀个相对独⽴的
RabbitMQ
服务器,每个
VirtualHost
之间是相互隔离的。
exchange
、
queue
、
message
不能互通。 相当于
mysql
的
db
。
Virtual Name
⼀般以
/
开头。