我编写了一个工业级Java,为您提供了几个100年代的JPEG图像。总尺寸为15 MB,并不多。我认为,托管Java应用程序,因为这个大小不是一个问题。
我想我应该把图片放在Java应用程序中,还是放在云中,然后从那里读取。什么是更好的决定?
发布于 2019-08-04 07:49:08
理想的解决方案是拥有某种存储空间,比如亚马逊的S3云存储。
优点: 1.中央存储空间:如果希望扩展应用程序,则每个部署都将没有这些文件的副本,从而最终避免了不同部署节点之间的同步问题。
因此,你需要评估与拥有一个存储空间的成本相比,你是否需要这些好处,以及你有多大的可能性来扩展这个应用程序。
发布于 2019-08-04 09:50:43
我可以在几个月后增加或移除其中的一些。但是,一般来说,它们不会改变。
事实上,我要区分两种情况:
1)应用程序呈现/显示托管在目录中的图像列表,最近的版本对客户端更好。
2)应用程序使用/依赖于其代码中的特定图像来呈现/操作它。
对于第一种情况,我同意Ankur的回答:使用外部存储来解耦应用程序组件及其映像。这是正确的解决办法。
对于第二种情况,使用外部存储或在应用程序中存储图像是可以接受的解决方案。每一种都有其优点和缺点。
外部存储
优势:
缺点:
例如,在dev分支/env中,您可以使用映像集v.2,而对于反映实际生产组件的所有其他分支/env则使用映像集v.1。
您不希望将映像集v.2传播到任何地方,因为这会破坏部署在其他env中的应用程序。因此,你需要:
图像存储在源代码中
优势:
缺点:
根据我的经验,如果您使用工具来自动化您的应用程序配置/重新部署(例如Ansible),并且执行定期部署,那么在源代码方法中存储的映像是很有趣的,因为这很简单,而第二个缺点不是:“要求对任何映像集版本执行重新部署。”因为您已经经常重新部署并且整个部署链是有效的。
如果您对重新部署感到脆弱、不舒服,那么使用外部存储可能更安全,而新的映像将总是迫使您重新部署应用程序,使其具有使用该存储的代码。
https://stackoverflow.com/questions/57344742
复制相似问题