openstack中的server
一、HTTP server
主要是horizon模块,horizon是基于Python Django搭建的web应用,其运行于Apache网络服务器上(当然也可以运行在其他web服务器上),主要功能就是提供云平台管理的页面访问。
二、API server
主要是各个模块中的api组件,作为wsgi server运行,对外提供Restful API请求处理。这种API server可以将模块转化一种服务,提供API调用接口。例如,没有nova-api的nova模块只能算作一个软件的组成模块,只能对内提供处理逻辑。当有了nova-api后,nova模块就可以作为一个独立的服务运行,可以对外提供接口,Restful API更可以兼容各种编程语言及软件。
Restful结合了网络与软件,我个人觉得其更加偏向于作为一种通信风格(还不是通信协议),至于其对软件模块架构的影响应该也是围绕这种通信风格展开的。主要特点如下:
1.具备一定规则的URL
2.以资源的概念聚合操作
3.操作主要为CRUD(当然还有其他的),使用http请求的method,其中GET表现获取,POST表现创建,PUT表现更新(如果不存在就创建),DELETE表现删除
4.建立在HTTP通信协议之上,表现为无状态
Restful参考文献:
http://www.cnblogs.com/artech/p/3506553.html
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
http://java.dzone.com/articles/restful-standard-resolved
http报文参考文献:
http://www.cnblogs.com/dinglang/archive/2012/02/11/2346430.html
http://blog.csdn.net/kfanning/article/details/6062118
http无状态参考文献:
http://www.cnblogs.com/perhaps/archive/2006/06/28/438187.html
三、RPC server
主要是各模块中的部分组件,如nova-scheduler等,作为普通server(守护进程)运行。其可以在模块内响应函数调用的请求,底层绑定了消息队列,通过对消息的处理来响应函数调用。
消息队列参考文献:
http://docs.openstack.org/developer/nova/devref/rpc.html
http://blog.iron.io/2012/12/top-10-uses-for-message-queue.html?spref=tw
http://www.vmware.com/products/vfabric-rabbitmq/overview.html
四、对比API server和RPC server(只是大概情况)
API server:
接口主要为CRUD(也包含其他操作);
开放URL形式的接口,满足任意外部的调用。
通信的形式是网络HTTP报文。
RPC server:
接口主要为函数调用;
实在很难对外开放接口,因为底层绑定了消息队列,所以调用接口时也需要绑定消息队列。
通信的形式是消息队列。消息队列可以使用自己的通信协议,如AMQP协议。
使用消息队列后比API server通信效率更高。
openstack中的server的更多相关文章
- Openstack中keystone与外部LDAP Server的集成
openstack中keystone鉴权的用户user和password信息,通常保存在mysql数据库的keystone库: 表local_user和表password: keystone也支持外部 ...
- 探索 OpenStack 之(14):OpenStack 中 RabbitMQ 的使用
本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么.第二部分将介绍其在 OpenStack 中的使用. ...
- openstack中彻底删除计算节点的操作记录
在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...
- OpenStack中给wsgi程序写单元測试的方法
在 OpenStack 中, 针对web应用, 有三种方法来写单元測试 1) 使用webob生成模拟的request from __future__ import print_function imp ...
- Openstack中RabbitMQ RPC代码分析
在Openstack中,RPC调用是通过RabbitMQ进行的. 任何一个RPC调用,都有Client/Server两部分,分别在rpcapi.py和manager.py中实现. 这里以nova-sc ...
- [原]Openstack之identity server(keystone)
本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. 重新温习keystone的概念和理解 --------------------- ...
- DPDK在OpenStack中的实现
随着云计算与大数据的快速发展,其对数据中心网络的性能和管理提出了更高的要求,但传统云计算架构存在多个I/O瓶颈,由于云平台基本上是采用传统的X86服务器加上虚拟化方式组建,随着40G.100G高速网卡 ...
- OpenStack 中 RabbitMQ 的使用
OpenStack 中 RabbitMQ 的使用 本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么. ...
- OpenStack中VNC协议实现多屏共享(多屏不踢访问)
OpenStack中VNC协议实现多屏共享 by 无若 libvirt设置基本说明: <devices> <graphics type='sdl' display=':0.0 ...
随机推荐
- 2018-2019-20172329 《Java软件结构与数据结构》第七周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第七周学习总结 教材学习内容总结 <Java软件结构与数据结构>第十一章-二叉查找树 一.概述 1.什么是二 ...
- stateful openflow------整理openstate原理以及具体应用
openstate基本思想就是控制器下放一部分功能,交换机不再是简单的dumb,而是保留一些简单的wise. 论文中以端口锁定为例,提出了米粒型状态机在交换机内部的应用从而可以大大减少交换机和控制器之 ...
- roject ..\appcompat_v7 is missing. Needed by eclipse 转AS项目时遇到的问题
参考的 http://www.cnblogs.com/vanezkw/p/4182917.html 去转换项目, 在第一步的时候就遇到问题 ,提示 missing 而那个又是兼容包 解决方法:项目右键 ...
- 剑指offer :从尾到头打印链表
题目描述: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解题思路: 链表的遍历只能从头向尾进行,要从尾到头输出,考虑用栈.先从头到尾遍历一次链表,同时将值进栈,再清空栈,同时将值 ...
- 深入理解JAVA I/O系列二:字节流详解
流的概念 JAVA程序通过流来完成输入/输出.流是生产或消费信息的抽象,流通过JAVA的输入输出与物理设备链接,尽管与它们链接的物理设备不尽相同,所有流的行为具有相同的方式.这样就意味一个输入流能够抽 ...
- PAT 1078 字符串压缩与解压
https://pintia.cn/problem-sets/994805260223102976/problems/994805262018265088 文本压缩有很多种方法,这里我们只考虑最简单的 ...
- Gitlab的安装与配置
gitlab的安装 参考治疗:https://www.gitlab.com.cn/installation/#centos-7 http://www.21yunwei.com/archives/435 ...
- mysql EXPLAIN 参数表
测试样式: 参数详情:
- Windows 10 正式版原版ISO镜像
Win10正式版32位简体中文版(含家庭版.专业版)文件名: cn_windows_10_multiple_editions_x86_dvd_6846431.isoSHA1:21B824F402927 ...
- [转帖] 固定硬盘接口 U.2和M.2
U.2接口 U.2接口别称SFF-8639,是由固态硬盘形态工作组织(SSD Form Factor Work Group)推出的接口规范.U.2不但能支持SATA-Express规范,还能兼容SAS ...