(转)RabbitMQ入门(一)
原文:https://juejin.cn/post/6844904021283569678
MQ (Message Que)的作用
- 异步:提高业务上的响应速度。
- 解耦:将逻辑处理转移到队列里面来。当消费逻辑有修改时,只改Consumer,不用去改动Producer
- 自动补偿与重试:MQ在消费失败后会自动去重试发送消息。
- 保证消费顺序:队列本身是先进先出(FIFO)的特性,能够根据消息进入队列的顺序去进行消费
- 削峰填谷:这个和异步有些像,不同的是,这个主要是为了减少消费端在某一瞬间承受了巨大的并发量
目前市面上的几种MQ(RabbitMQ,Kafka,RocketMQ等)
可以参考下面的文章: 消息中间件部署及比较:rabbitMQ、activeMQ、zeroMQ、rocketMQ、Kafka、redis
RabbitMQ的主要优点:
- erLang语言天生支持高并发
- MQ的环境搭建比较简便
- 有着较好的消息确认机制以及消息的持久化
- 高度可定制的路由策略
- 页面管理方便,社区活跃度较高
RabbitMQ 实战
CentOS7 下的RabbitMQ安装
-
安装Erlang环境
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.2/erlang-22.2-1.el7.x86_64.rpm #下载最新的Erlang包,当前版本是22.2,因为最新的RabbitMQ的版本为3.8.1,需要的最低版本的erLang为21.3
yum install erlang-22.2-1.el7.x86_64.rpm # 安装erLang
没有安装wget的话要先执行下面命令安装wgetyum install wget
-
下载rabbitMQ的rpm包 (这里下载的是CentOS7的版本,如果为CentOS8,则连接中的el7要改成el8)
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.1/rabbitmq-server-3.8.1-1.el7.noarch.rpm
-
安装RabbitMQ
yum install rabbitmq-server-3.8.1-1.el7.noarch.rpm
-
启动RabbitMQ
chkconfig rabbitmq-server on #设置rabbitmq 服务为开机启动
/sbin/service rabbitmq-server start #启动
/sbin/service rabbitmq-server stop #关闭
或者/bin/systemctl start rabbitmq-server.service #启动
/bin/systemctl start rabbitmq-server.service #关闭
-
启动UI插件,创建登录用户
rabbitmq-plugins enable rabbitmq_management #启动管理插件,下次无需再手动启动该插件
rabbitmqctl list_users #查看当前有多少用户
[root@c5 ~]# rabbitmqctl list_users Listing users ... user tags guest [administrator] 复制代码
那我们需要手动添加一个用户,并且用户权限也要设置为administrator
rabbitmqctl add_user admin 123456 #设置用户账号和密码
rabbitmqctl set_user_tags admin administrator #设置权限
然后就可以使用admin账号进行登录了
附:端口号作用
总结:
- 安装过程中,erLang版本的问题
- UI界面和端口的问题
- 登录用户及权限分配的问题
疑难问题
-
浏览器访问15672端口(默认队列用的是5672端口,UI用的是15672端口),用默认的 guest/guest登录 然而此时我浏览器访问的时候却遇到这样一个情况:UI管理端口被拒绝了
解决方法: 这是因为当前的UI插件还没有启动,执行下面命令即可。
rabbitmq-plugins enable rabbitmq_management #启动管理插件,下次无需再手动启动该插件
-
使用guest访问时发现该账户是有访问限制的。
解决方法: 需要手动给他创建一个账户。 那我们需要手动添加一个用户,并且用户权限也要设置为administrator
rabbitmqctl add_user admin 123456 #设置用户账号和密码
rabbitmqctl set_user_tags admin administrator #设置权限
然后就可以使用admin账号进行登录了
作者:来杯java
链接:https://juejin.cn/post/6844904021283569678
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2018-10-31 (转)python的ConfigParser模块
2018-10-31 (转)csv — 逗号分隔值文件格式
2018-10-31 (转)Python3之shutil模块
2017-10-31 (转)mysql 备份与恢复mysqlhotcopy
2017-10-31 (转)mysql -prompt选项