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的环境 ...
随机推荐
- 读书笔记—CLR via C#委托和attribute
前言 这本书这几年零零散散读过两三遍了,作为经典书籍,应该重复读反复读,既然我现在开始写博了,我也准备把以前觉得经典的好书重读细读一遍,并且将笔记整理到博客中,好记性不如烂笔头,同时也在写的过程中也可 ...
- 转: js快速分享代码
这是一款简单易用的文章分享工具,您只需将下面的html代码拷贝到模板中就可以实现文章快速分享功能.如果您想分享你的博客.个人网站或者企业网站等等,下面是两款不错的分享工具,值得拥有! 1. [html ...
- Android项目---快递查询
快递查询,快递100上有更多接口信息 1.快递查询的接口是 快递公司的code值+快递单号 进行的网络查询.第一步,怎么将快递公司的名字转换成code值,传递给接口.下面是快递公司以及对应的code值 ...
- 如何使ActionBar不那么单调
此时我没有生产博客,此时我只是优秀博客的搬运工! 博客原址,有兴趣的可以查看一下. 详情如下: 使ActionBar不那么单调 回到2013年5月份,每一个人都发觉了Play Music中Action ...
- Oracle单行函数笔记
Oracle中单行函数的分类:1.字符函数substr():字符串截取select substr('我爱你,你知道么?',0,4) from dual执行结果:我爱你,length函数:字符串长度se ...
- In C# 代码实现
SOLID 设计原则 In C# 代码实现 [S] Single Responsibility Principle (单一职责原则) 认为一个对象应该仅只有一个单一的职责 namespace Si ...
- Day2:T3DP(基于排列组合思想)
T3:DP(基于排列组合思想的状态转移) 其实之前写排列组合的题目有一种很茫然的感觉.... 应该是因为之前没有刷过所以没有什么体会 上次刷的vj1060有用到,但是写状态转移还是第一次学习吧 ccy ...
- GeoHash核心解析
GeoHash核心解析 引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西.某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中 ...
- Redis系统学习 四、超越数据结构
5种数据结构组成了Redis的基础,其他没有关联特定数据结构的命令也有很多.我们已经看过一些这样的命令:info,select,flushdb,multi,exec,discard,watch,和ke ...
- jquery animate stop函数解析
今天我们来看看jquery中动画操作的stop函数.其实我至今不是很明白啊,所以此文算是求救以及抛砖引玉. 在jquery 1.7版本以前,stop支持两个参数,分别是clearQueue和jumpT ...