首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏深度学习与python

    Etcd 客户端缓存实践

    Etcd Watch 机制 在启用缓存之后就会面临本地缓存更新的问题,因为 etcd 是一个分布式的 KV 存储,允许多个客户端并发操作并保证一致性,那么如果其他客户端更新了 etcd 中的数据,那么如何更新本客户端本地缓存中的数据呢 etcd客户端的负担。 2. watch 请求成功后,只要该 key 或者满足 prefix 的 key 有更新,etcd 就会通过这个长连接以WatchResponse的形式通知到客户端。 线程 1 把 key A 的值从 1 修改到 2,然后通过某种进程间通信机制告诉线程 2 key A 的值已经改成 2 了,这个时候线程 2etcd 查询 key A 的值,如果之前 key A 被缓存过,在 etcd 的 watch 通知到达之前,缓存里的值还是 1,这个时候线程 2 就读到了旧的值,破坏了 etcd 保证的强一致性,但是最终线程 2 的缓存会收到 etcd 的 watch 通知从而更新

    1.4K20编辑于 2023-03-29
  • 来自专栏北风IT之路

    推荐一款ETCD桌面客户端——Etcd Workbench

    Etcd Workbench我相信很多人在开始管理ETCD的时候都去搜了Etcd客户端工具,然后找到了官方的Etcd Manager,但用完之后发现它并不好用,还不支持多连接和代码格式化,并且已经好几年不更新了 ,于是市面上就有了好多其他客户端工具,Etcd Workbench就是其中为数不多好用且免费的一个,下面来介绍一下。 Webview2(传送门:Webview2官方下载),桌面版程序依赖Webview2这个系统组件,通常Win10/11都是有的,除非你是低版本的Windows或者你主动卸载了Edge和Webview2。 当然如果你在没有Webview2的情况下直接安装Etcd Workbench也是可以的,安装程序在检测到你的系统缺少这个组件会自动到官方下载并安装,但这个方式体验有点不好,如果你的网络出现波动在下载过程中可能会出现 App版支持了常规的身份认证和SSL连接,这个没什么说的,你按照提示添加相应证书就好了,这里需要提一下它同时还支持SSH Tunnel功能,这个是很多其他Etcd客户端没有的。

    3K20编辑于 2024-11-16
  • 来自专栏技术杂记

    etcd 基础2

    运行服务 [root@docker etcd-v2.2.4-linux-amd64]# . /etcd 2016-02-01 22:42:57.420693 I | etcdmain: etcd Version: 2.2.4 2016-02-01 22:42:57.420802 I | etcdmain /default.etcd 2016-02-01 22:42:57.421532 I | etcdmain: listening for peers on http://localhost:2380 2016 57.422302 I | etcdserver: name = default 2016-02-01 22:42:57.422318 I | etcdserver: data dir = default.etcd 2016-02-01 22:42:57.422326 I | etcdserver: member dir = default.etcd/member 2016-02-01 22:42:57.422333

    33420编辑于 2022-01-20
  • 来自专栏技术杂记

    etcd 集群2

    打开防火墙端口 [root@docker etcd-v2.2.4-linux-amd64]# firewall-cmd --list-all public (default, active) interfaces 40000/tcp 8080/tcp masquerade: no forward-ports: icmp-blocks: rich rules: [root@docker etcd-v2.2.4 -linux-amd64]# firewall-cmd --add-port=2379/tcp success [root@docker etcd-v2.2.4-linux-amd64]# firewall-cmd --add-port=2380/tcp success [root@docker etcd-v2.2.4-linux-amd64]# firewall-cmd --list-all public 3306/tcp 40000/tcp masquerade: no forward-ports: icmp-blocks: rich rules: [root@docker etcd-v2.2.4

    24010编辑于 2022-01-19
  • 来自专栏solate 杂货铺

    etcd v2文档(2) -- 客户端http请求管理集群成员api

    列出成员 返回一个HTTP 200 OK响应代码和所有成员在etcd集群中的表示。 Request GET /v2/members HTTP/1.1 Example curl http://10.0.0.10:2379/v2/members { "members": [ :2379" ] }, { "id": "2225373f43", "name": "infra2" :2379/v2/members -XPOST \ -H "Content-Type: application/json" -d '{"peerURLs":["http://10.0.0.10:2380 Request DELETE /v2/members/<id> HTTP/1.1 Example curl http://10.0.0.10:2379/v2/members/272e204152 -XDELETE

    1.3K20发布于 2019-07-22
  • 来自专栏solate 杂货铺

    etcd v2文档(5)--客户端https--安全

    安全模型 etcd通过客户端证书支持SSL/TLS以及身份验证,客户端到服务器以及对等(服务器到服务器/群集)通信。 首先需要为一个成员拥有一个CA证书和一个已签名的密钥对。 示例2:使用HTTPS客户端证书的客户端到服务器身份验证 现在我们给了etcd客户端验证服务器身份和提供传输安全性的能力。 然而,我们也可以使用客户端证书来防止未经授权的访问等等。 假设我们有ca.crt和两个成员,用这个CA签名的自己的keypairs(member1.crt&member1.key,member2.crt&member2.key),我们启动如下的etcd: DISCOVERY_URL $ etcd -name infra2 -data-dir infra2 \ -peer-client-cert-auth -peer-trusted-ca-file=/path/to/ca.crt 它将客户端请求转发到etcd成员的广告客户端URL,并通过etcd成员的广告对等网址同步初始集群配置。

    3K10发布于 2019-07-22
  • 来自专栏solate 杂货铺

    etcd v2文档(4) -- 客户端http请求管理etcd 版本号和节点状态

    ,赢百万奖金......了解更多详情>>> 获得etcd 版本号 可以从/version端点获取特定实例的etcd版本。 curl -L http://127.0.0.1:2379/version etcd 2.0.12 检查一个etcd成员节点的健康状况 etcd提供了一个/health端点来验证特定成员的运行状况。

    1.2K20发布于 2019-07-19
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:etcd2

    ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12 :2380,infra2=http://10.0.1.12:2380 \ --initial-cluster-state new 比如我们静态方式启动etcd集群,对应参数如下: $ etcd -- --enable-v2 'false' Accept etcd V2 client requests. Deprecated and to be decommissioned in v3.6. etcd1 on port 5000 10:28:58 etcd2 | Starting etcd2 on port 5100 10:28:58 etcd3 | Starting etcd3 on port :32380' --initial-cluster-state new --enable-pprof --logger=zap --log-outputs=stderr etcd2: bin/etcd

    54320编辑于 2023-08-09
  • 来自专栏aoho求索

    etcd通信接口:客户端 API 实践与核心方法

    学习客户端etcd 服务端的通信以及 etcd 集群节点的内部通信接口对于我们更好地使用和掌握 etcd 组件很有帮助,也是所必需了解的内容。 本文我们将会介绍 etcd 的 gRPC 通信接口以及客户端的实践。 etcd clientv3 客户端 etcd 客户端 clientv3 接入的示例将会以 Go 客户端为主,读者需要准备好基本的开发环境。 首先是 etcd clientv3 的初始化,我们根据指定的 etcd 节点,建立客户端etcd 集群的连接。 etcd 客户端初始化 解决完包依赖之后,我们初始化 etcd 客户端

    2K30编辑于 2022-06-23
  • 来自专栏solate 杂货铺

    etcd v2文档(1) -- 单体服务端,客户端http请求api

    /bin/etcd 什么参数都不加,那么etcd服务使用默认值。 IANA为etcd分配的端口是2379用于客户端通信,2380用于服务器到服务器通信。 修改 键 /message 的值 hello world 为 hello etcd. curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value 一个示例用例将确保客户端可以公平地访问互斥体。 只有当客户端提供的条件等于当前条件时,该命令才会设置键的值。 请注意,CompareAndSwap不适用于目录。 如果尝试CompareAndSwap目录,将返回102“不是文件”错误。 原子比较和删除 只有当客户端提供的条件等于当前条件时,该命令才会删除一个键。 请注意,CompareAndDelete不适用于目录。

    3.1K10发布于 2019-07-22
  • 来自专栏运维小路

    Etcd-2GB容量限制

    Etcd的技术讨论中,“2GB容量限制”是被问及频率最高的话题之一。许多初次接触etcd的开发者会本能地认为:这是一个应该被“突破”或“优化”的瓶颈。 但事实恰恰相反——2GB是etcd设计者主动设置的配额,而非技术上限。它的存在不是为了限制你,而是为了保护你。 一、配额机制:主动熔断,而非被动崩溃 Etcd的存储配额由参数--quota-backend-bytes控制,默认值2GB,官方建议上限8GB。 2GB的定位:它是安全与容量的均衡点。 对于绝大多数etcd使用场景(配置管理、服务发现、Kubernetes元数据),2GB足够支撑数万至数十万个对象;同时,2GB的快照传输、碎片整理、内存映射均在可接受开销范围内。

    11010编辑于 2026-02-28
  • 来自专栏Redis管理

    Etcd 可视化管理工具,GUI 客户端

    Etcd Assistant——Etcd 可视化管理工具,GUI 客户端下载地址:http://www.redisant.cn/etcd主要功能:支持多标签页,同时连接到多个集群以漂亮的格式显示JSON 、XML、MessagePack、十六进制等数据格式浏览、创建、编辑、删除键导出和导出数据键的展示支持多种视图:树状视图或列表视图支持基于用户名和密码的基本身份验证、HTTPS客户端证书认证支持 HTTP 和 HTTPS 连接显示 etcd 集群及其节点的基本信息管理租约:列出和撤销租约,查看详细信息管理用户:创建、更新或删除用户管理角色和权限:创建、更新删除角色软件截图快速连接到您的 Etcd 集群并开始工作 Etcd Assistant 可以连接 etcd v3 集群,支持基本认证、TLS证书认证、支持 SSL/TLS 安全连接;随时查看您的 etcd 健康指标图片支持丰富的数据格式Etcd Assistant 会自动识别并格式化不同的数据格式,包括Text、JSON、XML、HEX、MessagePack,以及各种整数、浮点类型图片管理集群成员、租约和用户通过 Etcd Assistant 查看及群里所有节点的详细信息

    4.3K40编辑于 2023-04-26
  • 来自专栏aoho求索

    etcd Lease:etcd 如何实现租约?

    它类似 TTL(Time To Live),用于 etcd 客户端与服务端之间进行活性检测。在到达 TTL 时间之前,etcd 服务端不会删除相关租约上绑定的键值对;超过 TTL 时间,则会删除。 因此我们需要在到达TTL时间之前续租,以实现客户端与服务端之间的保活。 Lease 也是 etcd v2 与 v3 版本之间的重要变化之一。 etcd v2 版本并没有 Lease 概念,TTL 直接绑定在 key 上面。每个 TTL、key 创建一个 HTTP/1.x 连接,定时发送续期请求给 etcd Server。 etcd v3 则在 v2 的基础上进行了重大升级,每个 Lease 都设置了一个 TTL 时间,具有相同TTL时间的 key 绑定到同一个 Lease,实现了 Lease 的复用,并且基于 gRPC 下图是客户端创建一个指定 TTL 的租约流程,当 etcd 服务端的 gRPC Server 接收到创建 Lease 的请求后,Raft 模块首先进行日志同步;接着 MVCC 调用 Lease 模块的

    2.2K21编辑于 2022-12-03
  • 来自专栏加菲的博客

    etcdetcd使用与集群搭建

    2.对比 etcd能实现的功能,zookeeper都能做到。具体为什么选择etcd? 好吧,其实博主对zookeeper不甚了解。 ; 数据持久化:etcd默认数据一更新就进行持久化; 安全:etcd支持SSL客户端安全认证。 1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380 TOKEN:标识etcd ,同龄人,所以指代的是节点之间 --advertise-client-urls 2379 客户端连接 --initial-cluster:初始化一个集群 在n2节点执行命令以启动etcd etcd - initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN} 使用集群 集群就算搭建好了,集群中的节点通过2380端口彼此通信,通过2379与客户端通信

    1.6K21编辑于 2022-06-23
  • 来自专栏python3

    搭建etcd集群,python调etcd

    安装etcd集群: node1:192.168.133.140  node2:192.168.133.141  node3:192.168.133.142 1,安装ntp服务: yum install etcd/etcd.conf 修改内容如下: # [member] ETCD_NAME=master1      #本机的主机名 ETCD_DATA_DIR="/var/lib/etcd/default.etcd /0.0.0.0:2379,http://0.0.0.0:4001"  #监听etcd客户端的地址 #ETCD_MAX_SNAPSHOTS="5" #ETCD_MAX_WALS="5" #ETCD_CORS ETCD_INITIAL_CLUSTER="master1=http://192.168.133.140:2380,master2=http://192.168.133.141:2380,master3 ="false" ETCD_AUTO_COMPACTION_RETENTION="1"   #内部调优 #ETCD_ENABLE_V2="true" Postil:其余两个主机只需要修改红色部分,其他地方保持和我一样就可以了

    3.3K11发布于 2020-01-08
  • 来自专栏千里行走

    etcd-1:部署etcd集群

    目录 (1).下载 (2).etcd配置文件与启动 1.etcd启动参数说明 2.启动脚本模版 3.启动etcd集群 (3).验证etcd集群 (4).参考资料 一共3台机器。 \ #和集群内其他节点通信的地址, http://ip:2380 --listen-peer-urls=http://etcd-current-master-node:2380 \ #节点与客户端通信的地址 ,比如 http://ip:2379,http://127.0.0.1:2379,客户端会连接到这里和 etcd 交互 --listen-client-urls=http://etcd-current-master-node :2379,http://127.0.0.1:2379 \ #对外通告的该节点客户端监听地址,http://ip:2379,这个值会通知集群中其他节点 --advertise-client-urls=http /2内网IP/g :%s/etcd-master0-ip/0内网IP/g :%s/etcd-master1-ip/1内网IP/g :%s/etcd-master2-ip/2内网IP/g 验证是否都修改:

    1.5K30发布于 2021-10-18
  • 来自专栏架构师成长之路

    k8s实践(2) etcd集群安装

    (类PAXOS协议),前者容易理解,方便工程实现; 维护方面:ETCD方便,有管理界面,ZK难以运维; API:ETCD提供HTTP+JSON, gRPC接口,跨平台跨语言,ZK需要使用其客户端; 访问安全方面 2.etcd 单机配置 ln -s /mnt/app/etcd /mnt/app/etcd-v3.3.12-linux-amd64 mdkir /mnt/app/etcd/conf vi /mnt initial-advertise-peer-urls 告知集群其他节点的URL,tcp2380端口用于集群通信 ● –listen-peer-urls 监听URL,用于与其他节点通讯 ● –advertise-client-urls 告知客户端的 URL, 也就是服务的URL,tcp2379端口用于监听客户端请求 ● –initial-cluster-token 集群的ID ● –initial-cluster 集群中所有节点 ● –initial-cluster-state node2.etcd.k8-cluster.com 192.168.10.23 node3.etcd.k8-cluster.com 四、ETCD命令 $ cd /mnt/app//etcd/

    3.3K10编辑于 2022-04-14
  • 来自专栏LinkinStar's Blog

    浅入深出ETCD之【集群部署与golang客户端使用】

    之前说了etcd的简介,命令行使用,一些基本原理。这次来说说现实一点的集群部署和golang版本的客户端使用。 因为在实际使用过程中,etcd的节点肯定是需要2N+1个进行部署的,所以有必要说明一下集群的部署。 /etcd --name infra2 --initial-advertise-peer-urls http://192.168.4.226:2380 \ --listen-peer-urls http https://doczhcn.gitbook.io/etcd/index/index-1/clustering Golang客户端使用 这里来实际用代码操作一下etcd,还是和之前使用命令行一样,get /put/del/watch/lease用一下这些操作,其他操作请查看doc https://godoc.org/github.com/coreos/etcd/clientv3 客户端下载 这里不建议使用

    1.2K20编辑于 2022-09-01
  • 来自专栏云计算与大数据

    Debugging etcd

    etc debug

    68220发布于 2019-04-25
  • 来自专栏aoho求索

    etcd watch:etcd 如何实现 watch 机制?

    你好,我是 aoho,今天我和你分享的主题是 etcd watch:etcd 如何实现 watch 机制? etcd v2 和 v3 版本之间的重要变化之一就是 watch 机制的优化。 etcd v2 watch 机制采用的是基于 HTTP/1.x 协议的客户端轮询机制,历史版本存储则是通过滑动窗口。 在大量的客户端连接的场景或者集群规模较大的场景,导致 etcd 服务端的扩展性和稳定性都无法保证。 当 etcd 收到客户端的 watch 请求,如果请求携带了 revision 参数,则比较请求的 revision 和 store 当前的 revision,如果大于当前 revision,则放入 synced 服务端处理监听 当 etcd 服务启动时,会在服务端运行一个用于处理监听事件的 watchServer gRPC 服务,客户端的 Watch 请求最终都会被转发到这个服务的 Watch 函数中: //

    4.5K51编辑于 2022-04-28
领券