3 Star 5 Fork 5

JUMEI_ARCH / doveclient

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

DoveClient

构建

  1. 将Docs/settings.pack.toml.example 拷贝到上层目录,并重命名为settings.pack.toml
  2. 根据实际情况对settings.pack.toml中的内容进行修改。 注意: settings.pack.toml的每次内容变动,都应当相应的增加其中的版本号Ver
  3. 进行构建: make
    doveclient被编译至 build/DoveClient
  • 可以用make help来查看其它可用的make规则

其它说明

  1. 可通过4514端口执行相关命令. 通过help命令显示可用的命令列表。 statsz导出的gz压缩数据,保存为文件后可进行解压,还原成json字符串.

配置说明

type Config struct {
    // 校验服务监听地址, 如果不配置则标识不启用配置校验服务, 例如:0.0.0.0:1234
    VerificationListenAddr string
    // 配置监听目录, 多个目录则使用逗号分隔
    CONFIG_DIR            []string
    // 配置更新完成后doveclient需要执行的操作, 目前仅支持ReloadPHPServer, 如无特殊需要可以配置为空.
    POST_UPDATE_CALLBACKS []string
    // 配置更新完成后需要执行的脚本文件的路径
    POST_UPDATE_SCRIPTS   []string
    // 当前生效的环境
	ENV                   string
    // 业务可以在CONFIG_DIR之外指定debug文件从而在所有环境下影响CONFIG_DIR目录下解析出来的配置值(街点的特殊需求)
	DEBUG_FILE            string

    // 该配置参数是一个toml文件的路径
    // 如果不指定schema, 那么则特定的脚本每次配置更新都会执行, 否则只有当特定的schema有更新的时候才会执行
    /**
     * 文件内容格式
     * [rules]
     * 0 = ["脚本文件路径"]
     * 1 = ["脚本文件路径", "完整的schema文件路径1", "完整的schema文件路径2"]
     */
    POST_UPDATE_SCRIPTS_RULE string
    // 如该配置值为yes, 则会去掉 配置值 两侧的双引号; 该开关对*.schema.php/*.schema.toml/*.schema.yml类型的配置文件无效.
	UNWRAP_STRING string
	// pprof的监听接口, 例如:0.0.0.0:12000; 如果不配置则不开启pprof性能分析.
	PPROF_LISTEN string
	// 当一个ENV环境的配置未编译到dovecleint的时候, 通过配置DOVE_SERVER可以是doveclient从远程查询ENV环境对应的etcd地址, 例如: https://dove.int.jumei.com/
	DOVE_SERVER string
    // 在某些环境下无法通过/etc/init.d/phpserver reload的方式对phpserver执行reload操作, 因此这些环境的phpserver会监听一个特定的端口, 通过向这个端口发送reload命令执行phpserver的reload操作; 例如: 127.0.0.1:10101
	PHPSERVER_CONTROL_CMD_PORT string
}

版本

0.9.3

1. 修正了在启动客户端时,如果特殊参数传递错误,会导致客户端循环重启的问题。
1. 解析配置时对hashtable格式的配置,可以保持其原有的属性顺序。
1. 添加了客户端统计数据查询服务。可通过 telnet 127.0.0.1 4515进入控制台, 执行stats 来显示统计数据,或者statsz获取压缩后的统计数据。也可以通过命令 echo "statsz\r\n" | nc 127.0.0.1 4514 > stats.gz  来导出压缩后的统计数据。
1. 不再强制使用root用户来启动客户端, 可以在配置里设置为其它用户,但需注意,此用户必须有对业务项目配置目录及其下的文件有读写的权限。

0.9.4

1. 修正了DATA_DIR不能自定义的问题。 
1. 完全兼容windows系统。 
1. 编译配置模板时采用更保守的方式,以确保配置能被获取到(不再仅从内存中获取)。

0.9.5

1. 优化leveldb的读写操作,不再使用段连接,提升性能(大概2000倍),同时,解决了短链接产生过多数据日志文件的问题。
1. 优化zk连接状态监控,避免了多一次更新全部配置的操作。

0.9.6

1. 优化了restart/stop过程,提高执行速度,解决几率性失败的问题。
1. 修正了在编译配置模板时,如果上一个配置获取失败会导致下一个配置不能获取的问题。
1. 修正了打包脚本不能跨平台编译linux平台版本的客户端问题。

0.9.7

1. 更新zk包至最新版本

0.20.0

1. 将配置存储从zookeeper迁移到etcd
1. 支持.schema.toml文件解析
1. 支持将有变化的配置项发送给回调脚本
1. 支持特定的schema文件更新后调用特定的回调脚本

0.20.4.2-beta

1. 添加pprof性能分析
1. 支持特定的schema文件更新后调用特定的回调脚本

0.20.4.3

1. 添加SH机房支持

0.20.4.4

1. 支持jd global环境

0.20.5

1. 支持动态添加环境

0.20.6

1. 优先从远程服务器获取环境信息, 远程没有再检查环境信息是否预编译到二进制包
1. 支持平滑重启(针对rpc)

0.20.7

1. 升级etcd/clientv3库,解决etcd内存使用内存暴增的问题.

0.20.8

1. chaos修改的版本,彻底解决内存泄露的问题.

0.20.8.1

1. 支持从环境变量读取DoveClient运行配置.

0.20.8.2

1. 支持直接指定DEBUG_FILE(或从DOVE_DEBUG_FILE环境变量获取).

0.20.9

1. chaos修复了移除etcd节点时doveclient内存溢出的问题.

0.20.10

1. 修复statistic服务端口被非法访问时,可能会引起进程崩溃的问题.
1. 修复使用错误的日志级别导致进程崩溃的问题.

0.20.11

1. 修复非法日志级别导致的panic
2. 启动时,如果修改目录权限失败,不退出进程。

0.20.12

1. 调整心跳上报间隔,减少上报次数。
2. 不上报更新结果,减少etcd读写压力。

0.20.13

1. 修复日志参数缺失 
2. 支持通过配置文件以及环境变量设置reload phpserver的ip和端口(PHPSERVER_CONTROL_CMD_PORT)

0.20.14

1. 增加VerificationListenAddr配置
2. 支持远程获取目标配置文件的校验值
3. 支持远程获取shema文件列表,schama文件中的配置项 以及 对应配置项的值

0.20.15

1. 支持.schema.yaml格式解析
2. 支持.schema. *后缀的所有模板文件(只执行简单的配置替换)

0.20.16

1. 支持unWrapString模式(DoveClient.conf UNWRAP_STRING="yes"即可开启), 该模式下编译出的字符串类型的配置值会去掉两侧的引号.

0.20.17 & 0.20.17.1

1. 修复statistics, configwatcher中对map的访问存在数据竞争的问题

0.21.0

1. 用go mod进行依赖管理; 
2. 修复etcd断线后,会造成100%cpu占用的问题 

0.21.0

1. 修正部分文档
2. 支持控制台打印readme文档

0.21.1

1. 支持通过api查询特定环境的etcd服务器列表
Copyright (c) 2015, landiseer All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

配置管理客户端 展开 收起
Go
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/JMArch/doveclient.git
git@gitee.com:JMArch/doveclient.git
JMArch
doveclient
doveclient
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891