假设我有几个不同的容器,每个容器都使用它自己的数据库。在这种情况下,有关性能的最佳做法是什么?运行一个容器,比如MySQL服务器,其中包含所有数据库,或者每个数据库运行一个数据库服务器容器?
除了表演之外的任何其他评论都是受欢迎的。
答案 0 :(得分:3)
由于Docker容器开销在这里并不重要且可以忽略不计,因此问题更多的是关于微服务范式中的体系结构。
性能确实很复杂,并且没有一般性的建议,但也许以下内容可以帮助您:
Personaly我怀疑项目的开始应该尝试提前解决所有可能的性能问题(# MVP ,#敏捷) 但是,纠正我,但看起来你没有太多的资源(一个主机?),并希望提前节省这些资源。
好的,你现在最关心的是什么?
然后在同一主机上有两个同意的mySQL实例可能不是那么好(但对于不同的设置不是问题)
对于一个主机,我建议开始使用一个数据库容器,但创建不同的模式。 它可能涉及标准容器(https://forums.docker.com/t/multiple-databases-in-official-mysql-container/8324)
的额外工作我现在不太关心并从开始使用单独的数据库。 能够将您的服务水平分离到数据库是一个巨大的价值!我不想因为非常理论化的未来性能问题而削弱这个设计决策。
答案 1 :(得分:0)
您希望使用单个数据库服务器,最好运行可以附加到管理的shell,将Unix套接字,端口或两者共享到链接容器。这意味着您可以更轻松地将数据库容器作为服务进行管理,调整性能,监控使用情况,备份卷等。
当然,可能存在非标准情况,您可能希望拥有独立的服务器,例如运行具有独立主机资源的服务器,用户,数据库,但我确信这不应该适用于开发人员环境。