前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rabbitmq haproxy keepalived ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN.

Rabbitmq haproxy keepalived ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN.

作者头像
我是李超人
发布2020-08-21 10:39:06
1.3K0
发布2020-08-21 10:39:06
举报
文章被收录于专栏:大数据入坑指南

在使用java连接rabbitmq时报如下错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/04/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档