云计算
文章平均质量分 86
half-beast
关注全栈,喜欢寻根究底
展开
-
一文看懂neutron-server中Pecan的用法
前文有对neutron-server源码中的WSGI进行分析,总结出neutron-server的最简初始化过程。本文在此基础上对neutron-server中的Pecan继续进行深入介绍。Pecan是一个基本对象分发风格路由的轻量级Python Web框架,所以相比PPRW框架(Paste,PastDeploy,Routes,WebOb),使用Pecan实现路由分发的neutron-server逻辑更加简洁易懂。一个V2Controller类,就完全表达了neutron-server中用于路由分发的功原创 2021-01-18 00:30:38 · 750 阅读 · 0 评论 -
neutron-server源码分析总纲
背景:本文以neutron的12.0.0版本为例进行源码分析。neutron-server作为Neutron的控制中心,主要对Neutron四大类资源进行管理。从实现架构上可以粗略分为两大模块:neutron-api和RPC。这么分类的依据来自于neutron-server的启动方法,其资源的初始化基本都是在start_api_and_rpc_workers这个方法中完成的。该方法的源码如下所示:def start_api_and_rpc_workers(neutron_api): t.原创 2021-01-06 22:51:40 · 878 阅读 · 2 评论 -
管理进程生命周期的好帮手-systemd
做系统服务开发的工程师,通常需要把自己开发的服务部署到Linux服务器,同时还要保证服务器在宕机重启后,服务进程需要随机启动。Systemctl是systemd工具集中的一款,主要负责控制systemd系统和服务管理器(在Linux系统中,经常看到这种工具设计方式,比如iptables、docker、openvswitch等,全部基于c/s模式实现)。Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类Unix系统。在原创 2021-01-06 14:10:42 · 239 阅读 · 0 评论 -
Neutron分析--oslo.config
在分析Neutron源码的过程中,会遇到很多阻碍,oslo.config就是其中之一。启动Neutron的标准方式是systemctl start neutron-server.service。那么该命令具体做了哪些事情,neutron-server的配置参数又是怎么被加载的呢?下面让我们具体分析。 找到neutron-server.service的具体文件 文件路径是/usr/lib/systemd/system/neutron-server.service。如果不清楚怎么确定systemd原创 2021-01-05 16:15:02 · 377 阅读 · 0 评论 -
Neutron模块oslo.messaging
前面简单介绍过Neutron消息中间件RabbitMQ的用法。学习过的人,相信对RabbitMQ不会再有陌生感。接下来将会继续介绍Neutron中消息通信模块oslo.messaging。它是OpenStack公共库oslo中的一个组件,封装了RPC调用,为RPC和事件通知提供了一套统一的接口。使用过OpenStack的人都知道,目前原生OpenStack底层MQ驱动默认是kombu。那么为什么OpenStack又在此基础上做了一层封装?在编程领域,一个显而易见的原因是减少模板代码和对底层驱动提供更加灵原创 2021-01-05 09:09:59 · 398 阅读 · 1 评论 -
RabbitMQ入门
Neutron各组件之间的通信主要是通过RabbitMQ实现的,所以为了更好的学习Neutron,首先需要先熟悉RabbitMQ的常规用法。学习过Java或者写过Web应用的开发人员相信对MQ耳熟能详。在Web应用的世界中,MQ的使用实在太普遍了。常见的MQ系统有ActiveMQ,Kafka,Qpid,redis,ZeroMQ,RabbitMQ等等。在这些MQ实现中,有些严格遵守了AMQP标准,有些则自成一派。接下来让我们认识一下RabbitMQ的特点。 除了Qpid之外,RabbitMQ是唯一实原创 2021-01-03 22:41:21 · 155 阅读 · 0 评论 -
黑入neutron-l3-agent消息系统
在进行云计算网络功能开发时,经常需要在现有网络基础上进行网络功能定制或者开发新的插件。此时,就需要我们对Neutron的设计和功能有足够的认识。下面以Neutorn的l3-agent插件为例,讲解第三方服务如何实现对l3-agent服务状态的监控。l3-agent是Neutron家族众多Agent中的一员。从名称就可以推知,该Agent肯定与三层路由有着密不可分的关系。实际情况也的确如此。l3-agent是一个进程,同时它也是一个RPC Consumer,接收来自neutron-server的RPC消原创 2021-01-02 12:08:42 · 559 阅读 · 0 评论