Etcd学习篇
以实战为主
小雨喳
while( !success ){ Keep trying; }
展开
-
分布式锁和事务
锁单进程的系统中,存在多线程同时操作一个公共变量,此时需要加锁对变量进行同步操作,保证多线程的操作线性执行消除并发修改。解决的是单进程中的多线程并发问题。思考golang的channel和锁的关系:多个goroutine之间通过channel进行通信,管道也运用了锁机制分布式锁某些应用场景是在集群模式的多个相同服务,可能会部署在不同机器上,解决进程间安全问题,防止多进程同时操作一个变量或者数据库。解决的是多进程的并发问题。etcd分布式锁实现原理利用租约在etcd集群中创建一个ke原创 2021-03-23 09:44:37 · 382 阅读 · 2 评论 -
go接入etcd客户端使用
client代码逻辑创建etcd解析器(Resolver)解析器注册到grpc/resolver使用名称拨号:scheme://authority/endpoint_name应用负载均衡策略获取服务端连接改造代码,无限循环调用服务客户端连接服务器#EtcdAddr etcd服务端r := etcdservice.NewResolver(EtcdAddr) resolver.Register(r)#ServiceName : grpc服务名称#grpc.Wi原创 2021-03-23 09:44:02 · 503 阅读 · 0 评论 -
go接入etcd服务端使用
server代码逻辑将grpc服务注册到etcd#EtcdAddr指的是etcd服务的地址,多个用“;”隔开#ServiceName指的是Gprc服务名称,#addr指的是grpc服务的ip地址#5指的是租约5秒过期etcdservice.Register(EtcdAddr, ServiceName, addr, 5)etcd注册服务连接etcd服务器循环心跳检测心跳发生器KeepAlive创建租约(Lease)自动续租(KeepAlive)清空续租响应消息原创 2021-03-23 09:43:27 · 689 阅读 · 0 评论 -
etcd搭建及使用
etcd搭建version: '3.5'services: etcd1: image: quay.io/coreos/etcd container_name: etcd1 restart: always volumes: - ./data:/etcd-data command: etcd -name etcd1 - --data-dir=/etcd-data -advertise-client-urls http://0.0.0.0:2379 -l原创 2021-03-23 09:42:50 · 715 阅读 · 0 评论 -
etcd概述
etcd概述etcd 是一个分布式、可靠 key-value 存储的分布式系统。当然,它不仅仅用于存储,还提供共享配置及服务发现。etcd vs Zookeeper区别提s供配置共享和服务发现的系统比较多,其中最为大家熟知的是 Zookeeper,而 etcd 可以算得上是后起之秀了。在项目实现、一致性协议易理解性、运维、安全等多个维度上,etcd 相比 zookeeper 都占据优势,Consul 的可靠性和稳定性还需要时间来验证。一致性协议: etcd 使用 Raft 协议,Zookeeper原创 2021-03-23 09:41:44 · 439 阅读 · 2 评论