使用ETCD做为元数据方便快捷,但是谈到跨机房灾备可能就迷糊了,我们在做节日灾备的时候同样遇到了问题, 通过查阅官方文档找到了解决方案,官方提供make-mirror方法,提供数据镜像服务

注意: make-mirror 的使用需要依赖于API版本3, 使用API2的无法通过该工具做数据同步

有关ETCD的编译安装这里就不在说明了, 不明白的可以参考官方说明:https://github.com/coreos/etcd

1. 启动集群1

#!/bin/bash

nohup etcd --name infra1 --listen-client-urls http://127.0.0.1:2379 --advertise-client-urls http://127.0.0.1:2379 --listen-peer-urls http://127.0.0.1:12380 --initial-advertise-peer-urls http://127.0.0.1:12380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof &

nohup etcd --name infra2 --listen-client-urls http://127.0.0.1:22379 --advertise-client-urls http://127.0.0.1:22379 --listen-peer-urls http://127.0.0.1:22380 --initial-advertise-peer-urls http://127.0.0.1:22380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof &

nohup etcd --name infra3 --listen-client-urls http://127.0.0.1:32379 --advertise-client-urls http://127.0.0.1:32379 --listen-peer-urls http://127.0.0.1:32380 --initial-advertise-peer-urls http://127.0.0.1:32380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof &

通过命令向集群1中写入数据

export ETCDCTL_API=
etcdctl put t1 v1 --endpoints=127.0.0.1:,127.0.0.1:,127.0.0.1:
etcdctl put t2 v2 --endpoints=127.0.0.1:,127.0.0.1:,127.0.0.1:
etcdctl put t3 v3 --endpoints=127.0.0.1:,127.0.0.1:,127.0.0.1:
etcdctl put t4 v4 --endpoints=127.0.0.1:,127.0.0.1:,127.0.0.1:

2. 启动集群2

#!/bin/bash

nohup etcd --name infra4 --listen-client-urls http://127.0.0.1:12479 --advertise-client-urls http://127.0.0.1:12479 --listen-peer-urls http://127.0.0.1:12480 --initial-advertise-peer-urls http://127.0.0.1:12480 --initial-cluster-token etcd-cluster-2 --initial-cluster 'infra4=http://127.0.0.1:12480,infra5=http://127.0.0.1:22480,infra6=http://127.0.0.1:32480' --initial-cluster-state new --enable-pprof &

nohup etcd --name infra5 --listen-client-urls http://127.0.0.1:22479 --advertise-client-urls http://127.0.0.1:22479 --listen-peer-urls http://127.0.0.1:22480 --initial-advertise-peer-urls http://127.0.0.1:22480 --initial-cluster-token etcd-cluster-2 --initial-cluster 'infra4=http://127.0.0.1:12480,infra5=http://127.0.0.1:22480,infra6=http://127.0.0.1:32480' --initial-cluster-state new --enable-pprof &

nohup etcd --name infra6 --listen-client-urls http://127.0.0.1:32479 --advertise-client-urls http://127.0.0.1:32479 --listen-peer-urls http://127.0.0.1:32480 --initial-advertise-peer-urls http://127.0.0.1:32480 --initial-cluster-token etcd-cluster-2 --initial-cluster 'infra4=http://127.0.0.1:12480,infra5=http://127.0.0.1:22480,infra6=http://127.0.0.1:32480' --initial-cluster-state new --enable-pprof &

3. 使用 make-mirror同步数据

#export ETCDCTL_API=;
#etcdctl make-mirror --no-dest-prefix=true 127.0.0.1: --endpoints=127.0.0.1:,127.0.0.1:,127.0.0.1: --insecure-skip-tls-verify=true

4. 查看集群2的数据  

export ETCDCTL_API=;etcdctl get t1 t99 --endpoints=127.0.0.1:,127.0.0.1:,127.0.0.1:

通过以上命令发现集群1和集群2的数据已经完全同步了, etcdctl make-mirror 代码里面数据同步打印的周期是30s一次, 可以通过日志查看已经同步数据的数量。

etcd跨机房部署方案的更多相关文章

  1. Linux实战教学笔记48:openvpn架构实施方案(一)跨机房异地灾备

    第一章VPN介绍 1.1 VPN概述 VPN(全称Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信网络的技术,可以为企业之间或者 ...

  2. mongodb在双活(主备)机房的部署方案和切换方案设计

    1. 概述 现在很多高可用系统为了应对极端情况,比如主机宕机.网络故障以及机房宕机等灾难的发生,通常会部署主备架构(双机房),或者双活架构(双机房),甚至多活架构(三个机房或者以上),mongodb天 ...

  3. vitess元数据跨机房灾备解决方案

    测试使用vitess的时候发现vitess元数据的实现有多种方案,etcd, etcd2, zk,zk2, 由于刚开始测试的时候使用的是基于k8s集群+etcd的,以下就分步说明灾备实现方案: 1. ...

  4. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  5. SQL Server 跨网段(跨机房)复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搭建过程(Process) 注意事项(Attention) 参考 ...

  6. 转: 微博的多机房部署的实践(from infoq)

    转:  http://www.infoq.com/cn/articles/weibo-multi-idc-architecture 在国内网络环境下,单机房的可靠性无法满足大型互联网服务的要求,如机房 ...

  7. Step4:SQL Server 跨网段(跨机房)复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搭建过程(Process) 注意事项(Attention) 参考 ...

  8. 禧云Redis跨机房双向同步实践

    编者荐语: 2019年4月16日跨机房Redis同步中间件(Rotter)上线,团餐率先商用: 以下文章来源于云纵达摩院 ,作者杨海波   禧云信息/研发中心/杨海波 20191115 关键词:Rot ...

  9. 线上SpringCloud网关调用微服务跨机房了,咋整?

    1.前言 公司内考虑到服务器资源成本的问题,目前业务上还在进行服务的容器化改造和迁移,计划将容器化后的服务,以及一些中间件(MQ.DB.ES.Redis等)尽量都迁移到其他机房. 那你们为什么不用阿里 ...

随机推荐

  1. unity, TRANSFORM_TEX

    TRANSFORM_TEX在UnityCG.cginc中定义. ----补充: 为啥buildin shader  Unlit-Normal.shader中有一个float4 _MainTex_ST变 ...

  2. Memcached管理与监控

    一个用PHP编写的可视化的MemCached管理系统 MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单. 主要功能: 服务器参数监控:STATS.SET ...

  3. zookeeper(五):Zookeeper中的Access Control(ACL)

    概述 传统的文件系统中,ACL分为两个维度,一个是属组,一个是权限,子目录/文件默认继承父目录的ACL.而在Zookeeper中,node的ACL是没有继承关系的,是独立控制的. Zookeeper的 ...

  4. 【剑指offer】Q17:合并两个排序的链表

    def Merge(head1, head2): if head1 == None: return head2 if head2 == None: return head1 psuhead = Lis ...

  5. [Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果

        因为随手拍项目想做成类似于美图秀秀那种底部有一排Menu实现不同效果的功能,这里先简介怎样通过Menu实现打开相冊中的图片.怀旧效果.浮雕效果.光照效果和素描效果.后面可能会讲述怎样通过Pop ...

  6. Unity3D发布安卓报错permisson denied的解决

    没有打开SD卡的写入权限 unity提供了sd卡权限修改的参数:

  7. APK反编译之一:基础知识

    作者:lpohvbe | http://blog.csdn.net/lpohvbe/article/details/7981386 这部分涉及的内容比较多,我会尽量从最基础开始说起,但需要读者一定的a ...

  8. C#元祖Tuple的事例

    数组合并了同样类型的对象.而元祖合并了不同类型的对象.元祖起源于函数编程语言(F#) NET Framework定义了8个泛型Tuple(自NET4.0)和一个静态的Tuple类,他们作用元祖的工厂, ...

  9. mahout相关介绍

    https://blog.csdn.net/xiaopihaierletian/article/details/72674592 https://www.cnblogs.com/zlslch/p/67 ...

  10. @Transactional spring事务无效的解决方案

    关于@Transactional注解 一般都认为要注意以下三点 1 .在需要事务管理的地方加@Transactional 注解.@Transactional 注解可以被应用于接口定义和接口方法.类定义 ...