多数据中心
1、搭建多数据中心
在上一篇文章中,我们讲解了单数据中心的搭建流程,这边文章将在其基础之上构建多数据中心。我们另选一个region的两个节点,按照单数据中心的方式搭建好,然后执行如下命令,先查看下数据中心情况:
[root@karbor2 consul]# ./consul members -wan
Node Address Status Type Build Protocol DC Segment
ts-test-38.ts-test1 30.3.3.38:8302 alive server 1.8.4 2 ts-test1 <all>
ts-test-39.ts-test1 30.3.3.39:8302 alive server 1.8.4 2 ts-test1 <all>
可以看到,当前wan只有本region数据中心的两个节点
2、关联数据中心
下面我们开始将两个region的数据中心关联起来,我们在dc1的任一server节点执行如下命令:
[root@karbor1 consul]# ./consul join -wan 30.3.3.38
Successfully joined cluster by contacting 1 nodes.
这里的30.3.3.38可以是dc2的任一server节点
再次查看wan,我们分别在dc1和dc2的任意节点执行如下命令:
[root@karbor2 consul]# ./consul members -wan
Node Address Status Type Build Protocol DC Segment
ts-test-38.ts-test1 30.3.3.38:8302 alive server 1.8.4 2 ts-test1 <all>
ts-test-39.ts-test1 30.3.3.39:8302 alive server 1.8.4 2 ts-test1 <all>
ts-test-42.ts-test 30.1.3.42:8302 alive server 1.8.4 2 ts-test <all>
ts-test-43.ts-test 30.1.3.43:8302 alive server 1.8.4 2 ts-test <all>
显示结果都一样,同时我们可以发现,在将dc1的任一server节点加入到dc2中,dc1和dc2下所有的server节点都会自动加入该wan。
3、验证数据同步
我们在dc1的节点上增加数据key:
[root@karbor1 consul]# ./consul kv put ts/test/sex 'boy'
Success! Data written to: ts/test/sex
在dc2数据中心查询该key:
[root@karbor2 consul]# ./consul kv get ts/test/sex
Error! No key exists at: ts/test/sex
可以发现,两个数据中心的数据是不同步的,也就是说集群间不相互影响。
数据同步
对于有在多个数据中心进行数据同步的需求来说,官方也给出了两种解决方案,下面具体来说说