程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cloud Run - 我的应用程序中每天都需要新的数据库文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Cloud Run - 我的应用程序中每天都需要新的数据库文件

开发过程中遇到Cloud Run - 我的应用程序中每天都需要新的数据库文件的问题如何解决?下面主要结合日常开发的经验,给出你关于Cloud Run - 我的应用程序中每天都需要新的数据库文件的解决方法建议,希望对你解决Cloud Run - 我的应用程序中每天都需要新的数据库文件有所启发或帮助;

我有一个 dockerized Spring Boot 应用程序,想在 Cloud Run 中运行它。 问题是我需要每天更新数据库文件(大约 1MB)。

我有哪些选择?

  • 每天使用 CD 构建新的 docker 镜像 - 部署过程中存在一些失败的风险,只有 db 发生了变化
  • 在开始和每天从 Storage 下载文件 - 但我无法控制容器的生命周期
  • 作为 ENV 变量传递 - 太大了吗?

你怎么看?

解决方法

如果您想保持代码原样,您的解决方案是每天构建一个新容器。如果您正确定义了 Dockerfile,则风险不大。确实,之前执行所有构建步骤,只在容器的最新层添加 db 文件。

就像这样,每天当你构建容器时,如果前一层被保存在缓存中(取决于你的 CI/CD 平台),那么只会替换最新的层,容器就这样构建。您的代码不会更改,您在打包和部署时不应该有风险。


您将 db 文件放在 Cloud Storage 上的想法不太好。当然,您有版本控制问题,但也有冷启动问题。实际上,当您的 Cloud Run 实例启动时,它必须先下载文件,然后才能正常启动。 Spring Boot 在 Cloud Run 上启动已经很慢了,在这种冷启动上添加外部依赖和下载延迟不是一个好主意。


如果你可以处理你的代码,一个 .db 文件意味着你有一个 SQL 数据库(我不知道是哪个,可能是 DB2 或 sqlite)。如果您使用抽象层,例如 Hibernate,则可以轻松切换到另一个数据库引擎,从而使用 Cloud SQL MySQL 实例。

当然,成本不一样,但管理 Cloud Run 部署更容易。但是,您仍然需要创建一个流程(CI/CD 作业?)来更新和部署 Cloud SQL 上的新数据。版本控制也是一个问题(即使您可以在 CI/CD 管道中手动执行快照以在导入新数据之前保存 Cloud SQL 数据。

大佬总结

以上是大佬教程为你收集整理的Cloud Run - 我的应用程序中每天都需要新的数据库文件全部内容,希望文章能够帮你解决Cloud Run - 我的应用程序中每天都需要新的数据库文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。