一. 基础运行框架

1.1 设计概述

基础运行框架也可以成为程序组织结构,一个项目必须要有足够清晰的工程文件结构. 在清晰的工程结构下,系统的各个模块才会有适合自己的存储位置,从存储位置可以上升为代码的调用路径,好的基础运行框架,既可以让系统的源码结构清楚很多,也可以降低模块间的耦合度,提高系统的稳定性.

1.2 工程框架组成部分

在此项目工程结构中,最外层的文件结构主要包括以下几部分, 项目工程一级文件结构如下图所示:

  1. cmd目录 : 此目录是工程运行体的源码目录,也就是最终会编译出来的可执行体的源码目录,这个目录包括 proxy,daemon目录.
  2. config目录 : 配置文件存储目录.
  3. deploy目录 : 工程部署目录,里面会包含一些部署脚本和部署工具.
  4. doc目录 : 文档目录 ,里面包括一系列的子文件夹,用来保存每个子功能的描述文档.
  5. example目录 : 样例目录,对于一些对外提供的功能模块做一些功能示例.
  6. script目录 : 脚本目录,里面的脚本相对与deploy目录里的脚本更偏向于一些模块测试脚本.
  7. src目录 : 模块源代码目录, 这个目录是工程框架中最重要的一部分,主要包括工程的模块元素,其中包括models , proxy , redtun , utils目录,后面会做更加详细的阐述.
  8. vender目录 : 外部库目录,因为外部的包不断更新,这里的vender更偏向于把适合工程的外部依赖库进行镜像保存,主要是为了提高工程的稳定性.

二. 重要部分拆分设计

2.1 cmd目录

这个是运行体目录,主要存储main包结构的文件源码,目前里面包含两部分:

  1. proxy目录 : redisTunel主程序体
  2. daemon目录 : redisTunel的容灾器程序体

2.2 SRC目录结构

SRC目录的结构如下图:

这个目录会包含一些子目录文件夹,主要存储功能包级别的源码文件及源码目录,主要包括:

  1. models目录 : 数据结构目录,存储系统用到的数据结构相关定义
  2. proxy目录 : 代理模块,这个模块专门储存redis代理相关的功能,既包括本地监听级别的backend,也包括协议解析部分的redis目录,还包括plugin插件目录.
  3. redtun目录: 这个目录是核心目录,主要的工作任务在于承上启下,因为在src目录下基础单元都是一个个独立的包,但是如何被cmd层的代码顺利调用,还需要redtun在src功能包基础上抽象cmd层调用的操作单元.
  4. utils目录 : 框架的套件目录,主要用来存储框架所使用的一系列套件包,例如errors , log , math , redis-client , trace , unsafe , rpc , sync , resolver , usage 等
文档更新时间: 2018-12-21 16:12   作者:李彪