1.2 配置解析器设计

Agent配置器, 主要负责解析来自网络 或者 文件系统中的配置文件,目前提供配置文件解析模块,配置解析器设计主要包括以下部分:

  1. 配置信息元素结构.
  2. 配置解析器相关解析函数.
  3. 配置解析器对外API接口服务,允许动态更新配置.

组成结构图如下:

1.2.1 配置信息元素

随着系统功能的不断丰富,系统的配置项目也会越来越多,目前配置解析器主要解析的数据对象包括:

  1. 系统通用配置 : 对系统的通用配置进行解析
  2. 网络组配置 : 对通信组件中需要使用的redis集群组进行配置

1.2.2 配置样例

local_unix_common_uri: /home/corerman/DATA/ICODE/GoLang/RedisTunel-go/bin/unix/
api_http_listen_uri: 127.0.0.1:10000
redis_group_list:
- server_name: redis-pool1
  group_id : 1
  is_enable: true
  local_unix_name: redis1
  master_server : 127.0.0.1:6379
  master_conn_pool_size:10,20
  master_conn_idle_time_out: 200
  slave_server : 127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383
  slave_conn_pool_size:30,40
  slave_conn_idle_time_out: 200
- server_name: redis-pool2
  group_id : 2
  is_enable: true
  local_unix_name: redis2
  master_server : 127.0.1.1:6379
  master_conn_pool_size:10,20
  master_conn_idle_time_out: 200
  slave_server : 127.0.1.1:6380,127.0.1.1:6381,127.0.1.1:6382,127.0.1.1:6383
  slave_conn_pool_size:30,40
  slave_conn_idle_time_out: 200

上面的配置文件中,配置了两个redis group,每个group中包含主从关系,用来读写分离,也针对每个主从的网络连接配置了相关的连接池配置.

1.2 解析器工作流程

配置解析器有两个加载部分,第一部分在程序初始化阶段,但是这种情况无法做到后期动态更新配置,所以配置解析器还会对外提供api接口,用于更新内部配置 , 相关流程结构图如下:

文档更新时间: 2018-12-26 11:38   作者:李彪