V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cookii
V2EX  ›  Java

打算做一个 Docker 应用,用 Java 写,数据存储选型求有经验的大佬分析。

  •  
  •   cookii · 11 天前 · 1752 次点击

    面向普通人,不考虑把程序做复杂化,考虑用嵌入式数据库,比如 H2 ,开箱即用,一个镜像即可搞定。

    主要是用来储存用户的一些配置信息,还有程序的运行日志(日志可能会到 100k/day 级别),定期清理日志(90day/180day?)

    目前有几个疑问:

    • H2 用在这种场景下会不会容易出问题?比如容器异常退出、掉电啥的会导致文件损坏、打不开之类的?
    • 有没有别的更稳妥的嵌入式方案推荐?

    目标是让程序尽可能的可靠,可以容忍日志丢失之类的情况,但程序至少需要正常运行。

    19 条回复    2025-06-28 21:51:00 +08:00
    FrankFang128
        1
    FrankFang128  
       11 天前
    Java 怎么会不复杂化?
    cookii
        2
    cookii  
    OP
       11 天前
    @FrankFang128 不是指程序和语言本身的复杂性,而是部署和使用起来不要复杂。
    LazyYum
        3
    LazyYum  
       11 天前
    只要写的 java 程序没 bug ,不会不稳定。 问题是数据不持久化吗?如果不需要持久化数据,只需要考虑内存够不够用就行
    Vraw5
        4
    Vraw5  
       11 天前
    配置信息存个 yaml 不行嘛,这样还能挂载出来手动改配置文件,如果只是给程序用也可以用 sqlite 。
    日志直接前台展示就行了,怎么清理是 docker 的事儿
    cookii
        5
    cookii  
    OP
       11 天前
    @LazyYum 要考虑到断电的情况,是需要持久化的。
    cookii
        6
    cookii  
    OP
       11 天前
    @Vraw5 准确的说要记录,而不是程序日志,需要做汇总统计,然后 web 展示的。
    LazyYum
        7
    LazyYum  
       11 天前
    不用担心,成熟的数据库不会有这 bug 。
    Vraw5
        8
    Vraw5  
       11 天前
    @cookii #6 审计数据?
    yinxs2003
        9
    yinxs2003  
       11 天前
    不清楚为啥不用 Sqlite ,我 python 用 sqlite 感觉挺稳定的,语法也简单
    yinxs2003
        10
    yinxs2003  
       11 天前
    顺便,我对 Java 写的 H2 这种数据库印象不太好,说不出来为啥
    cookii
        11
    cookii  
    OP
       11 天前
    @yinxs2003 #9 sqlite 也可以,也在考虑之中。
    qclown
        12
    qclown  
       11 天前
    无脑 sqllite 完事,数据库文件直接放容器里,或者映射到宿主机上(下次还能复用)。
    ala2008
        13
    ala2008  
       11 天前
    数据要映射出来,或者数据库单独部署
    ca2oh4
        14
    ca2oh4  
       11 天前
    不懂就问 docker 应用是什么东西
    flmn
        15
    flmn  
       11 天前
    数据库就用 SQLite 吧,久经考验了。
    duzhuo
        16
    duzhuo  
       11 天前
    我觉得你得先写出来再考虑容器化的事,直接 sqlite 映射出来完事
    cookii
        17
    cookii  
    OP
       11 天前 via Android
    @duzhuo 准备用 quarkus 做,肯定是交付镜像的
    julyclyde
        18
    julyclyde  
       10 天前
    为啥会在业务设计都还没做的情况下,就先定性为 docker 应用?
    感觉和上海人只要一看到坏事就先定性为外地人类似情况啊,你的注意力都没在最重要的方向上
    wukairobin
        19
    wukairobin  
       10 天前
    为了 docker 而 docker
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1018 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:38 · PVG 06:38 · LAX 15:38 · JFK 18:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.