Rabbitmq haproxy keepalived ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN.
时间:2022-07-23
本文章向大家介绍Rabbitmq haproxy keepalived ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN.,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在使用java连接rabbitmq时报如下错误:
Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:339)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:813)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:767)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:857)
at com.gildata.RabbitProducer.getConnection(RabbitProducer.java:37)
at com.gildata.RabbitProducer.publish1(RabbitProducer.java:42)
at com.gildata.RabbitProducer.main(RabbitProducer.java:27)
出现这种错误的情况有多种,比如guest用户访问时只允许localhost访问,或者用户名密码错误等。
我的rabbitmq运用到了haproxy和keepalived来实现高可用的负载均衡,直接通过haproxy机器的IP访问时是没问题的,但是使用keepalived的VIP来访问就有问题,后来通检查发现需要在keepalived.conf做相应的配置,keepalived.conf配置如下: MASTER上的keepalived.conf
global_defs {
notification_email {
ric@xxx.com
}
notification_email_from cloud@xxx.com
smtp_server smtp.xxx.com # NAU Mail Relay Server
smtp_connect_timeout 300
router_id NodeA
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#自定义监控脚本
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
weight 2
}
vrrp_instance VI_1 {
state MASTER # MASTER on haproxy1, BACKUP on haproxy2
interface ens160 #interface to monitor
virtual_router_id 51
priority 101 # 101 on haproxy1, 100 on haproxy2
advert_int 1
smtp_alert # Activate SMTP notifications
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_haproxy
}
track_interface {
ens160
}
virtual_ipaddress {
10.1.12.200 #virtual ip address
}
}
#虚拟服务器定义块
virtual_server 10.1.12.200 5672 {
delay_loop 30
lb_algo wrr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 10.1.12.146 5670 {
weight 2
TCP_CHECK {
connect_port 5670
connect_timeout 3
}
}
}
BACKUP上的keepalived.conf
global_defs {
notification_email {
ric@xxx.com
}
notification_email_from cloud@xxx.com
smtp_server smtp.gildata.com # NAU Mail Relay Server
smtp_connect_timeout 300
router_id NodeA
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#自定义监控脚本
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
weight 2
}
vrrp_instance VI_1 {
state BACKUP # MASTER on haproxy1, BACKUP on haproxy2
interface ens160 #interface to monitor
virtual_router_id 51
priority 100 # 101 on haproxy1, 100 on haproxy2
advert_int 1
smtp_alert # Activate SMTP notifications
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_haproxy
}
track_interface {
ens160
}
virtual_ipaddress {
10.1.12.200 #virtual ip address
}
}
#虚拟服务器定义块
virtual_server 10.1.12.200 5672 {
delay_loop 30
lb_algo wrr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 10.1.12.151 5670 {
weight 2
TCP_CHECK {
connect_port 5670
connect_timeout 3
}
}
}
注意其中的虚拟服务器定义块这一部分,当时就是由于缺少这一部分的配置,使得程序一直报错。 Java客户端连接的时候IPAddress使用的是VIP,port使用的是5672
- 市民近期到南沙有望体验到无人驾驶技术
- Andrew Ng机器学习课程笔记--week10(优化梯度下降)
- Andrew Ng机器学习课程笔记--week9(下)(推荐系统&协同过滤)
- Andrew Ng机器学习课程笔记--week9(上)(异常检测&推荐系统)
- python程序员开发必备的5大工具,你用过几个?
- Andrew Ng机器学习课程笔记--week8(K-means&PCA)
- Andrew Ng机器学习课程笔记--week7(SVM)
- Pytorch windows10安装教程
- Udacity并行计算课程笔记-The GPU Programming Model
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week1深度学习的实用层面
- 通俗理解决策树中的熵&条件熵&信息增益
- KNN实现手写数字识别
- softmax分类算法原理(用python实现)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel邮件发送的实现代码示例
- php curl发送请求实例方法
- ubuntn备份办法总结(四种)
- PHP中散列密码的安全性分析
- php的RSA加密解密算法原理与用法分析
- PHP实现微信提现(企业付款到零钱)
- centos7下rsync+crontab定期同步备份
- php抽象类和接口知识点整理总结
- php中echo与print区别点整理
- laravel框架模型和数据库基础操作实例详解
- Yii Framework框架使用PHPExcel组件的方法示例
- thinkphp3.2.3框架动态切换多数据库的方法分析
- 安装docker和docker-compose实例详解
- 如何判断php复选框是否被选中
- php实现的生成排列算法示例