1、Neutron server首先是一个web server, 对于http和https协议的报文进行响应。
2、Neutron server进程里面包含了一个WSGI 应用程序,以及不同模块的plugin.
3、WSGI 应用程序按照格式进行书写,然后就可以放到neutron server的配置项 service_plugin中即可。
4、我们对neutron 各个网络组件的理解,可以先跳过neutron-server这一关,先把它理解成一个web server,然后它能够解析HTTP协议,然后就会调用到我们的plugin.
我们的重点在于plugin的设计和agent之间如何交互,以及DB的使用,和RPC的用法。
plugin和Agent之间的交互,传统上是plugin通过RPC异步告诉agent动作(agent订阅),agent异步反馈执行结果。不过,也可以有新的改进版本。
5、我们关注的重点应当是如何将一个服务的需求分解成不同的对象,搞清楚这些对象之间的关系,然后设计出合理的API,然后就是对这些API的处理。也就是应用程序编程。
这里就可以看出不同设计模式的用法。