连接rabbitmq集群报ProbableAuthenticationError

   

我有3台rabbitmq节点,rabbitmq版本3.6.5,linux为centos7,组成一个集群,并且使用了haproxy负载均衡策略,haproxy版本为1.7.5,haproxy配置文件如下:

# HAProxy Config for Local RabbitMQ Cluster

#/(hap.0) Logging options
global
	log 127.0.0.1	local0 info
	maxconn 4096
	stats socket /tmp/haproxy.socket uid haproxy mode 770 level admin
	daemon

#/(hap.1) Load balancing defaults
defaults
	log	global
	mode    tcp
	option	tcplog
	option	dontlognull
	retries	3
	option redispatch
	maxconn	2000
	timeout connect	5s
	timeout client 120s
	timeout server 120s

#/(hap.2) Front-end IP for our consumers and producers



listen rabbitmq_local_cluster
    bind 127.0.0.1:5670
    timeout client 3h
    timeout server 3h
    #/(hap.3) Load balancing options
    mode tcp
    balance roundrobin
    #/(hap.4) Cluster nodes HAProxy will be load balancing.
    
    
    
    server rabbit1 10.100.73.241:5672 check inter 5000 rise 2 fall 3
    server rabbit2 10.100.73.129:5672 check inter 5000 rise 2 fall 3
    server rabbit3 10.100.73.216:5672 check inter 5000 rise 2 fall 3

#/(hap.5) Statistics page
listen private_monitoring 
    bind 10.100.73.241:8100
    mode http
    option httplog
    stats enable
    stats uri   /stats
    stats refresh 5s
   



我用python写了一个脚本consumer.py文件,想测试集群,consumer.py连接集群部分内容如下:

if __name__ == "__main__":

    AMQP_SERVER = sys.argv[1]
    AMQP_PORT = int(sys.argv[2])
    
    #/(ctc.3) Establish broker connection settings
    creds_broker = pika.PlainCredentials("guest", "guest")
    conn_params = pika.ConnectionParameters( AMQP_SERVER,
                                             port=AMQP_PORT,
                                             virtual_host="/",
                                             credentials=creds_broker)

然后我在终端输入#python consumer.py localhost  5670   ,然后就报错ProbableAuthenticationError,意思就是登录失败

在网上查说是guest用户仅限于localhost连接,不能用于远程连接,要想用于远程连接,就必须修改rabbitmq配置文件

#cp /usr/share/doc/rabbitmq-server-3.6.2/rabbitmq.config.example   /etc/rabbitmq/rabbitmq.config

#vi  /etc/rabbitmq/rabbitmq.config
将%% {loopback_users, [<<"guest">>]},   改为 {loopback_users, []},改完后重启,我按照网上说的做,结果rabbitmq启动不了,还报如下错误:

{"could not start kernel pid",application_controller,"error in config file "/etc/rabbitmq/rabbitm.config\" (296): syntax error before ']' "}

我又改回来,又可以启动了,后来又在网上搜到了另一个解决办法:

Starting with RabbitMQ 3.3 you need to create a new account to use remotely, andguest/guest can only be used locally.
翻译过来就是从3.3版本开始远程连接只能新创建用户,guest只能本地连接,所以

远程访问rabbitmq:自己增加一个用户,步骤如下:
l1.  创建一个admin用户:sudo rabbitmqctl add_user admin 123123
l2.  设置该用户为administrator角色:sudo rabbitmqctl set_user_tags admin administrator
l3.  设置权限:sudo rabbitmqctl  set_permissions  -p  '/'  admin '.' '.' '.'
l4.  重启rabbitmq服务:sudo service rabbitmq-server restart
之后就能用admin用户远程连接rabbitmq server了。


创建完后,修改consumer.py文件,将连接信息改为如下

if __name__ == "__main__":

    AMQP_SERVER = sys.argv[1]
    AMQP_PORT = int(sys.argv[2])
    
    #/(ctc.3) Establish broker connection settings
    creds_broker = pika.PlainCredentials("admin", "123123")
    conn_params = pika.ConnectionParameters( AMQP_SERVER,
                                             port=AMQP_PORT,
                                             virtual_host="/",
                                             credentials=creds_broker)

在终端输入#python consumer.py localhost  5670
就ok了,连上了集群,通过了负载均衡测试,原来就是换一个账号,别用guest,如果你的集群是在一台机器上搭建的,即单机模式的话,guest说不定可以,我没试过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值