当前位置: 首页 > news >正文

RabbitMQ(六)远程连接

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

 

相关文章:

  • FileInputStream与FileOutputStream类
  • Octopus系列之数据上传格式要求说明
  • IIS 之 HTTP 错误 500.19(无法访问请求页面,因为该页的相关配置数据无效)
  • 依据波形的转折点文件,转换成波形文件
  • springMvc 入门学习(自动生成 springmvc 单表 两关联表 生成 及显示)
  • HealthKit开发教程之HealthKit的主要类型数据
  • java.io.FileNotFoundException: /exapp/hadoop/name/current/VERSION (Permission denied)
  • 北漂到底要不要回老家发展?
  • openwrt开源系统LUCI配置界面
  • Apache benchmark对网站进行压力测试
  • mybatis generator生成代码工具的使用
  • SharePoint 2016 的新特性概览(二)(What's New for IT Professionals in SharePoint Server 2016)...
  • 后缀数组 --- HDU 3518 Boring counting
  • C++语言基础 例程 基类与派生类的转换
  • CDA数据分析师认证考试模拟题库
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • ➹使用webpack配置多页面应用(MPA)
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Java的Interrupt与线程中断
  • Koa2 之文件上传下载
  • Linux Process Manage
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • python学习笔记 - ThreadLocal
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 对象引论
  • 复杂数据处理
  • 近期前端发展计划
  • 你真的知道 == 和 equals 的区别吗?
  • 爬虫模拟登陆 SegmentFault
  • 悄悄地说一个bug
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 一起参Ember.js讨论、问答社区。
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #Linux(make工具和makefile文件以及makefile语法)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (2020)Java后端开发----(面试题和笔试题)
  • (4.10~4.16)
  • (arch)linux 转换文件编码格式
  • (SpringBoot)第七章:SpringBoot日志文件
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (区间dp) (经典例题) 石子合并
  • (算法二)滑动窗口
  • (五)MySQL的备份及恢复
  • (转)http-server应用
  • (转)socket Aio demo
  • *Django中的Ajax 纯js的书写样式1
  • .htaccess 强制https 单独排除某个目录