负载均衡器后面的两个服务器之间的文件同步

负载均衡器后面的两个服务器之间的文件同步

我有一个最佳实践问题。我们的应用在负载均衡器后面的两台服务器上运行。大多数数据都在一个公共数据库中,用户上传的文件在对象存储中。因此,除了用户通过应用后端生成的一些 YAML 配置文件外,不需要同步太多内容。

保持这些文件同步的最佳做法是什么?我想到的一个解决方案是安装共享卷来托管代码和配置文件。有没有更好的解决方案?

答案1

假设只有一种“最佳实践”是一个陷阱。解决方案永远不止一个。

将配置文件的内容存储在数据库中是一种选择。由某个应用程序管理的 Blob,如果其他程序正在读取,则可能将其写入磁盘。或者更改应用程序以使用 DB 中的离散数据字段而不是 YAML 文档。利用现有的中央数据库,但要求 DB 先可用。

将配置文件存储在包含应用程序的软件包或映像中。通过升级应用程序来部署新配置文件。只有当这些文件由更新应用程序的相同人员或流程更改时才有意义。

按计划或更改将文件从权威副本复制到每个实例。选择文件复制软件、rsync、sftp。如果安装应该是事务性的,则需要一些额外的脚本,即安装所有文件或不安装任何文件。

安装网络文件共享。请注意,如果 NFS 或 SMB 共享以非计划的方式断开连接,则可能会导致性能问题。

相关内容