1

我有一个带有马拉松的 mesos 集群,一切都在 docker 中运行。我想部署生产 mysql 和 mongodb 服务器,并试图找出进行服务发现的最佳方法。

选项 1 是使用现有设置,该设置通过位于其中一个主服务器上的 haproxy 服务器代理所有内容。我的问题是每个查询都必须进行两次跳跃,从应用程序机器到主机器再到数据库机器,即使查询起源于数据库所在的机器。这真的很重要还是我很迂腐?

选项 2 是使用我已经设置但从未使用过的 mesos dns。这将需要在主机网络模式下运行 mysql docker 映像,或者将 3306 添加到 mesos 从站可以提供的端口,然后立即声明 3306。然后我将能够使用 mysql.marathon.mesos 作为任何连接的主机。

选项 3 是在每台机器上部署相同的 haproxy 服务器,并使用应用程序的本地 haproxy 将查询发送到正确的位置。这似乎比选项 1 好一点,因为第一跳总是在同一台机器上,但需要更多的工作来设置。

有没有人这样做过?这些类型的服务的正确模式是什么?

4

2 回答 2

2

您的选项 2,使用带有静态端口保留的 Mesos-DNS,可能是最安全(也是最保守)的选项。

展望未来,我建议同时关注Mysos(Mesos 上的 MySQL)。

于 2015-06-19T11:10:58.687 回答
0

我会和 consul 一起进行服务发现,你也有 marathon-consul 效果很好。

一旦服务健康,它将在领事 DNS 中作为服务公开。

你的困难是如果你想制作一个 galera/percona 集群。

于 2018-03-15T07:54:28.520 回答