由于BDB JE在应用程序的进程中运行,我想找到构建一个系统的最佳方法,在这个系统中,我可以运行BDB并重新加载不断变化的应用程序逻辑和依赖关系。
理想情况下,我会在一个单独的进程中运行BDB,但随后我需要使用共享内存来执行IPC以保持带宽。
我的另一个想法是使用OSGi来刷新应用程序包。
任何人都有做这件事的巧妙技巧。我很欣赏BDB JE的内在本质,但我想拥有我的蛋糕并吃掉它。
您是否尝试在单独的捆绑包中运行Berkeleydb,并通过µservices将其链接到其他捆绑包?由于µ服务是动态绑定的,您可以在保持BDB捆绑包运行的同时更改应用程序逻辑。
在bnd(工具)中,我对mongodb也有类似的情况。我现在有一个设置,即使我对捆绑包进行了数百次更新,有时我的框架几天内都不会重新启动(在bndtools中,每次保存代码时,它都会自动部署到正在运行的框架中)。由于数据库实现很少需要更新,因此数据库一直在运行。