微信公众号开发 二叉树排序 私有变量 resultMap 自动化部署 algorithm vector replace merge lua proxy react脚手架搭建 less用法 click事件 jquery循环遍历 jquery去空格 jq选择子元素 linux启动mysql命令 python在线教程 python当前日期 javase教程 java遍历集合 java中泛型 java字符串替换 java创建集合 java数组最大值 java遍历list集合 jdk环境配置 java文件复制 linux命令行大全 linux简介 linux启动 p2pover 磁盘分区软件 vbscript程序员参考手册 redis入门指南 俄罗斯方块c语言代码 js倒计时代码 pyh 蓝牙测试软件
当前位置: 首页 > 学习教程  > 编程语言

oslo_messaging使用

2020/7/24 10:30:34 文章标签:

 

oslo_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

 

测试验证

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库的介绍,大家可以自己去学习。

 


本文链接: http://www.dtmao.cc/news_show_50304.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?