RabbitMQ(六)远程连接

默认情况下,rabbitmq使用`guest`来连接本地(localhost)的server,当需要远程连接时,就会失效。

"guest" user can only connect via localhost

如果必须使用`guest`用户来进行远程登录,需要修改配置
[{rabbit, [{loopback_users, []}]}].

(1)那么首先需要创建并添加一个用户`test`,让其具有管理员权限

rabbitmqctl add_user rootroot
rabbitmqctl set_user_tags rootadministrator
rabbitmqctl set_permissions -p / root".*" ".*" ".*"

(2)修改配置文件

[{rabbit, [{loopback_users, ["root"]}]}].

(3)重启rabbitmq-server

/etc/init.d/rabbitmq-server restart

(4)修改host

修改远程客户端机器上的/etc/hosts,添加rabbit-server的IP
xx.xx.xx.xx rabbit-server

(5)认证

pika提供了两种认证方式:ConnectinParameters和URLParameters。

ConnectionParameters

import pika

# Set the connection parameters to connect to rabbit-server1 on port 5672# on the / virtual host using the username "guest" and password "guest"
credentials = pika.PlainCredentials('root', 'root')
parameters = pika.ConnectionParameters('rabbit-server1',
5672,
'/',
credentials)

URLParameters

import pika

# Set the connection parameters to connect to rabbit-server1 on port 5672# on the / virtual host using the username "guest" and password "guest"
parameters = pika.URLParameters('amqp://guest:guest@rabbit-server1:5672/%2F')

例子

import pika

i = 1

def callback(ch, method, properties, body):
global i
#print 'receive %r'%body
print 'receive %s'%i
i += 1
f = open('%s'%i, 'w+')
f.write(body)
f.close() #第一种方法
#credentials = pika.PlainCredentials('mtest', 'root')
#connection = pika.BlockingConnection(pika.ConnectionParameters('rabbit-server', 5672, '/', credentials))
#第二种方法
parameters = pika.URLParameters('amqp://mtest:root@rabbit-server:5672/%2F')
connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_consume(callback, queue='hello1', no_ack=True) channel.start_consuming()

最新文章

  1. couchDB视图
  2. Linux编译工具:gcc入门
  3. windows下mysql客户端输入中文显示??解决方法
  4. vmware虚拟机检测
  5. [CareerCup] 16.2 Measure Time in a Context Switch 测量上下文转换的时间
  6. Knockout学习笔记之二($root,$parent及$data的区别)
  7. Blackfin DSP(三):BF533 的EBIU接口之flash
  8. Backbone笔记(续)
  9. svn: E200030: sqlite[S10]: disk I/O error
  10. android 45 通知
  11. CodeForces 689A -Mike and Cellphone
  12. MySQL(七)DQL之分组查询
  13. HVP plan
  14. blogger添加代码高亮
  15. JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符
  16. BJOI2019 题解
  17. POJ-1038 Bugs Integrated, Inc. (状压+滚动数组+深搜 的动态规划)
  18. [追加评论]三款SDR平台对比:HackRF,bladeRF和USRP
  19. Spark1.6 Idea下远程调试
  20. RocketMQ:Cannot allocate memory

热门文章

  1. My97Datepicker 去掉 “不合法格式或超期范围”自动纠错限制
  2. phantomjs和angular-seo-server实现angular单页面seo
  3. which type of VS files should be committed into a version control system
  4. 配置与使用 Git与Github
  5. eclipse生成uml
  6. ajax实现手机获取验证码
  7. 猜数字 事先给定一个数字,然后让用户猜3次,猜不中就输了,猜中就赢了。 每次猜错,给出提示,less or big
  8. oracle 中start with 的用法
  9. [转]MySQL关键性能监控(QPS/TPS)
  10. ruby 学习笔记 1