在自动化模式中应用运行MySQL
大小:0.8 MB 人气: 2017-10-12 需要积分:1
架构图
当开始新的MySQL节点时,Containerbuddy的onStart处理器会调用triton-mysql.py。Containerbuddy会fork Percona Server并等待,同时运行onStart、health、onChange处理器。结果就是类似这样在MySQL容器中的进程树:
root@993acf351cd9:/# ps axo uid,pid,ppid,sTIme,cmdUID PID PPID STIME CMD root 1019:02/bin/containerbuddy mysql 94119:02|_ mysqld --console --gTId-mode=ON.。.root 107119:04|_ python /bin/triton-mysql.py healthroot 109119:04| |_ /usr/bin/innobackupex --no-TImestamp.。.root 120119:06|_ python /bin/triton-mysql.py healthroot 121119:06|_ mysql -u repl -p.。.
自组装
由于我们只用了几个Docker镜像,无需使用单独的调度器来管理发现与引导服务,简单地使用下面的命令就可以运行堆栈:
docker-composeup -d
出现的第一个节点会登录Consul发现服务,尝试并查找主节点。如果第一个节点发现主节点还不存在,则将自身作为主节点,并初始化数据库。使用Consul会话通过atomic锁写入密码,这样就会有一个且仅有一个节点成为主节点。