您如何管理微服务的静态数据?

How do you manage static data for microservices?

对于每个服务一个数据库的架构,你们如何管理每个微服务的静态数据?我想让新的开发人员能够轻松地加入并在他们的本地机器上轻松地启动和 运行ning 一切。我正在考虑使用 Docker 绑定装载将整个数据库与静态数据检查到源代码控制中,这样人们就可以 docker-compose up 本地数据库服务(以及他们可能需要的任何其他基础设施服务 运行 并测试他们的微服务)。

我知道每个微服务可能需要以自己的方式处理这个问题,但我想提供一个很好的默认模板供人们开始使用。

为如何执行此类操作制定标准与创建微服务的原因背道而驰,即您可以使每个微服务适应其存在的上下文。

也就是说,Postgres、Mongo 和 MySQL 在 /docker-entrypoint-initdb.d 中的所有 运行 脚本在初始化一个新的数据库实例时。脚本显然必须适合数据库,但这是一种相当标准化的方式。

他们都在 docker 中心的图片页面上描述了如何操作。

您可以通过制作包含脚本的自定义映像将脚本放入容器中,也可以使用 docker-compose 卷映射将它们映射到目录中。

有些数据库没有简单的方法来初始化新数据库。我想到了 MSSQL。在这种情况下,您可能必须以编程方式处理它。