当前位置:首页 » 密码管理 » rabbitmq访问

rabbitmq访问

发布时间: 2023-01-20 11:15:36

⑴ RabbitMQ首次安装登陆User can only log in via localhost

RabbitMQ默认提供了一个guest/guest用户,但是从3.3.0 版本以后该账号只能localhost登陆(User can only log in via localhost),解决办法就是我们通过命令行创建一个管理员账号。

通过heip命令我们可以找到rabbitmq操作用户和权限相关的命令

通过以下命令创建一个用户admin,密码为admin@123

创建完成之后通过以下命令设置用户标签为administrator

给用户admin赋予权限,授予admin用户可访问虚拟主机 /,并在所有的资源上具备可配置、可写及可读的权限

这样我们就完成了一个用户的创建,通过以下命令可以看出当前的所有用户

最后一步,我们就可以用admin登陆管理界面啦

 

查看rabbitmq相关命令的方法

⑵ RabbitMQ 后台管理界面 --- 2022-04-03

RabbitMQ提供了一个可视化的Web后台,方便了解队列的运行情况,也可以对RabbitMQ做一些管理操作。

默认访问地址: http://localhost:15672/

RabbitMQ 客户端连接情况

RabbitMQ 交换机情况

RabbitMQ 队列情况

RabbitMQ 队列详情

⑶ node下如何使用rabbitmq

首先在docker下安装mq

启动后,确保 http://localhost:15672 可以访问到。
如果无法访问,可以执行如下命令:

然后安装node插件。

config.js:

publisher.js

customer.js

⑷ 关于rabbitMq的Connection refused

        在Mac电脑本机上安装了一个RabbitMq,并通过web管理界面远程访问。 紧接着在自己搭建的spring boot项目中,整合了RabbitMq,本地启动项目,发现控制台一直报错。。。如下图所示:

 1、安装后的rabbitMq默认的账户:guest,密码:guest。查阅资料了解到这个账户不能用于项目连接rabiitMq-server;之后就创建了一个admin用户。

 2、通过命令方式创建了amdin用户,分配administrator权限,重启rabbitMq服务,紧接着启动项目,结果还是报上面的错误。

 3、明明已经分配了administrator权限了,为什么还是java.net.ConnectException: Connection refused (Connection refused);

 4、怀疑是不是命令操作有误等原因,紧接着登录rabbitMq web端,通过控制台方式创建admin账户,紧接着分配了administrator权限。

5、重启rabbitMq服务器,然后重启项目,发现还是一样的错误。

6、查看配置,发现yml配置文件中,有一个配置叫做virtual.host,在web控制台上发现也有这么一个配置。

7、配置了一个与项目中映射的一个名称。

8、重新启动项目,启动正常。

⑸ 厉害!一文了解消息中间件-RabbitMQ

RabbitMQ是2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,简称MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法,由Erlang(专门针对于大数据高并发的语言)语言开发,可复用的企业消息系统,是当前最主流的消息中间件之一,具有可靠性、灵活的路由、消息集群简单、队列高可用、多种协议的支持、管理界面、跟踪机制以及插件机制。



1.消息 就是数据,增删改查的数据。例如在员工管理系统中增删改查的数据

2.队列 指的是一端进数据一端出数据,例如C#中(Queue数据结构)



1.消息队列指:一端进消息,一端出消息

2.RabbitMQ就是实现了消息队列概念的一个组件,以面向对象的思想去理解,消息队列就是类,而RabbitMQ就是实例,当然不仅仅只有RabbitMQ,例如ActiveMQ,RocketMQ,Kafka,包括Redis也可以实现消息队列。



1.在常见的单体架构中,主要流程是用户UI操作发起Http请求>服务器处理>然后由服务器直接和数据库交互,最后同步反馈用户结果

2.在微服务架构中,UI与微服务通信,主要是通过Http或者gRPC同步通信



问题分析

在上述2种情况下,我们发现在UI请求时都是同步操作 ,第2种架构虽然将整体服务按业务拆分成不同的微服务并且对应各自的数据库,但是在用户与微服务通信时,存在的问题依然没有解决,例如数据库的承载能力只能处理10w个请求,如果遇到高并发情况下,UI发起50w请求,那数据库是远远承载不了的,从而导致如下问题。

1.高并发请求导致系统性能下降响应慢,同时数据库承载风险加大

2.扩展性不强UI操作的交互对业务的依赖较大,导致用户体验下降

3.瞬时流量涌入巨大的话,服务器可能直接挂了



解决方案

RabbitMQ的优势

RabbitMQ的不足



1.ConnectionFactory 为Connection的制造工厂。

2.Connection是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑。

3.Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等。

4.Exchange(交换机) 我们通常认为生产者将消息投递到Queue中,实际上实际的情况是,生产者将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中(或者丢弃),而在RabbitMQ中的Exchange一共有4种策略,分别为:fanout(扇形)、direct(直连)、topic(主题)、headers(头部)

1.下载RabbitMQ

2.运行环境erlang

3.安装完成之后,加载RabbitMQ管理插件

4.安装成功访问RabbitMQ管理后台http://localhost:15672

1.分别创建考勤服务,请假服务,计算薪酬服务,邮件服务,短信服务消费者角色

2.创建员工管理网站用于模拟前端调用,主要充当生产者角色

3.在员工管理网站和每一个模拟微服务中通过nuget引入RabbitMQ.Client

4.在员工管理网站中创建模拟添加考勤的控制器并加入生产者代码

5.在考勤微服务中创建接口,并在接口中加入消费者代码



fanout类型的Exchange路由规则非常简单,工作方式类似于多播一对多,它会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。

业务实例

当我们有员工需要请假,在员工管理系统提交请假,但是由于公司规定普通员工请假,需要发送短信到他的主管领导,针对此业务场景我们需要调用请假服务的同时去发送短信,这时需要两个消费者(请假服务,短信服务)来消费同一条消息,其实本质就是往RabbitMQ写入一个能被多个消费者接收的消息,所以可以使用 扇形交换机,一个生产者,多个消费者.

生产者模拟使用调用控制器来实现

消费者实现IHostedService 接口创建一个监听主机



直接交换器,工作方式类似于单播一对一,Exchange会将消息发送完全匹配ROUTING_KEY的Queue,缺陷是无法实现多生产者对一个消费者

当我们员工管理系统需要计算薪资并将结果以发送短信的方式告诉员工,这个时候我们就不太适合用“扇形交换机”了,因为换做是你,你也不想你的工资全公司都知道吧?这个时候就需要定制了一对一的场景了,那就在生产消息时使用直连交换机根据routingKey发送指定的消费者.

生产者模拟使用调用控制器来实现

消费者实现IHostedService 接口创建一个监听主机



Exchange绑定队列需要制定Key; Key 可以有自己的规则;Key可以有占位符; 或者# , 匹配一个单词、#匹配多个单词,在Direct基础上加上模糊匹配;多生产者一个消费者,可以多对对,也可以多对1, 真实项目当中,使用主题交换机。可以满足所有场景

1.生产者定义Exchange,然后不同的routingKey绑定

3.消费者routingKey的模糊匹配,生产者发送消息时routingKey定义以sms.开头, * 号只能匹配的routingKey为一级,例如(sms.A)或(sms.B)的发送的消息,# 能够匹配的routingKey为一级及多级以上 ,例如 (sms.A)或者(sms.A.QWE.IOP)

在月底的时候我们需要把员工存在异常考勤信息,薪资结算信息,请假信息分别以邮件的形式发送给我们的员工查阅,我们知道这是一个典型的多个生产者,一个消费者场景,异常考勤信息,薪资结算信息,请假信息分别需要生产消息发送到RabbitMQ,然后供我们员工消费

分别模拟3个生产者:异常考勤信息,薪资结算信息,请假信息



headers类型的Exchange不依赖于routing key与binding key的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配。
在绑定Queue与Exchange时指定一组键值对以及x-match参数,x-match参数是字符串类型,可以设置为any或者all。如果设置为any,意思就是只要匹配到了headers表中的任何一对键值即可,all则代表需要全部匹配。

1.不需要依赖Key

2.更多的时候,像这种Key Value 的键值,可能会存储在数据库中,那么我们就可以定义一个动态规则来拼装这个Key value ,从而达到消息灵活转发到不同的队列中去

我们根据上面的业务和代码简单实现了由生产者到消费者的一个业务流程,我们可以总结出知道,整个消息的收发过程包含有三个角色,生产者(员工管理网站)、RabbitMQ(Broker)、消费者(微服务),在理想状态下,按照这样实现,整个流程以及系统的稳定性,可能不会发生太大的问题,但是真正在实际应用中我们要去思考可能存在的问题,主要从三个大的方面去分析,然后发散。

1.生产端

2.存储端

3.消费端

我们在给RabbitMQ发送消息时,如何去保证消息一定到达呢,我们可以使用RabbitMQ提供了2种生产端的消息确认机制

我们生产端给RabbitMQ发送消息成功后,如果RabbitMQ宕机了,会导致RabbitMQ中消息丢失,如何解决消息丢失问题,针对RabbitMQ消息丢失,我们可以在生产者中使用

1.持久化消息

2.集群

当生产者写入消息到RabbitMQ后,消费服务接收消息期间,服务器宕机,导致消息丢失了,这个时候我们就应该使用RabbitMQ的消费端消息确认机制

1.自动确认

2.手动确认

消费者收到消息。消费者发送确认消息给rabbitmq期间。执行业务逻辑失败了,但是消息已经确认被消费了,我们应该在我们的消费者接收消息回调执行业务逻辑后面,执行使用手动确认消息机制,保证消息不被丢失

原文链接:https://www.cnblogs.com/yuxl01/p/15978229.html

linux下rabbitmq插件启用了,怎么在网页打开界面

直接在浏览器中访问:http://<你的ip地址>:15672
有rabbitmq相关问题,可以关注我的微信公众号:情情说,随时和我沟通 ~

⑺ spring boot 连接rabbitMQ 失败汇总与解决

很重要的前提:
首先查看服务器对应的端口是否开放,如15672和5672,是否添加入站规则

问题描述:采用guest可以连接访问rabbitmq,使用其他账户连接rabbitmq失败(其他账户均已经分配虚拟机和权限,并且可以登录管理页面,说明账号密码没有错误)

报错截图如下

好了,开始面向网络解决:
第一种说法:
有的说是spring.rabbitmq.connection-timeout 设置过小,导致连接超时,未建立连接
解决办法是把改参数的值该大一点

直接把它设置为0,0表示永远等待,即连接永不超时。

最终解决:
最后看到一篇博客,才找到了原因,他是通过命令的方式添加用户分配虚拟机和权限

我抱着不可能的心态直接Ctrl+C Ctrl+V ,结果居然成功的连接上了
经过排查,是原来我设置密码的时候,都是用了 数字 ,后面修改就得了
真是蛋疼的操作!!!!

⑻ 如何正确使用RabbitMQ

RabbitMQ 管理页面该如何使用 不过呢,如果我们安装了 rabbitmq_management 插件.

热点内容
真实战争安卓手机怎么安装内存卡 发布:2025-08-28 06:22:52 浏览:172
上海云服务器订餐 发布:2025-08-28 06:22:46 浏览:920
购买服务器如何付款 发布:2025-08-28 06:22:10 浏览:966
FTP猎头 发布:2025-08-28 05:55:29 浏览:486
颗粒压压缩机 发布:2025-08-28 05:54:08 浏览:602
数控编程F的意思 发布:2025-08-28 05:31:58 浏览:259
python的平方 发布:2025-08-28 05:20:35 浏览:643
东莞压缩弹簧厂 发布:2025-08-28 05:14:06 浏览:792
c语言inout 发布:2025-08-28 05:02:57 浏览:917
java父类访问子类变量么 发布:2025-08-28 04:54:20 浏览:404