一、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通信效率更高。

转载于:https://www.cnblogs.com/littlebugfish/p/4132779.html

openstack中的server相关推荐

  1. openstack中彻底删除计算节点的操作记录

    在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...

  2. 关于.NET中的Server push技术

    关于.NET中的Server push技术 一般来说方法有2种,一种就是客户端用JS异步定时轮询服务器端,这种是大部分人采用的方法,但是我在想到底可以不可以实现服务器端有改变时才会主动推送到客户端呢? ...

  3. Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析

    原文地址: http://blog.csdn.net/luoshengyang/article/details/6629298 在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder ...

  4. 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

    原文地址: http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service Manager成为Android进程间 ...

  5. Weblogic 12c中修改SERVER NAME的方法

    WebLogic 中域默认的Server Name为AdminServer.如果多个域使用同一Server Name,会对识别造成一定的困难. 比如在linux下,输入ps -ef|grep webl ...

  6. eclipse调出server_eclipse在server中tomcat server找不到的问题

    想要在eclipse的server新建tomcat服务器然而不知道怎么回事找不到Tomcat 7.0 Server 下面的红圈是tomcat server服务器(更新后才出现) 网上找的很久,只是找到 ...

  7. eclipse在server中tomcat server找不到的问题

    想要在eclipse的server新建tomcat服务器然而不知道怎么回事找不到Tomcat 7.0 Server 下面的红圈是tomcat server服务器(更新后才出现) 网上找的很久,只是找到 ...

  8. 中resource文件夹的作用_冲突与碰撞:OpenStack中的虚拟机和裸机

    冲突与碰撞:OpenStack中的虚拟机和裸机 要虚拟化还是非虚拟化? 如果您追求性能,那么就没有争议--裸机仍然胜过虚拟机:特别是对于I/O密集型应用程序.但是,除非您可以保证充分利用它,否则是有代 ...

  9. navicat mysql server has gone away_Navicat中MySQL server has gone away错误怎么办【转载】

    打开navicat的菜单中的tools,选择server monitor,然后在左列选择数据库,右列则点选variable表单项,寻找max_allowed_packet,将其值改大. 改好之后,再次 ...

最新文章

  1. 打开共享文件闪退怎么解决_文件共享解决方案-随时随地共享同步访问文件
  2. POJ 3855 计算几何·多边形重心
  3. 一篇文章带你解析,乐观锁与悲观锁的优缺点
  4. Algorithm, Secret key and Protocol
  5. oracle sql 数据库之间导入数据
  6. 快搜浏览器_郑秀晶因腿粗再上热搜:怎么减肥才能不反弹?
  7. 单体 Bean 注册实例
  8. c语言打印树形图形,数据结构C语言版树形结构.ppt
  9. Oracle执行计划详解
  10. [3]java1.8线程池—ThreadPoolExecutor
  11. 停车场管理系统项目计划书
  12. 7月1日天刀服务器维护,天涯明月刀7月1日满级新服_天刀满级新服天命风流入君怀_3DM网游...
  13. 水晶报表导出PDF or Excel,并返回文件到用户的IE浏览器中
  14. 在VMware WorkStation中安装Windows Server 2016
  15. Windows 改变CMD窗口颜色!
  16. 电容笔做的比较好的品牌有哪些?便宜好用的电容笔推荐
  17. 机器人导航——路径跟踪
  18. sparkGraphx-航班飞行网图分析
  19. 大文件上传的解决方法
  20. springboot2.0优雅关闭

热门文章

  1. linux debian硬盘安装,硬盘安装linux debian如何配置grub文件
  2. 如何定位并修复 HttpCore5 中的 HTTP2 流量控制问题
  3. 加速SaaS规模化演进,餐道基于K8s的云上创新底座
  4. Serverless Kubernetes 应用部署及扩缩容
  5. 云原生生态周报 Vol. 11 | K8s 1.16 早知道
  6. python 淘宝滑块验证_python2.7+selenium2实现淘宝滑块自动认证功能
  7. android 访问公共文件夹权限_手机应用获取了储存权限后,可以访问你整个文件吗?...
  8. java 优先队列 用法_优先队列的基本用法(java和c++)
  9. python文件读取与输出_python基本文件操作(文件输入和输出)
  10. python decorator ssh_Python库现后门 可窃取用户SSH信息