ZooKeeper 运维经验

转载 2015年07月09日 13:52:36

转自:http://www.juvenxu.com/2015/03/20/experiences-on-zookeeper-ops/


ZooKeeper 运维经验

zk-logo

ZooKeeper 是分布式环境下非常重要的一个中间件,可以完成动态配置推送、分布式 Leader 选举、分布式锁等功能。在运维 AliExpress ZooKeeper 服务的一年多来,积累如下经验:

1. 集群数量

3台起,如果是虚拟机,必须分散在不同的宿主机上,以实现容灾的目的。如果长远来看(如2-3年)需求会持续增长,可以直接部署5台。ZooKeeper集群扩容是比较麻烦的事情,因此宁可前期稍微浪费一点。

2. 客户端配置域名而不是 IP

如果有一天你的 ZooKeeper 集群需要做机房迁移,或者其中几个节点机器挂了,需要更换。让你的用户更新 ZooKeeper 服务器配置不是件轻松的事情,因此一开始就配置好域名,到时候更新 DNS 即可。

3. 开启 autopurge.snapRetainCount

ZooKeeper 默认不会自动清理 tx log,所以总会有一天你会收到磁盘报警(如果你有磁盘监控的话)。开启自动清理机制后,就不用担心了,我的配置如下:

4. 扩容

如果你可以接受停止服务半个小时,那基本随意玩了,但在比较严肃的环境下,还是不能停服务的。我的做法是这样的:

0. 有节点 A, B, C 处于服务状态
1. 加入节点 D,配置如下:

用 4 字命令检查,保证该节点同步完毕集群数据,处于 Follower 状态:

需要注意的是,这一步加入的节点的 id,必须大于集群中原有的节点的 id,例如 6 > 3,4,5,我也不知道为什么需要这样。

2. 同上一步一样,加入节点 E
3. 更新 A B C 的配置如 D 和 E,并依此重启

5. 机房迁移

例如要把服务从 X 机房的 A B C 迁移到 Y 机房的 A’ B’ C’。
做法是首先把集群扩容成包含6个节点的集群;然后修改域名指向让用户的连接都转到 A’ B’ C’;最后更新集群配置,把 A B C 从集群摘除。

6. 跨机房容灾

由于 ZooKeeper 天生不喜欢偶数(怕脑裂),因此有条件的就三机房部署,但机房之间的网络条件得是类似局域网的条件,否则性能就堪忧了。

双机房做自动容灾基本不可能,加入手动步骤是可以的,和 DB 一样,短时间不可用,立刻启用另外一个机房,平时保证数据同步。

三机房部署,如果一个机房离的比较远,网络延迟较高怎么办?可以 3 + 3 + 1 部署,1 就放在那个网络延迟较高的地方,确保 leader 在 3 + 3 这两个机房中间,那么平时的性能就能保证了。怎么保证 leader 不到 1 呢?目前能想到的办法就是如果发现就重启它。


原创文章,转载请注明出处, 本文地址: http://www.juvenxu.com/2015/03/20/experiences-on-zookeeper-ops/



HBase Zookeeper的一些运维经验

Zookeeper是一个分布式协调框架,有不错的性能,也经过许多公司的验证,所以在很多场景都有使用。大家一般用Zookeeper来实现服务发现(类似DNS),配置管理,分布式锁,leader选举等。在...
  • areskris
  • areskris
  • 2017年10月26日 16:42
  • 67

redis 运维实际经验纪录之一

http://blogread.cn/it/article/1635?f=sa redis 改版的项目上线有两个月了,记录一下redis 相关的经验,也给大家一个参照:     我们的re...
  • mituan1234567
  • mituan1234567
  • 2015年03月03日 22:47
  • 348

运维经验

http://www.yunweipai.com/archives/22629.html  (运维实战经验) rsync 强化技术(手动修改端口开启防火墙的情况下)并且通过脚本只同步需要的服务器...
  • qq547273855
  • qq547273855
  • 2018年02月06日 12:02
  • 56

HBase运维经验

http://www.qconbeijing.com/download/Nicolas.pdf 重点看了下facebook做了哪些改进以及他们的运维经验,比较重要的有以下几点:   改进: 1 加强了...
  • yueyedeai
  • yueyedeai
  • 2013年11月25日 12:41
  • 1105

Jstorm运维经验

jstorm运维经验
  • zengqiang1
  • zengqiang1
  • 2017年11月05日 18:12
  • 119

【人在运维囧途_04】 逃离故障的十条运维工作经验总结

故障、于 DBA、于 运维人员 都是 心中永远的痛、而避免故障的原则却是殊途同归       现列如下、与君共勉              ㈠ 变更要能回滚、先在同样的环境测试过           ...
  • linwaterbin
  • linwaterbin
  • 2013年04月01日 13:00
  • 12276

linux运维经验~~基础篇非常适合入门

基本的开始如果你要登录一个linux服务器首先要知道怎么登录 额~~首先是使用ssh 基本代码如下 ssh root@192.168.1.1  回车 密码 root 解释:用root账号登录...
  • s297165331
  • s297165331
  • 2016年02月22日 23:25
  • 1471

Linux 运维经验

1,多个机器间的SSH登录:机器A是master,需要SSH登录到B,C,D等Slave方法1, 利用sftp1,首先需要为机器A生成SSH密钥对,默认名字为:id_rsa, id_rsa.pub2,...
  • qijin2016
  • qijin2016
  • 2018年02月08日 22:21
  • 6

运维运营一个网站的经验总结

之前其实总结过很多有关网站运维和运营的经验,之前的内容可以查看:CSDN博客-运营运维 http://blog.csdn.net/fansunion/article/category/1714547 ...
  • FansUnion
  • FansUnion
  • 2015年02月10日 19:42
  • 1798

IT-个人运维经验小计

1 引用一个同事说的话:只有当铁的事实摆在面前的时候,你才会相信规范和流程的重要性。2 运维中流程和规范比技术更重要3文档的积累和review能减少你很多解决问题的时间4不要相信机器,机器什么时候都有...
  • zhuimuzhuimu
  • zhuimuzhuimu
  • 2016年07月25日 15:51
  • 75
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ZooKeeper 运维经验
举报原因:
原因补充:

(最多只允许输入30个字)