Neutron中的Service类

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()方法执行。


更多具体内容请参考https://github.com/yeasy/tech_writing/blob/master/OpenStack/OpenStack%20Neutron%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值