一、配置文件如何更新,首先配置文件要有版本标识,系统版本和配置文件版本互相关联,防止出现系统版本和配置文件版本出现兼容性问题。配置文件尽可能考虑向下兼容设计。采用客户端定时拉取的方式进行升级。
客户端拉取后将配置文件和升级程序存放在单独目录,验证升级包数据完整后,定时执行系统更新。系统增加故障恢复机制,升级失败后可以回退到原版本。所以建议要将:配置文件目录、系统安装目录、数据库数据目录、升级或回退程序目录、临时升级包存放目录要区分清楚,目录混在一起就非常容易出问题。
二、监控数据上报如何实现,由于客户网络状况较为复杂,建议采用定时上报心跳包的形式,系统将心跳包日志数据首先写入到暂存目录。然后打包线程根据数据量和时间生成日志文件,比如每 5 分钟生成一个日志包文件。使用异步上报线程将暂存目录的日志包数据上报到远程服务器。上报正常则清除客户端的缓存数据,否则等待下一次异步线程轮询处理。
三、系统监控和业务监控如何实现,我理解你说的系统监控是指系统运行状态监控,包括:磁盘、cpu 、内存、负载和系统运行状态等指标, 业务监控是指根据你们自身业务逻辑层面的监控,比如像订单量、你说的 OCR 识别次数、OCR 异常率等此类你们需要的所有的业务类指标,
我看到楼上推荐的技术方案,其实并不符合你们的场景,这些千篇一律的服务器运行状态监控,提供的都是一些相对固定的数据指标,实现自定义扩展很难。而且接入也比较麻烦,也不能实现业务层面的指标监控。
我向你推荐我的开源项目:
https://github.com/xl-xueling/xl-lighthouse ,可以灵活的自定义设置各种监控指标,灵活的设置分钟级、小时级、天级粒度的统计监控,支持自定义设置统计维度,一键部署、支持数据备份、有完善的 API 接口,,支持 rpc 接口和 http 接口接入,非常方便,也可以通过 api 查询统计指标、有完善的指标可视化功能和权限管理机制、你们只有 100 台服务器,感觉用单机版就可以了,最低配置只需要一台 4 核 8g 的服务器。