惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
L
LangChain Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
D
Docker
WordPress大学
WordPress大学
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky

远飞闲记

用 OpenClaw 搭建全自动晨间简报系统 Open Claw(🦞龙虾): 新手最常踩的 8 个坑,我帮你踩过了 什么是AI Agent(智能体)? OpenClaw 在微信端使用指南 如何让OpenClaw🦞更好用-调教篇 OpenClaw(龙虾🦞)自主赚钱实验笔记 本地Qwen+云模型:OpenClaw真实体验 AI博客主题开发记 OpenClaw初试记 十年博客路:在AI水文泛滥的时代,为何还在坚守? AI Coding实战吐槽:别被"400刀大神"带偏,这些坑我帮你踩过了! 《相信》把不可能变为可能 我们写的程序被杀毒软件杀了,杀毒软件到底杀了什么? 👋2024 探索Unity单元测试:构建可靠游戏代码的基石 实用小黄鸭调试法 炸裂的Unity割韭菜这事 还是要有信念 您好2023 Docker启动提示虚拟化失败 重置博客主题 双链知识管理及logseq使用体验 魔幻的魔都疫情 漫谈国内NFT市场状况 如何在UE4中平衡蓝图与C++的使用 2021时光荏苒,2022可遇可期 UE4(Unreal Engine)本地化资源功能 摈弃:“拥有更多=做的更好的”的观念 鱿鱼游戏 研究UE4(虚幻引擎)后的感想
Golang中配置文件热重载方案
2022-06-23 · via 远飞闲记

最近用Golang写Web微服务应用,在开发过程中有需求是对本地配置服务器配置文件需要解析读取进内存待程序逻辑调用,但项目的配置文件数据都是通过excel表来进行管理的,需要导出成Json文件进行解析在应用服务器逻辑中把数据读取进内存或Redis中进行缓存,由此就产生了需要对配置文件热重载的必要性。

热重载的意思就是在不重启应用的情况下对配置文件的更改后实时读取到内存中或刷新Redis及时生效,更改为这种方案的优点就不阐述了但也有一些缺点就是如果不能保证修改配置文件的准确性那么会有很大机会导致运行的服务崩溃 :alien: ,但这里也可以通过工具预先对需要读取的配置文件数据进行校验然后在导入到运行的应用中来避免以上缺点.

代码实现思路

通过比对文件的MD5码进行校验是否需要更新对应配置文件的数据,获取MD5代码参见如下:

  //返回文件的MD5码
  func FileToMD5(filePath string) (string, error) {
    file, err := os.Open(filePath)
    if err != nil {
      return "", err
    }
    hash := md5.New()
    _, _ = io.Copy(hash, file)
    return hex.EncodeToString(hash.Sum(nil)), nil
  }

获取后文件 MD5 字串可以进行本地保存临时文件中或缓存进Redis,通过Golang并发或 Cron 库进行每秒的刷新监听刷新对应的修改配置文件到内存数据中。