博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Neutron中的Service类
阅读量:6266 次
发布时间:2019-06-22

本文共 1050 字,大约阅读时间需要 3 分钟。

Service是OpenStack中非常重要的一个概念,各个服务的组件都以Service类的方式来进行交互。

Neutron中的Service类继承自rpc中的Service,总体的继承关系为

neutron.openstack.common.service.Service-->neutron.common.rpc.Service-->neutron.service.Service类。

当中neutron.openstack.common.service.Service类定义了简单的reset()start()stop()wait()方法。该类初始化后会维护一个线程组。

neutron.common.rpc.Service类中进一步丰富了start()stop()方法,并在初始化中引入了hosttopicmanagerserializer參数。

start()添加�创建了Connection对象,之后创建了三个consumer,分别监听主题为參数传入的topicfanout分别为TrueFalse),以及主题为topic.host。然后调用manager的初始化。最后作为server启动全部的consumer

neutron.service.Service类的初始化中更进一步的添加�了binaryreport_intervalperiodic_intervalperiodic_fuzzy_delay等參数。除丰富了start()stop()wait()方法外,还添加�了create()类方法、kill()periodic_tasks()report_state()

start()添加�了周期性运行report_state()periodic_tasks(),而且调用managerinit_host()after_start()方法。

create()方法是类方法,它依据传入的參数binary參数获取真实的程序名,并在未给定參数的情况下尝试从配置文件里解析managerreport_intervalperiodic_intervalperiodic_fuzzy_delay等參数。最后是返回生成的Service类对象。

report_state()方法仅定义了接口。

periodic_tasks()则首先获取admin的上下文,然后调用managerperiodic_tasks()方法运行。

很多其它详细内容请參考

转载地址:http://bgbpa.baihongyu.com/

你可能感兴趣的文章
Vue学习笔记1
查看>>
用户输入一个网址到页面展示内容的这段时间内,浏览器和服务器都发生了生么事情?...
查看>>
动手搞一个Promise
查看>>
[case32]alibaba限流组件Sentinel实战
查看>>
用python来给图片加水印
查看>>
【跃迁之路】【550天】程序员高效学习方法论探索系列(实验阶段307-2018.08.09)...
查看>>
link和@import的区别浅析
查看>>
vscode 相关
查看>>
nodejs 全自动使用 Tinypng (免费版,无需任何配置)压缩图片
查看>>
彻底理解Java中的基本数据类型转换(自动、强制、提升)
查看>>
在CentOS中安装redis5.0
查看>>
重构-改善既有代码的设计(六)--重新组织函数
查看>>
panic: time: missing Location in call to Time.In
查看>>
在K8S集群中一步步构建一个复杂的MySQL数据库
查看>>
前端每日实战:15# 视频演示如何用纯 CSS 创作条形图,不用任何图表库
查看>>
浅谈 Angular 项目实战
查看>>
初学Linux指导(三)
查看>>
C++入门教程(8):if 语句
查看>>
Tampermonkey的使用
查看>>
功能强大的Tomcat 管理监控工具【PSI Probe】
查看>>