关键词:
etcd介绍
GitHub:https://github.com/coreos/etcd
概念:高可用的分布式key-value存储,可以用于配置共享和服务发现。
具有以下优点:
- 简单 : 相比于晦涩难懂的paxos算法,etcd基于相对简单且易实现的raft算法实现一致性,并通过gRPC提供接口调用
- 安全:支持TLS通信,并可以针对不同的用户进行对key的读写控制
- 高性能:10,000 /秒的写性能
类似项目:zookeeper和consul
开发语言:Go
接口:提供restful的http接口,使用简单
实现算法:基于raft算法的强一致性、高可用的服务存储目录
etcd的应用场景:
- 服务发现和服务注册
- 配置中心
- 分布式锁
- master选举
注册和启动服务的优雅性(代码片段)
...雅的启动服务和退出packagemainimport("fmt""github.com/gorilla/mux""goetcd/util""log""net/http""os""os/signal""strconv""syscall")funcmain()router:=mux.NewRouter()router.HandleFunc("/product/id:\d+",func(writerhttp.ResponseWriter,request*http.Request)vars:=mux.Vars(request)str:="getproductByID... 查看详情