具有高可用性的 Chronos 集群
Chronos Cluster with High Availability
我在每台机器上有三个服务器 A、B、C 我是 运行ning Chronos、ZooKeeper、mesos-master、mesos-slave。
Chronos 使用 ZooKeeper url 联系 mesos-master url 因此它会自动选择领先的 master,即使某些节点已关闭。我这里的可用性很高。
即使是集群模式下的 Chronos 运行,所以访问任何 Chronos 我都会看到相同的作业列表,并且一切正常。
我这里的问题是,三个 URLs
中的任何一个都可以访问 Chronos
http://server_node_1:4400
http://server_node_2:4400
http://server_node_3:4400
我有另一个应用程序使用 Rest API 在 Chronos 中安排作业。在高可用性模式下 运行 我的应用程序必须与哪个 URL 通信?
假设我的应用程序与 http://server_node_1:4400
对话以安排作业,如果节点 server_node_1
上的 Chronos 出现故障,我将无法安排作业。
我的应用程序需要与单身 URL 对话,以便在 Chronos 中安排工作。即使某些 Chronos 节点出现故障,我也应该能够安排工作。我的应用程序和 Chronos 集群之间是否需要某种负载均衡器来选择 运行ning chronos 节点进行作业调度?如何在我的场景中实现高可用性?
使用 HAProxy 路由到 Chronos 实例。这样您就可以使用例如访问 Chronos 实例。 curl loadbalancer:8081
.
haproxy.cfg
:
listen chronos_8081
bind 0.0.0.0:8081
mode http
balance roundrobin
option allbackups
option http-no-delay
server chronos01 server_node_1:4400
server chronos02 server_node_2:4400
server chronos03 server_node_3:4400
或者更好的是,通过 Marathon 启动 Chronos,这将确保给定的实例数。然后可以通过以下方式生成 HAProxy 配置:
我在每台机器上有三个服务器 A、B、C 我是 运行ning Chronos、ZooKeeper、mesos-master、mesos-slave。
Chronos 使用 ZooKeeper url 联系 mesos-master url 因此它会自动选择领先的 master,即使某些节点已关闭。我这里的可用性很高。
即使是集群模式下的 Chronos 运行,所以访问任何 Chronos 我都会看到相同的作业列表,并且一切正常。
我这里的问题是,三个 URLs
中的任何一个都可以访问 Chronoshttp://server_node_1:4400
http://server_node_2:4400
http://server_node_3:4400
我有另一个应用程序使用 Rest API 在 Chronos 中安排作业。在高可用性模式下 运行 我的应用程序必须与哪个 URL 通信?
假设我的应用程序与 http://server_node_1:4400
对话以安排作业,如果节点 server_node_1
上的 Chronos 出现故障,我将无法安排作业。
我的应用程序需要与单身 URL 对话,以便在 Chronos 中安排工作。即使某些 Chronos 节点出现故障,我也应该能够安排工作。我的应用程序和 Chronos 集群之间是否需要某种负载均衡器来选择 运行ning chronos 节点进行作业调度?如何在我的场景中实现高可用性?
使用 HAProxy 路由到 Chronos 实例。这样您就可以使用例如访问 Chronos 实例。 curl loadbalancer:8081
.
haproxy.cfg
:
listen chronos_8081
bind 0.0.0.0:8081
mode http
balance roundrobin
option allbackups
option http-no-delay
server chronos01 server_node_1:4400
server chronos02 server_node_2:4400
server chronos03 server_node_3:4400
或者更好的是,通过 Marathon 启动 Chronos,这将确保给定的实例数。然后可以通过以下方式生成 HAProxy 配置: