trove design翻译
trove的设计
高水平的描述
trove的目的是支持单租户数据库,在一个nova的实例中。没有限制nova是如何配置的,因为trove与其他OpenStack组件纯粹通过API。
Trove-api
trove-api服务提供一个支持JSON和XML的RESTful API提供和管理大量的实例。
REST-ful组件
入口点——Trove/ bin / trove-api
使用一个WSGI发射器配置,在Trove/etc/trove/api-paste.ini
定义过滤器的管道;authtoken,ratelimit等等。
定义app_factory ,为troveapp,当做 trove.common.api:app_factory
API类(wsgi路由器)电线其余路径到适当的控制器
实现控制器的相关模块(versions/instance/flavor/limits), 在service.py模块
控制器通常执行重定向到一个类的models.py模块
基于此点,一个api模块的另一个组件(TaskManager、GuestAgent等)通过RabbitMQ用于发送请求开始
Trove-taskmanager
trove-taskmanager服务的重点在于配置实例,实例的生命周期管理,并在数据库实例上执行操作。
RabbitMQ的监听服务
切入点Trove/bin/trove-taskmanager
运行由Trove/etc/trove/trove-taskmanager.conf.sample配置的RpcService,这trove.taskmanager.manager.Manager定义为管理者 - 基本上这是请求到达队列的切入点
如上所述,要求该组件被从另一个组件使用TaskManager的MQ api模块使用_cast()或_call()(同步/同步),把方法的名称作为参数
Trove/openstack/common/rpc/dispatcher.py- RpcDispatcher.dispatch()调用适当的方法在一些相当于管理的反射
然后管理处理重定向到一个对象的models.py模块。它加载对象的上下文,即instance_id相关类
实际处理通常是在models.py模块中
Trove-guestagent
guestagent是在客人实例运行时的服务,负责管理和执行操作在数据库自身。guestagent侦听RPC消息通过消息总线和执行所请求的操作。
类似于TaskManager的感觉作为一个服务运行,监听RabbitMQ。
GuestAgent运行在每个数据库实例,和使用一个专门的MQ主题(标识为实例的id)
入口点——Trove/bin/trove-guestagent
作为RpcService运行,配置来自Trove/etc/trove/trove-guestagent.conf.sample。定义了trove.guestagent.manager.Manager作为管理。基本上这是请求到达队列的切入点。
如上所述,要求该组件被从另一个组件使用GuestAgent的MQ api模块使用_cast()或_call()(同步/同步),把方法的名称作为参数
Trove/openstack/common/rpc/dispatcher.py- RpcDispatcher.dispatch()调用适当的方法在一些相当于管理的反射,然后管理处理重定向到一个对象从dbaas(通常).py模块。
实际处理通常在dbaas.py模块
Trove-conductor
Conductor是在主机上运行服务,负责从客人实例接收消息,更新主机的信息。例如,实例状态和当前备份的状态。与Conductor,客人实例不需要直接连接到主机的数据库。Conductor侦听RPC消息通过消息总线和执行相关的操作。
类似于它是一个guest-agent服务监听一个RabbitMQ。不同之处在于Conductor生存在主机,而不是客人。
Guest agents与Conductor的交流,通过将消息在cfg中声明,作为conductor_queue 主题。默认情况下,这是“trove-conductor”。
入口点——Trove/bin/trove-conductor
作为RpcService运行,配置在Trove/etc/trove/trove-conductor.conf.sample。定义了trove.conductor.manager.Manager作为管理。基本上这是请求到达队列的切入点。
与guestagent一样,请求被推到MQ使用_cast从另一个组件()(同步),通常的形式{“方法”:“< method_name >”,“参数”:{ <参数> } }
实际数据库更新工作是由trove/conductor/manager.py
“heartbeat”方法用于更新实例的状态。这是用来报告实例从NEW到BUILDING到ACTIVE等等。
“update_backup”方法改变一个备份的详细信息,包括其当前状态,备份的大小,类型和校验和。
原地址:http://docs.openstack.org/developer/trove/dev/design.html
更多信息:http://www.cnblogs.com/S-tec-songjian/
此文章属博客园用户S-tec原创作品,受国家《著作权法》保护,未经许可,任何单位及个人不得做营利性使用;若仅做个人学习、交流等非营利性使用,应当指明作者姓名、作品名称,原文地址,并且不得侵犯作者依法享有的其他权利。
trove design翻译的更多相关文章
- trove命令翻译(上)(只做翻译,未实验效果)
The trove client is the command-line interface (CLI) for the Database service API and its extensions ...
- Android Design 与 Holo Theme
转载:http://www.geekpark.net/topics/179488 [核心提示] 提到 Android Design,很多人会做出”啊,知道,就是黑色的背景和灰蓝色的平的按钮嘛”,那么到 ...
- WebApp 设计要素
从去年开始就负责公司WebApp的产品跟设计工作,最近整体大改了两个版本,也算累积了一些实际的经验.在不断学习的过程中,发现对于WebApp可以直接用于项目上的资料比较零碎,在这里总结一下,供初做 W ...
- 大型HashMap
看到一篇评估大型HashMap的文章,备份几个Collections库. 原文:Large HashMap overview: JDK, FastUtil, Goldman Sachs, HPPC, ...
- 使用Material Design 创建App翻译系列----材料主题的使用(Using Material Theme)
上一篇是使用Material Design 创建App翻译系列--開始学习篇,进入正题: 新的材料主题提供了下面内容: 1. 提供了同意设置颜色板的系统部件组件. 2. 为这些系统组件提供了触摸反馈动 ...
- 使用Material Design 创建App翻译系列---列表和卡片集的创建
上一篇是使用Material Design 创建App翻译系列--材料主题的使用(Using Material Theme),进入正题: 想要在应用里创建Material Design风格的复杂列表和 ...
- (翻译)领域驱动设计实现-Implementing Domain Driven Design
简介 Implementing Domain Driven Design 领域驱动设计实现 A practical guide for implementing the Domain Driven D ...
- 《Design by Contract for Embedded Software》 翻译
原文: Design by Contract for Embedded Software (state-machine.com) Design by Contract is the single mo ...
- trove manual installation 翻译
目标 此文件提供了一步一步的指导手动安装trove在一个现有OpenStack的环境为了开发. 该文件将不包括: OpenStack的设置 trove服务配置 要求 正在运行的OpenStack的环境 ...
随机推荐
- chrome切换hosts插件 hostsadmin
chrome切换hosts插件 hostsadmin 时间 2013-07-16 10:49:09 网络进行时原文 http://www.netingcn.com/chrome-hostsadmi ...
- c#中关于String、string,Object、object,Int32、int
在java中,string和String有着明显的区别,后者就是前者的一个封装.在c#中,好像是通用的,大部分情况下,两者互换并不会产生问题.今天特意查了一下资料,了解了一下两者的关系. 简单的讲,S ...
- C/C++基础知识总结——数据的共享与保护
1. 标识符的作用域与可见性 1.1 作用域 标识符的作用域包括:函数原型作用域.局部作用域.类作用域.命名空间作用域 (1) 函数原型作用域:函数的参与的作用域就是从函数的开始到结束 (2) 局部作 ...
- Stream使用教程
现在,计算机CPU运行速度的快速发展已经远远超过了内存的访问速度.越来越多的程序性能被内存带宽所限制,而不是计算机的CPU运行速率. Stream benchmark是一个简单的合成基准测试程序,衡量 ...
- C语言面试问答5
12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(5) 前文链接:http://www.cnblogs.com/pmer/archive/2013/09/17/3327262. ...
- 序列化和反序列化的几种方式(DataContractSerializer)
序列化和反序列化的几种方式(DataContractSerializer) DataContractSerializer 类 使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档. 无法 ...
- Event处理
Event处理 今天抽时间写了一部分Event处理方面的函数愈发的觉得jQuery的优秀,自己前期的想法太粗糙,造成后面这些函数参数很多,操作很很不直观,看样子是要重构的节奏,还好小伙儿伴们安慰,架构 ...
- jQuery中delegate与on的用法与区别
在jQuery1.7中 .delegate()已被.on()取代.对于早期版本,它仍然使用事件委托的最有效手段. 在事件绑定和委派,delegate()和on在一般情况下,这两种方法是等效的. .de ...
- JS关闭当前页面的方法
JS关闭当前页面的方法 一.不带任何提示关闭窗口的js代码 1 <a href="javascript:window.opener=null;window.open('','_self ...
- 跨站请求伪造(Cross Site Request Forgery (CSRF))
跨站请求伪造(Cross Site Request Forgery (CSRF)) 跨站请求伪造(Cross Site Request Forgery (CSRF)) 跨站请求伪造(Cross Sit ...