系统说明书 文章模板
Compass 1.0系统说明
-- hd [2004-08-18 00:56:44]
Contents
系统概述
Compass即Open Global Name Service(开放全局名称服务,以下简称OpenGNS)协议的实现,为OpenUSS(开放统一存储服务)提供7*24可持续运行的支持基础。本文档用以说明Compass的系统功能、结构和整体框架,以及相关开发、使用的信息
Compass是一个名称指向的统称,它是由一系列的服务器硬件和服务器、客户机软件构成的名称指向系统Compass必须依靠可持续运行的系统架构基础进行部署,并将所有的服务器改造为支持该系统架构的机制,才可以真正实现它的目标。只是在现有系统中安装Compass并不能解决任何问题。为解决大容量系统中的多层、多台、多级依赖的情况下系统管理和单点故障的问题。
它的应用主要有:
- 服务发现、服务寻找
- 单点故障的紧急响应
- 服务指向、服务路由
Compass在系统中的体现主要有以下内容:
- 所有的服务器都会使用Compass所提供的OpenGNSP协议与Compass服务器进行通信
- 在可行的情况下,大家可以使用Compass所提供的统一API与Compass服务进行沟通
- Compass会变为一个大容量的系统单元运行在系统的核心层
准确的来说Compass为可能拥有大量服务器的应用系统提供了低成本、高可扩展性、高可用性的基础服务。由于Compass的特点,在设计时应特别关注以下问题:
- 由于Compass是核心服务器,所以应特别注意它的单点故障问题
- 由于Compass会服务于所有的服务器以及服务器中的服务程序,所以它的服务对象会非常的多,为了降低其因高负载而出现问题的机会,所以在系统架构时应尽量考虑将Compass设计为“路过者”而不是“处理者”
- 在客户端和服务器端都会启动侦听,以适应推和拉两种信息更新方式
- 由于Compass的服务对应于多个服务/服务器,所以信息的处理可以使用“推”和“拉”结合的方法减少服务器的负载,同时提高系统的可用性
- 尽量减少Compass存储的数据(字段数和条数)
系统功能
Compass会分布在所有与系统应用相关的服务器上。不理会其架构,我们先阐述清楚Compass有什么样的功能。以下只要谈到服务,哪么就是一个在应用系统中需要关注的、它的运行装态会与别的服务紧密相关的程序。一台服务器可能运行多个服务,一台服务器也可能只运行一个服务。但我们不会理会一个服务运行于多台服务器上的情况,这种情况只会是使用集群技术,这时我们将这一群机器只会视为一台服务器。
以下为系统用例视图:
系统处理流程
分区管理
我们将一个功能块命名为一个分区。一个分区代表提供同类服务的服务器群,它是一个逻辑上的定义。
新增分区
修改分区
删除分区
服务器管理
我们将提供一个服务内容的一组服务称为服务器,一个服务器代表着一组提供相同内容、相同功能的服务的群体,它同样是一个逻辑上的定义。
新增服务器
修改服务器
删除服务器
服务管理
我们将提供一个具体的网络服务的Daemon称之为一个服务,一个服务代表着一个基本的服务单元,一台服务的服务器可以提供多个服务。
新增服务
修改服务
删除服务
服务注册
任何一个服务在启动时,都有义务向Compass服务器通知其在线工作。通过向Compass服务器的通知,就使得应用系统中增加了一个服务。另一方面,Compass的管理器也可以手工的向系统注册一个服务。 Compass对服务登录将会产生一条服务更新日志,其中的信息会有:
- 时间
- 操作类型(注册)
- 服务ID
- 服务地址(IP地址)
- 服务端口
- 服务变更后状态
如果服务校验码不通过,则会产生一条认证安全日志:
- 时间
- 操作类型(注册)
- 服务ID
- 注册附加参数
- 发起IP
服务登录
服务注册
服务注销
Compass Client在正常停止服务前或停止服务时,应向Compass服务器发出服务注销指令。在服务注销功能完成后,GNS会调用“服务变更通知”功能。以向依赖本类服务的服务通知服务的注销。另一方面,Compass的管理器也可以手工的向系统注销一个服务。 Compass服务器将会产生一条服务更新日志,其中的信息会有:
- 时间
- 操作类型(注销)
- 服务ID
- 服务地址(IP地址)
- 服务端口
- 服务变更后状态
如果服务校验码不通过,则会产生一条认证安全日志:
- 时间
- 操作类型(注销)
- 服务ID
- 注销附加参数
- 发起IP
分区依赖管理
分区依赖管理用于对分区间的依赖关系进行管理。
增加依赖关系
删除依赖关系
服务查询
一个Compass Client也就是一个服务在启动后,就一定需要知道他要使用的分区和分区中的服务器到底有哪些服务,它就需要向Compass发出请求,查询出所有可以使用的服务。
服务报警
当一个服务A在使用另外一个服务B时,发现服务B出现问题,这时服务A就会向Compass服务器发出警报,说明服务B的失效,Compass服务器会寻找所有依赖服务B的分区中的服务进行通知,告知服务B的失效。
系统静态结构和动态结构
系统静态结构
系统动态结构
系统模块及结构