当前位置:   article > 正文

RabbitMQ及web界面安装配置_rabbitmq web

rabbitmq web

一、RabbitMQ介绍

1、什么是MQ

MQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。

2、MQ的优缺点

优点:

        异步通信:消息队列允许多个处理程序并行处理消息,这可以减轻应用程序的负载,提高系统的吞吐量。
        可靠性:消息队列通常支持事务性操作,这有助于确保消息的可靠传递,以及在失败时能够进行重试。
        解耦:消息队列可以用于将应用程序的不同部分解耦,使它们能够以松散或独立的方式进行通信。
        可扩展性:MQ支持在分布式系统中进行扩展,允许系统之间的通信跨越不同的节点和网络。

        削峰填谷:举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。
缺点:

        延迟:如果多个消息排队等待处理,消息队列可能会引入延迟。特别是在高并发环境下,这种情况可能会更加明显。
        性能:由于消息队列需要维护消息的持久性和可靠性,因此在处理大量消息时可能会面临性能问题。
        复杂性:使用消息队列需要一定的技术知识和配置,这可能会增加系统的复杂性。
        资源占用:处理大量的消息需要大量的内存和磁盘空间,这可能会对系统资源产生压力。
        不支持实时性:消息队列主要用于异步通信,不支持实时性要求较高的场景。

3、什么是RabbitMQ

RabbitMQ
是一个开源的消息代理软件,实现了高级消息队列协议(AMQP)。

RabbitMQ使用Erlang语言编写,这是一种高性能的编程语言,特别适合于分布式系统的开发。RabbitMQ的核心功能包括消息的发布与订阅、路由、可靠性、安全等。它主要用于实现应用程序之间的异步通信和解耦,允许一个应用程序(生产者)生成消息,而另一个应用程序(消费者)异步地消费这些消息。RabbitMQ支持多种客户端接口,包括Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP和STOMP等,因此可以与多种编程语言和平台集成。

此外,RabbitMQ在易用性、扩展性和高可用性方面表现出色,适用于需要处理大量消息和实现复杂消息路由的应用场景。

4、RabbitMQ模式

1、队列模式

一个发布者发布消息,下面的接收者按队列顺序接收,比如发布了10个消息,两个接收者A,B那就是A,B总共会收到10条消息,不重复。

 2、主题模式

对于Topic模式,一个发布者发布消息,有两个接收者A,B来订阅,那么发布了10条消息,A,B各收到10条消息。

3、RabbitMQ的模式

生产者生产消息后不直接直接发到队列中,而是发到一个交换空间:Exchange,Exchange会根据Exchange类型和Routing Key来决定发到哪个队列中,这个讲到发布订阅在详细来看

二、RabbitMQ安装

1、安装erlang

rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang。

  1. #关闭防火墙
  2. systemctl stop firewalld
  3. systemctl disable firewalld
  4. #安装编译环境
  5. yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
  6. #切换到src目录
  7. cd /usr/local/src
  8. #下载erlang地址
  9. https://packagecloud.io/rabbitmq/erlang?page=1
  10. #curl下载erlang rpm包
  11. curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
  12. #更新yum
  13. yum -y update
  14. #用yum安装
  15. sudo yum install erlang socat
  16. #验证
  17. erl

2、下载安装RabbitMQ

(1)、下载rabbitmq

Installing RabbitMQ | RabbitMQ 官网

  1. #导入
  2. #下载rabbitmq-server rpm包
  3. wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm
  4. curl -s https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm.sh | sudo bash
  5. #安装rabbitmq
  6. rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm
  7. #设置开机自启动
  8. systemctl enable rabbitmq-server
  9. #开启rabbitmq-server服务
  10. systemctl start rabbitmq-server
  11. #关闭rabbitmq-server服务
  12. systemctl stop rabbitmq-server
  13. #查看状态
  14. systemctl status rabbitmq-server

3、配置web界面

  1. # 停止rabbitmq
  2. systemctl stop rabbitmq-server
  3. # 停止开启web管理端
  4. rabbitmq-plugins enable rabbitmq_management
  5. # 然后启动rabbitmq就可以访问管理页面
  6. systemctl start rabbitmq-server
  7. #访问地址 现在访问不了 默认的账号:guest 密码:guest 只能在本地访问 需要添加账号
  8. ip:15672
  9. #####################
  10. #如果开启web管理报错则
  11. #修改/etc/hosts文件底部添加 一行 原有的不要改
  12. #ip 主机名
  13. 192.168.91.70 tomcat
  14. #重启系统 重新关掉防火墙和rabbitmq-server重新执行web端开启命令
  15. rabbitmq-plugins enable rabbitmq_management
  16. ########################################
  17. #添加账号设置权限
  18. #这个是查看rabbitmq下面有多少用户
  19. rabbitmqctl list_users
  20. #增加账户admin并在设置admin的密码
  21. rabbitmqctl add_user admin 密码
  22. #设置admin的角色为管理员
  23. rabbitmqctl set_user_tags admin administrator
  24. #设置admin的权限
  25. rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
  26. #修改密码
  27. rabbitmqctl change_password username password
  28. #删除用户
  29. rabbitmqctl delete_user username
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/792841
推荐阅读
相关标签
  

闽ICP备14008679号