RabbitMQ(六)远程连接

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

"guest" user can only connect via localhost

官方文档:http://www.rabbitmq.com/access-control.html

如果必须使用`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)认证

原文:https://pika.readthedocs.org/en/0.9.14/modules/parameters.html

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()      

 


本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:cococo点点 http://www.cnblogs.com/coder2012

时间: 2024-09-16 04:20:42

RabbitMQ(六)远程连接的相关文章

远程连接RabbitMQ失败

远程连接RabbitMQ失败 为了避免污染宿主系统环境,于是在虚拟机中搭建了一个linux环境并且按照了rabbitmq-server.然后在远程连接的时候一直连接失败. 官网上面给的例子都是在本地使用系统默认的guest用户连接的.没有给出远程连接的例子,于是阅读文档发现: When the server first starts running, and detects that its database is uninitialised or has been deleted, it in

Android源码浅析(六)——SecureCRT远程连接Linux,配置端点和字节码

Android源码浅析(六)--SecureCRT远程连接Linux,配置端点和字节码 需要编译源码的同学,一般都是win+虚拟机吧,但是再虚拟机里体验并不是很好,所有市面上有很多的软件能够做到在win端直接调用linux的终端,比如今天说的SecureCRT或者XShell等软件,我们先来看下SecureCRT的一些简单的介绍: "SecureCRT是一款用于连接运行包括Windows.UNIX和VMS的理想工具.通过使用内含的VCP命令行程序可以进行加密文件的传输.有流行CRTTelnet客

mysql数据库-远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上

问题描述 远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上 我是通过远程连接在实验室机房的一台机器(linux操作系统)上,然后在该机器上建立JAVA程序,其中涉及到连接mysql数据库的操作,但是在获取连接时一直提示"Communications link failure",涉及的代码为:connect=DriverManager.getConnection(""jdbc:mysql://localhost:3306/pyq_te

急,求助高手。关于ASP.NET.在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。

问题描述 说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.Data.SqlClient.SqlException:在建立与服务器的连接时出错.在连接到SQLServer2005时,在默认的设置下SQLServer不允许进行远程连接可能会导致此失败.(provider:命名管道提供程序,error:40-无法打开到SQLServer的连接)源错误:行23:{行24:SqlConnectioncon=

sql2005-高人救我,sql server 2005 数据库不时无法远程连接

问题描述 高人救我,sql server 2005 数据库不时无法远程连接 说明:关于我这个问题,我穷究了好几天,网上几乎所有相关问题的方法我都试过了,仍然没有解决.特来C论坛请教高手,万望各位不吝赐教.新来的,无C币,悬赏C币只有一个,仅代表我的一点感激之情,请勿见笑. 情况:asp + sql 2005,用的动易siteweaver 6.8 asp cms系统,一台web服务器,一台数据服务器,两台机器直连组的局域网. 问题:直接在数据服务器上连接数据库,一直都正常,在web服务器上通过内网

mssql2005 远程连接问题解决方法

一.为 SQL 启用远程连接 1. 单击"开始",依次指向"程序"."Microsoft SQL Server 2005"和"配置工具",然后单击"SQL Server 外围应用配置器". 2. 在"SQL Server 2005 外围应用配置器"页上,单击"服务和连接的外围应用配置器". 3. 在"服务和连接的外围应用配置器"页上,展开"

SQL Server 2005无法远程连接的解决方法

  有时候我们需要链接某一台服务器上的数据库,我们一下的操作都是在该台服务器上操作的:   一.为 SQL Server 2005 启用远程连接 1. 单击"开始",依次选择"程序"."Microsoft SQL Server 2005"."配置工具",然后单击"SQL Server 外围应用配置器". 2. 在"SQL Server 外围应用配置器"页上,单击"服务和连接的外

mysql远程连接设置

远程连接mysql数据库: 连接上以后,通过这台跳转服务器远程连接mysql库: 用法:mysql -h ip/主机名  -u 用户名  -p 密码 [root@AY131227102745952439Z /etc]#mysql -h rdsa3qfmmqriq3y.mysql.rds.aliyuncs.com  -u weblog -p Enter password: Welcome to the MariaDB monitor.  Commands end with ; or \g. You

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败,寻解决方法

问题描述 在建立与服务器的连接时出错.在连接到SQLServer2005时,在默认的设置下SQLServer不允许进行远程连接可能会导致此失败.(provider:命名管道提供程序,error:40-无法打开到SQLServer的连接)说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.Data.SqlClient.SqlException:在建立与服务器的连接时出错.在连接到SQLServer200