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

     

     

     

     

  • 相关阅读:
    sql中生成随机字符串的function
    postgresql中uuid的使用
    sql中循环的存储过程
    java发送http的get、post请求
    data:image/png;base64
    Matcher和Pattern总结
    OPENXML解析sp_xml_preparedocument获取的XML句柄
    SqlServer性能优化
    python的2D绘图库matplotlib
    sift&surf检测关键点及描述子
  • 原文地址:https://www.cnblogs.com/S-tec-songjian/p/5842451.html
Copyright © 2011-2022 走看看