RabbitMQ---00概述
1 什么消息中间件
1.1 概念
消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。其中rabbitmq、activemq、Kafka等都是消息中间件的具体实现。
1.2 相关图形
1.3 MQ的作用
- 异步:提高业务上的响应速度。
- 解耦:将逻辑处理转移到队列里面来。当消费逻辑有修改时,只改Consumer,不用去改动Producer
- 自动补偿与重试:MQ在消费失败后会自动去重试发送消息。
- 保证消费顺序:队列本身是先进先出(FIFO)的特性,能够根据消息进入队列的顺序去进行消费
- 削峰填谷:这个和异步有些像,不同的是,这个主要是为了减少消费端在某一瞬间承受了巨大的并发量
2 什么RabbitMQ
2.1 概念
- RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,或者简单的将作业排队以便让分布式服务器进行处理。
- RabbitMQ是消息中间件的一种,其他还有activemq、kafka等
2.2 RabbitMQ的优缺点
- RabbitMQ优点:
由于erlang语言的特性,mq 性能较好,高并发;吞吐量到万级,MQ功能比较完备健壮、稳定、易用、跨平台、支持多种语言、文档齐全;开源提供的管理界面非常棒,用起来很好用。社区活跃度高;- RabbitMQ缺点:
erlang开发,很难去看懂源码,基本职能依赖于开源社区的快速维护和修复bug,不利于做二次开发和维护。RabbitMQ确实吞吐量会低一些,这是因为他做的实现机制比较重。需要学习比较复杂的接口和协议,学习和维护成本较高。
3 安装RabbitMQ
3.1 在CentOS7安装
3.1.1 安装步骤
1 首先安装一些必要的软件包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel
2 下载安装RabbitMQ所需的安装包
链接:链接地址 提取码:e6az
erlang-22.2-1.el7.x86_64.rpm
socat-1.7.3.2-5.el7.lux.x86_64.rpm
rabbitmq-server-3.8.8-1.el7.noarch.rpm
3 使用rpm命令安装下载好的软件(按照下面的命令依次执行)
rpm -ivh erlang-22.2-1.el7.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.8.1-1.el7.noarch.rpm
4 安装好之后,rabbitmq所在位置是/usr/lib/rabbitmq
5 使用命令打开rabbitmq的服务(服务端口:5672)
systemctl start rabbitmq-server.service #开启服务
systemctl start rabbitmq-server.service #关闭服务
systemctl start rabbitmq-server.service #查询服务
6 启动可视化界面(端口:15672),之后使用http://ip:15672
访问可视化界面,默认登录名密码都为guest
rabbitmq-plugins enable rabbitmq_management
3.1.2 安装步骤中出现的问题
1 出现下图错误,就是在安装rabbitmq-server之前,没有安装socat-xxx.rpm
2 远程访问可视化 ,无法访问,需要关闭防火墙systemctl stop firewalld.service
3 出现这种情况是因为rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
修改方法:
1 修改 /usr/lib/rabbitmq/lib/rabbitmq_server-xxx/ebin/rabbit.app文件里面的loopback_users,删除里面的<<”guest”>>。修改后为下面的样子,重启服务后,就可以用guest登录了
...
{default_vhost, <<"/">>},
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
{loopback_users, []},
{password_hashing_module, rabbit_password_hashing_sha256},
{server_properties, []},
...
2 手动给他创建一个账户,并且用户权限也要设置为administrator,执行后最好重启服务,这样子也可以解决这个问题
rabbitmqctl add_user admin 123456 #设置用户账号和密码
rabbitmqctl set_user_tags admin administrator #设置权限
######################其他相关命令#####################################
rabbitmqctl delete_user admin #删除admin用户
rabbitmqctl change_password admin 123123 # 修改admin用户的密码为123123
rabbitmqctl list_users # 查看所有的用户
更多的相关命令请看这个博主的我不是链接😀
3.2 在windows 10安装
1 文件都在上面的云盘上面,首先安装otp_win64_22.2.exe,之后再安装rabbitmq-server-3.8.1.exe
2 打开cmd,使用rabbitmq-plugins enable rabbitmq_management
命令开启可视化界面
3 在浏览器输入http://localhost:15672进入,账号与密码为guest