Bootstrapsqubs-2.actor层次结构(actor-hierarchy)

原文地址:Unicomplex Actor
Hierarchy

如上图所示,squbs设置actor和零部件的层次结构,用来协助在squbs系统中actors和劳务的模块化运行。

  • ActorSystem
    这是一个Actor系统。一个squbs系统应用一个actor系统来协理具备的劳务(services)和立方体(cubes)。这将保险大家有一个单点控制squbs系统中的调度员(dispatchers).这么些Actor系统的名称默认为squbs,可是大家得以经过复写application.conf文件中的设置覆盖该配置。
  • Unicomplex
    那一个核心单例角色(actor)控制squbs系统。它注册了拥有的立方体(cubes),与web服务actor和cube管理通讯,以开展系统生命周期的管住。他还要还承担web服务和劳务注册者actor的启动。应用或连串组件可以由此
    Unicomplex 中的ActorRef 调用 Unicomplex()
  • Listeners
    监听器是与Spray中的IO(HTTP)绑定的。在reference.conf 或者
    application.conf中包含着安排的监听器的称号。默认意况下,默认监听器绑定的是0.0.0.0地址上的8080端口,也从没采取https。但是,那些可以由此application.conf文件进行覆盖。额外的监听可以在各自在类库或者拔取中经过
    application.conf或者reference.conf配置。
  • RouteDefinition/FlowDefinitionRouteDefinition
    FlowDefinition都是不同式样的劳动概念, RouteDefinition
    定义了劳务的路由(Route)FlowDefinition概念了劳动的
    流(Flow)。针对HTTP请求,两者兼有不同的处理形式。
    RouteDefinition
    FlowDefinition本身都不是actors,真正的actors是一些继续它们分别特点(traits)的类。它们由其个其余服务注册,并由其对应的actos托管。
  • Route/Flow actors
    CubeSupervisor开创的体系为org.squbs.unicomplex.streaming.RouteActor
    org.squbs.unicomplex.streaming.FlowActor
    来托管每个对应的RouteDefinition or
    FlowDefinition.因而,他们成为由他们分别所属的CubeSupervisor
    监管的children。他们呼吁的处理程序会活动注册到持有他们所绑定的监听,从而允许监听器的请求分配到个其余乞请处理程序上。
  • Request handler actors
    开发者可以拔取使用低级API工作,而不是拔取
    RouteDefinition/FlowDefinition
    来注册请求处理程序。避免高级路由API平日可以消耗更少的资源并且同意流请求,然而在编码上的难度会抢先路由DSL。
  • CubeSupervisorsCubeSupervisors
    间接从actor系统中开创并登记到Unicomplex。每一个cube注册一个CubeSupervisor实例。它们首要扮演服务程序和已注册actor的工长,并且可以通过名称查找、错误处理、重启这个actors。它们对它们的children的生命周期负责。需要起初化的well-known
    actors要在squbs-meta.conf文本中做相应的宣示。它们将会和她们的parent举办报道以便获取其开头化状态。CubeSupervisor会再次向Unicomplex传言生命周期状态和开头化更新,以保全所有系统的生命周期状态。有关于cube和squbs-meta.conf
    文件服务配置具体条文的音讯方可参见Bootstraping
    ,有关于cube的生命周期和生命周期的更新可以参考Runtime Lifecycle &
    API

    。其余,cube结构还为well-know
    actors提供了命名空间的效能,用来防护由于不同cube造成的actors的争辩,RouteActorFlowActor在技术上等同于well-know
    actor。
  • Well-known actors
    那么些actor是由CubeSupervisor启动的已注册的actor。他们注册和提供基本的启动信息,如routers通过squbs-meta.conf配置文件。更多关于cube的详尽部署消息方可参照Bootstrapping
    。关于 reference.conf
    application.conf的正统和细节可以参考Typesafe
    Config

相关文章