【冷漠搬砖】ETCD实现技术总结
因为工作需求,公司需要使用ETCD来做gRPC服务的负载均衡,以及集群管理,所以对etcd做了一些研究,希望能给大家带来帮助。http://cdn.u1.huluxia.com/g4/M03/F1/3E/rBAAdl8tN5uATlvjAAAtRIIMXJQ383.jpg
1 ETCD
介绍
etcd是一个分布式一致性键值存储系统,用于共享配置和服务发现,专注于:
·简单:良好定义的,面向用户的API (gRPC)
·安全: 带有可选客户端证书认证的自动TLS
·快速:测试验证,每秒10000写入
·可靠:使用Raft适当分布
etcd是Go编写,并使用Raft一致性算法来管理高可用复制日志,架构如下图所示:http://cdn.u1.huluxia.com/g4/M03/F1/3F/rBAAdl8tN5yAaQ7GAABCePCgs2I331.jpg
2 ETCD优势
etcd可实现的功能,Zookeeper都能实现,那么为什么要用etcd而非直接使用Zookeeper呢?相较之下,Zookeeper有如下缺点:
1.复杂。Zookeeper的部署维护复杂,管理员需要掌握一系列的知识和技能;而Paxos强一致性算法也是素来以复杂难懂而闻名于世;另外,Zookeeper的使用也比较复杂,需要安装客户端,官方只提供了java和C两种语言的接口。
2.Java编写。这里不是对Java有偏见,而是Java本身就偏向于重型应用,它会引入大量的依赖。而运维人员则普遍希望机器集群尽可能简单,维护起来也不易出错。
3.发展缓慢。Apache基金会项目特有的“Apache Way”在开源界饱受争议,其中一大原因就是由于基金会庞大的结构以及松散的管理导致项目发展缓慢。
而etcd作为一个后起之秀,其优点也很明显。
1.简单。使用Go语言编写部署简单;使用HTTP作为接口使用简单;使用Raft算法保证强一致性让用户易于理解。
2.数据持久化。etcd默认数据一更新就进行持久化。
3.安全。etcd支持SSL客户端安全认证。
最后,etcd作为一个年轻的项目,正在高速迭代和开发中,这既是一个优点,也是一个缺点。优点在于它的未来具有无限的可能性,缺点是版本的迭代导致其使用的可靠性无法保证,无法得到大项目长时间使用的检验。然而,目前CoreOS、Kubernetes和Cloudfoundry等知名项目均在生产环境中使用了etcd,所以总的来说,etcd值得你去尝试。
我擦!我要沙发! 看看村长的黑科技 楼下的接上
页:
[1]