zoukankan      html  css  js  c++  java
  • 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原创作品,受国家《著作权法》保护,未经许可,任何单位及个人不得做营利性使用;若仅做个人学习、交流等非营利性使用,应当指明作者姓名、作品名称,原文地址,并且不得侵犯作者依法享有的其他权利。

     

     

     

     

  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/S-tec-songjian/p/5842451.html
Copyright © 2011-2022 走看看