通过代码认识openstack 环境中连接到rabbit服务器

本文介绍OpenStack服务如何通过RabbitMQ进行RPC交互,重点解析了Neutron服务如何利用用户名和密码机制实现与RabbitMQ的安全连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Openstack 服务进程如Neutron-server,和别的服务进程会有rpc交互。message 信息是通过rabbit服务器来进行转发的,为了安全,并不是所有的程序都可以连接到rabbit服务器,会有认证机制,机制是什么,就是用户名和密码机制。

一、连接到rabbit服务器,对应的服务log中一般会有下面的信息。

INFO oslo_messaging._drivers.impl_rabbit [req-aa1c0cc9-863c-4b3f-a400-49fba8af254a ] Connecting to AMQP server on controller:5672
INFO oslo_messaging._drivers.impl_rabbit [req-aa1c0cc9-863c-4b3f-a400-49fba8af254a ] Connected to AMQP server on controller:5672
这个信息,表明已经连接到了rabbit服务器。

二、认识rabbit服务器所需的用户名和密码

      1、 neutron.conf中的配置如下:

      

[oslo_messaging_rabbit]

#
# From oslo.messaging
#

rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
    2、代码

          pos:oslo_messaging\_drivers\impl_rabbit.py

          有全局变量配置项rabbit_opts,rabbit_host,rabbit_userid,rabbit_password等默认配置项。

rabbit_hostlocalhost
rabbit_useridguest
rabbit_passwordguest

若配置项中,没有oslo_messaging_rabbit,那么就使用上述默认的用户名和密码以及host。

3、连接成功代码

    

class Connection(object):
    self.connection = kombu.connection.Connection(
            self._url, ssl=self._fetch_ssl_params(),
            login_method=self._login_method,
            failover_strategy="shuffle",
            heartbeat=self.driver_conf.heartbeat_timeout_threshold,
            transport_options={'confirm_publish': True})
    LOG.info(_LI('Connecting to AMQP server on %(hostname)s:%(port)d'),
                 self.connection.info()) 正在连接
    LOG.info(_LI('Connected to AMQP server on %(hostname)s:%(port)d'),
                 self.connection.info())  连接成功

 


         

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值