1.在试图连接虚拟机总是报错后 在网上找到了原因:rabbitmq的默认用户guest是只能连接locahost的。要解决这个问题:
a.新建用户
rabbitmqctl add_user name passwd
b.为新建用户配置角色
rabbitmqctl set_user_tags User Tag # Tag是其角色名称 可选administrator,monitoring,policymaker,management,或其他自定义名称。同一用户亦可有多个角色
c.为新建用户配置权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP # rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
d.在初始化connection时在 pika.ConnectionParameters()中加上 credentials参数 credentials = (user_name, password)
e.在实际使用时还必须加上virtual_host参数 virtual_host='/' 否则会报错、不知道为什么 以后知道了再来补上
在我写完这篇随笔后 试着去掉这个参数 又不报错了。本来也不应该报错的 至于为什么 大概是玄学吧。。
参考自:https://my.oschina.net/hncscwc/blog/262246
2.virtual_host
rabbitmq的虚拟服务器 就像redis的db表一样 之间的queue或exchange可以同名,相互之间不能访问。