连接rabbitmq集群报ProbableAuthenticationError
来源:互联网 发布:百度人工智能研究 编辑:程序博客网 时间:2024/06/05 00:35
我有3台rabbitmq节点,rabbitmq版本3.6.5,linux为centos7,组成一个集群,并且使用了haproxy负载均衡策略,haproxy版本为1.7.5,haproxy配置文件如下:
# HAProxy Config for Local RabbitMQ Cluster#/(hap.0) Logging optionsgloballog 127.0.0.1local0 infomaxconn 4096stats socket /tmp/haproxy.socket uid haproxy mode 770 level admindaemon#/(hap.1) Load balancing defaultsdefaultslogglobalmode tcpoptiontcplogoptiondontlognullretries3option redispatchmaxconn2000timeout connect5stimeout client 120stimeout server 120s#/(hap.2) Front-end IP for our consumers and producerslisten 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 pagelisten 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 123123l2. 设置该用户为administrator角色:sudo rabbitmqctl set_user_tags admin administratorl3. 设置权限: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说不定可以,我没试过
- 连接rabbitmq集群报ProbableAuthenticationError
- RabbitMQ 集群
- Rabbitmq集群
- RabbitMQ集群
- RabbitMQ 集群
- RabbitMQ集群
- hadoop集群中eclipse报连接出错
- 关于zookeeper报集群连接超时解决方法
- java连接zookeeper集群报错
- RabbitMQ 集群测试
- rabbitmq windows集群
- RabbitMQ集群方案
- RabbitMQ集群配置
- Rabbitmq集群测试1
- [转]RabbitMq集群
- RabbitMQ集群环境部署
- Rabbitmq集群高可用
- RabbitMQ集群方案
- Spring MVC 如何防止XSS、SQL注入攻击
- 游戏服务器开发和维护的一些经验
- 数据库连接池原理
- JS打开APP
- 浅谈我对MySQL数据库的范式的理解和设计
- 连接rabbitmq集群报ProbableAuthenticationError
- WR解析报告
- 浅尝Solr~~
- C++11可变参数函数模板
- fitnesse 源码研究和二次开发
- 使用parted划分GPT分区
- Java多线程
- 图论基础(一)
- 在当前时间上加时间(年月日,小时,分钟,秒)