oslo_messaging使用及测试

oslo_messaging使用及测试openstack

目录

介绍说明

系统环境

rabbitmq-server安装及配置

oslo.messaging安装

oslo.config安装

olso_messaging测试验证

总结


介绍说明

openstack中的消息队列使用rabbitmq-server,几乎所有组件都依赖消息队列,而在代码表现端,openstack各个服务会使用开源的oslo_messaging库,该模块封装了几乎所有对消息队列的操作,rabbitmq和olso_messaging二者中涉及到的原理、概念和关系我在这里不做介绍,网上有很多文章大家可以来学习,这里只给大家介绍一下rabbitmq和oslo_messaging的安装、使用和测试。

 

系统环境

我使用的是Centos7,提前安装好pip,安装oslo库时需要用到,方法自行百度

 

rabbitmq-server安装及配置

1、安装

yum install rabbitmq-server

2、查看服务状态

查看服务是否启动,确保安装后服务启动正常

[root@mm2v ~]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-07-13 12:10:24 CST; 1 weeks 3 days ago
 Main PID: 21910 (beam.smp)
   Status: "Initialized"
    Tasks: 279
   CGroup: /system.slice/rabbitmq-server.service
           ├─21910 /usr/lib64/erlang/erts-8.3.5.3/bin/beam.smp -W w -A 256 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -root /usr/lib64/erlang ...
           ├─22318 erl_child_setup 1024
           ├─22342 inet_gethost 4
           └─22343 inet_gethost 4
[root@mm2v ~]# 

3、用户配置

① 创建用户

rabbitmqctl add_user liyang liyang

 

② 赋予administrator角色:

rabbitmqctl set_user_tags liyang administrator

 

③ 增加用户权限

rabbitmqctl set_permissions -p / liyang ‘.*’ ‘.*’ ‘.*’

 

④ 查看用户及其权限

rabbitmqctl list_users

[root@lyv ~]# rabbitmqctl list_users
Listing users ...
guest	[administrator]
liyang	[administrator]
...done.
[root@lyv ~]# 
[root@lyv ~]# 
[root@lyv ~]# rabbitmqctl list_user_permissions liyang
Listing permissions for user "liyang" ...
/	.*	.*	.*
...done.
[root@lyv ~]# 

 

oslo.messaging安装

pip install –ignore-installed oslo.messaging

 

oslo.config安装

pip install –ignore-installed oslo.config

 

olso_messaging测试验证

1、服务端代码

#!/usr/bin/python
from oslo_config import cfg
import oslo_messaging
import sys
import time

class TestEndpoint(object):

    def test(self, ctx, a,b):
        print "receive client access"
        return a+b

transport_url = 'rabbit://liyang:liyang@10.249.104.99:5672/'
server = sys.argv[1]
transport = oslo_messaging.get_transport(cfg.CONF,transport_url)
target = oslo_messaging.Target(topic='test', server=server)
endpoints = [
    TestEndpoint(),
]
server = oslo_messaging.get_rpc_server(transport, target, endpoints)
try:
    server.start()
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    print("Stopping server")

server.stop()
server.wait()

 

2、客户端代码

#!/usr/bin/python

from oslo_config import cfg
import oslo_messaging
 
transport_url = 'rabbit://liyang:liyang@10.249.104.99:5672/'
transport = oslo_messaging.get_transport(cfg.CONF,transport_url)
target = oslo_messaging.Target(topic='test')
client = oslo_messaging.RPCClient(transport, target)
r = client.call({}, 'test',a=2,b=3)
print r
print 'success

 

3、测试结果

① 启动服务端

程序后的参数”my-server”是server名,可自定义,供程序中使用。

[root@lyv ~]# python server.py my-server
/usr/lib/python2.7/site-packages/oslo_messaging/server.py:340: FutureWarning: blocking executor is deprecated. Executor default will be removed. Use explicitly threading or eventlet instead in version 'pike' and will be removed in version 'rocky'
  category=FutureWarning)

 

② 启动客户端

可以看到client端调用了server端的方法函数,程序里是”test”方法,该函数在server端会将两个整型入参做加法运算并返回


[root@lyv ~]# ./client.py 
5
success

③ 服务端输出

[root@lyv ~]# python server.py my-server
/usr/lib/python2.7/site-packages/oslo_messaging/server.py:340: FutureWarning: blocking executor is deprecated. Executor default will be removed. Use explicitly threading or eventlet instead in version 'pike' and will be removed in version 'rocky'
  category=FutureWarning)




receive client access #server端收到client端的调用,程序代码输出


​

 

总结

本文的目的是为了帮助想要了解oslo_messaging的同学,可以快速搭建出一套可用的环境,包括rabbitmq-server、oslo_messaging、olso_config的安装、配置及使用方法,当然这里仅是使用了oslo_messaging消息收发其中一种模式而已,更多的消息收发使用方法以及关于oslo库的介绍,大家可以自己去学习。

 

今天的文章oslo_messaging使用及测试分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/24870.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注