gpt4 book ai didi

git - 滥用 Git 来实现事件存储架构?

转载 作者:行者123 更新时间:2023-12-02 21:00:24 25 4
gpt4 key购买 nike

Git 本质上是事件存储的实现,其中存储的数据是目录结构中的文件。已知可以可靠地解决问题:

  • 存储更改历史记录
  • 向客户端传输最少的数据以获取最新数据
  • 可以回滚到之前的状态

可以通过在 Git 上编写包装器来创建事件存储。

假设我的业务需求是需要存储可以以 JSON 格式表示的客户数据。数据可以由系统中的一项或多项服务修改。我可以拥有一个专用的 Git 存储库 Customer-Data,其具有扁平结构和名为 {customer-id}.json 的文件。当服务修改数据时,它会包含有用的提交消息。

此解决方案无法扩展(如果有太多客户且更改过于频繁,则远程 Git 服务(例如 GitHub)将受到请求和限制的轰炸),但假设我知道我将有大约 1,000 个客户,并且每个客户每 10 小时就有 1 次数据更改,该解决方案还有其他问题吗?

最佳答案

使用 Git 作为数据库通常是一个坏主意。它没有针对此用例进行特别优化,因为它写入的数据比数据库事务通常所需的数据多,通常需要 check out 整个树,并且如果将来需要扩展,则很难进行分片。它也无法在多主模式下运行以实现复制和可扩展性。

此外,如果您无论如何都这样做,您的历史记录将以一种病态的方式变大,由于 Git 删除对象的方式,使得打包和重新打包在 CPU 和内存方面变得异常昂贵。那时,您的 Git 托管提供商会注意到并要求您移至其他地方,此时您需要切换到真正的数据库。

关于git - 滥用 Git 来实现事件存储架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56671952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com