我有一个带有马拉松的 mesos 集群,一切都在 docker 中运行。我想部署生产 mysql 和 mongodb 服务器,并试图找出进行服务发现的最佳方法。
选项 1 是使用现有设置,该设置通过位于其中一个主服务器上的 haproxy 服务器代理所有内容。我的问题是每个查询都必须进行两次跳跃,从应用程序机器到主机器再到数据库机器,即使查询起源于数据库所在的机器。这真的很重要还是我很迂腐?
选项 2 是使用我已经设置但从未使用过的 mesos dns。这将需要在主机网络模式下运行 mysql docker 映像,或者将 3306 添加到 mesos 从站可以提供的端口,然后立即声明 3306。然后我将能够使用 mysql.marathon.mesos 作为任何连接的主机。
选项 3 是在每台机器上部署相同的 haproxy 服务器,并使用应用程序的本地 haproxy 将查询发送到正确的位置。这似乎比选项 1 好一点,因为第一跳总是在同一台机器上,但需要更多的工作来设置。
有没有人这样做过?这些类型的服务的正确模式是什么?