etcd--分布式键值数据库
etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用
raft
协议作为一致性算法,etcd基于Go语言实现。
etcd作为服务发现系统,有以下的特点:
- 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
- 安全:支持SSL证书验证
- 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
- 可靠:采用raft算法,实现分布式系统数据的可用性和一致性
etcd项目地址:https://github.com/coreos/etcd/
配置参考:https://www.cnblogs.com/hatlonely/p/11945491.html
集群配置:https://blog.csdn.net/god_wot/article/details/77854093
etcd安装
etcd在生产环境中一般推荐集群方式部署。本文定位为入门,主要讲讲单节点安装和基本使用。
etcd目前默认使用2379端口提供HTTP API服务,2380端口和peer通信(这两个端口已经被IANA官方预留给etcd);在之前的版本中可能会分别使用4001和7001,在使用的过程中需要注意这个区别。
因为etcd是go语言编写的,安装只需要下载对应的二进制文件,并放到合适的路径就行。
我使用的openSUSE系统,安装非常简单:
|
|
可以自己下载安装包,简单启动单机版服务:
// 比如如下目录:/opt/etcd/conf.yaml,配置如下:
name: etcd-142
data-dir: /opt/etcd/data
listen-client-urls: http://xx.xx.xx.xx:2379,http://127.0.0.1:2379
advertise-client-urls: http://127.0.0.1:2379
# listen-peer-urls: http://xx.xx.xx.xx:2380
新建一个脚本:start.sh
,执行这个启动项目就好了:
etcd --config-file /opt/etcd/conf.yaml
etcd基本使用
etcdctl是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟etcd服务打交道,而无需基于 HTTP API方式。可以方便我们在对服务进行测试或者手动修改数据库内容。建议刚刚接触etcd时通过etdctl来熟悉相关操作。这些操作跟HTTP API基本上是对应的。
etcd项目二进制发行包中已经包含了etcdctl工具,etcdctl支持的命令大体上分为数据库操作和非数据库操作两类。
|
|
查询数据库中所有的键值对:
etcdctl get --from-key ''
Go如何调用etcd数据库:
https://blog.csdn.net/luslin1711/article/details/93160135
其它命令参考:
http://blueskykong.com/2020/05/19/etcd-1/
https://www.jianshu.com/p/cd93f7b3f089
https://www.jianshu.com/p/4be30c0716b4
http://www.manongjc.com/detail/13-vdpxhkvxlwuynxh.html
(完)
- 原文作者: 闪电侠
- 原文链接:https://chende.ren/2021/01/26123213-go-etcd.html
- 版权声明:本作品采用 开放的「署名 4.0 国际 (CC BY 4.0)」创作共享协议 进行许可