RabbitMQ---00概述

1 什么消息中间件

1.1 概念

消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。其中rabbitmq、activemq、Kafka等都是消息中间件的具体实现。

1.2 相关图形

在这里插入图片描述

1.3 MQ的作用

  1. 异步:提高业务上的响应速度。
  2. 解耦:将逻辑处理转移到队列里面来。当消费逻辑有修改时,只改Consumer,不用去改动Producer
  3. 自动补偿与重试:MQ在消费失败后会自动去重试发送消息。
  4. 保证消费顺序:队列本身是先进先出(FIFO)的特性,能够根据消息进入队列的顺序去进行消费
  5. 削峰填谷:这个和异步有些像,不同的是,这个主要是为了减少消费端在某一瞬间承受了巨大的并发量

2 什么RabbitMQ

2.1 概念

  1. RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,或者简单的将作业排队以便让分布式服务器进行处理。
  2. RabbitMQ是消息中间件的一种,其他还有activemq、kafka等

2.2 RabbitMQ的优缺点

  1. RabbitMQ优点:
    由于erlang语言的特性,mq 性能较好,高并发;吞吐量到万级,MQ功能比较完备健壮、稳定、易用、跨平台、支持多种语言、文档齐全;开源提供的管理界面非常棒,用起来很好用。社区活跃度高;
  2. 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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ是一个由Erlang语言开发的AMQP(高级消息队列协议)的开源实现。它是一种消息中间件,主要用于解耦组件之间的通信,发送者和接收者之间不需要直接知道彼此的存在。RabbitMQ的内部组成包括Exchange、Queue和Binding。消息在进入队列之前会通过Exchange进行路由。 RabbitMQ具有以下特点: 1. 可靠性:RabbitMQ使用持久化、传输确认和发布确认等机制来保证消息的可靠性。 2. 灵活的路由:消息在进入队列之前,会通过Exchange进行路由,可以根据不同的路由规则将消息发送到不同的队列中。 3. 消息集群:多个RabbitMQ服务器可以组成一个集群,形成一个逻辑的Broker,提高可扩展性和容错性。 4. 高可用性:队列可以在集群中的多个节点上进行镜像,即使某些节点出现问题,队列仍然可用。 5. 多种协议:RabbitMQ支持多种消息队列协议,如STOMP、MQTT等。 6. 多语言客户端:RabbitMQ几乎支持所有常用的编程语言,包括Java、.NET、Ruby等。 7. 管理界面:RabbitMQ提供了一个易用的管理界面,用户可以监控和管理消息Broker的各个方面。 8. 跟踪机制:如果消息发生异常,RabbitMQ提供了消息跟踪机制,使用者可以找出发生了什么。 9. 插件机制:RabbitMQ提供了许多插件来扩展功能,用户也可以编写自己的插件。 RabbitMQ的应用场景广泛,常用于以下情况: - 异步任务处理:将耗时的任务放入消息队列中,由消费者异步处理,提高系统的响应速度和吞吐量。 - 应用解耦:通过消息队列实现不同组件之间的解耦,提高系统的灵活性和可维护性。 - 流量削峰:将高峰期的请求放入消息队列中,由消费者按照自身处理能力进行消费,避免系统的过载。 - 分布式系统:通过消息队列实现不同服务之间的通信和协调,提高分布式系统的可靠性和扩展性。 总之,RabbitMQ是一种可靠、灵活且功能强大的消息中间件,适用于各种应用场景,并提供了丰富的特性和易用的管理界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值