午夜咖啡午夜咖啡

jolestar 的文章与笔记。

Post

Zookeeper 能不能靠服务发现完成自重配置

2015-04-22 21:39:50Post

如果 Zookeeper 节点挂掉重建后还要手工改全体配置,那它就很难真正成为自动化系统的一部分。

为了自动发现服务,部署 Zookeeper 往往会变成一个有点尴尬的事情。

Zookeeper 一般要部署 35 个节点。如果其中某个节点挂了,重新部署之后,常见做法还是回到老路上:

  1. 改所有节点的配置文件。
  2. 让整个集群重新认识这个新节点。

这就引出一个很直接的问题:

如果 Zookeeper 自己都需要人工改配置,那它怎么成为更大自动化系统里的基础设施?

换句话说,Zookeeper 节点挂掉重建之后,能不能自动完成配置调整,而不是让运维再手工把所有节点改一遍?

我当时就是顺着这个问题往下做,于是有了一个围绕 zookeeper + exhibitor 的尝试,也顺手做了对应的 Docker 镜像。

这个方向让我越来越强烈地感觉到:当系统开始追求自动发现、自动重建、自动扩缩容之后,许多基础设施也必须跟着一起“自描述化”和“自重配置化”。

否则你表面上是在做自动化,核心节点一出问题,最后还是得靠人工回到每台机器上改配置。那整个系统其实并没有真的跨过那条线。

系统做到这里,会有一种“盗梦空间”式的感觉:你为了自动化一个服务,不得不再引入一层负责自动化这个服务本身的机制。