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可以同名,相互之间不能访问。