etcd-v2第二集
参考文章:
https://github.com/coreos/etcd/blob/master/Documentation/v2/api.md
http://www.cnblogs.com/zhengran/p/4299145.html
http://www.cnblogs.com/breg/p/5756558.html
在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文将从etcd的应用场景开始,深入解读etcd的实现方式,以供开发者们更为充分地享用etcd所带来的便利。
要问etcd是什么?很多人第一反应可能是一个键值存储仓库,却没有重视官方定义的后半句,用于配置共享和服务发现。
值得注意的是,分布式系统中的数据分为控制数据和应用数据。使用etcd的场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。
以下命令注意观察返回值:
curl http://127.0.0.1:2379/version
curl http://127.0.0.1:2379/v2/keys/seqs/userid -XPUT -d value="0"
查询etcd某个键存储的值
curl http://127.0.0.1:2379/v2/keys/message
修改键值:与创建新值几乎相同,但是反馈时会有一个prevNode值反应了修改前存储的内容。
curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello etcd"
删除一个值
curl http://127.0.0.1:2379/v2/keys/message -XDELETE
对一个键进行定时删除:etcd中对键进行定时删除,设定一个TTL值,当这个值到期时键就会被删除。反馈的内容会给出expiration项告知超时时间,ttl项告知设定的时长。
curl http://127.0.0.1:2379/v2/keys/foo -XPUT -d value=bar -d ttl=5
取消定时删除任务
curl http://127.0.0.1:2379/v2/keys/foo -XPUT -d value=bar -d ttl= -d prevExist=true
对键值修改进行监控:etcd提供的这个API让用户可以监控一个值或者递归式的监控一个目录及其子目录的值,当目录或值发生变化时,etcd会主动通知。
curl http://127.0.0.1:2379/v2/keys/foo?wait=true
对过去的键值操作进行查询:类似上面提到的监控,只不过监控时加上了过去某次修改的索引编号,就可以查询历史操作。默认可查询的历史记录为1000条。
curl 'http://127.0.0.1:2379/v2/keys/foo?wait=true&waitIndex=7'
自动在目录下创建有序键。在对创建的目录使用POST参数,会自动在该目录下创建一个以createdIndex值为键的值,这样就相当于以创建时间先后严格排序了。这个API对分布式队列这类场景非常有用。
curl http://127.0.0.1:2379/v2/keys/queue -XPOST -d value=Job1
按顺序列出所有创建的有序键。
curl -s 'http://127.0.0.1:2379/v2/keys/queue?recursive=true&sorted=true'
创建定时删除的目录:就跟定时删除某个键类似。如果目录因为超时被删除了,其下的所有内容也自动超时删除。
curl http://127.0.0.1:2379/v2/keys/dir -XPUT -d ttl=30 -d dir=true
刷新超时时间。
curl http://127.0.0.1:2379/v2/keys/dir -XPUT -d ttl=30 -d dir=true -d prevExist=true
假设先进行了如下操作:设定了foo的值。
curl http://127.0.0.1:2379/v2/keys/foo -XPUT -d value=one
然后再进行操作:
curl http://127.0.0.1:2379/v2/keys/foo?prevExist=false -XPUT -d value=three
创建目录
curl http://127.0.0.1:2379/v2/keys/dir -XPUT -d dir=true
列出目录下所有的节点信息,最后以/结尾。还可以通过recursive参数递归列出所有子目录信息。
curl http://127.0.0.1:2379/v2/keys/
删除目录:默认情况下只允许删除空目录,如果要删除有内容的目录需要加上recursive=true参数。
curl 'http://127.0.0.1:2379/v2/keys/foo_dir?dir=true' -XDELETE
创建一个隐藏节点:命名时名字以下划线_开头默认就是隐藏键。
curl http://127.0.0.1:2379/v2/keys/_message -XPUT -d value="Hello hidden world"
etcd-v2第二集的更多相关文章
- NanUI for Winform 使用示例【第二集】——做一个所见即所得的Markdown编辑器
经过了这一个多星期的调整与修复,NanUI for .NET Winform的稳定版已经发布.应广大群友的要求,现已将NanUI的全部代码开源. GitHub: https://github.com/ ...
- Windows Phone开发(44):推送通知第二集——磁贴通知
原文:Windows Phone开发(44):推送通知第二集--磁贴通知 前面我们说了第一个类型--Toast通知,这玩意儿不知大家是不是觉得很新鲜,以前玩.NET编程应该没接触过吧? 其实这东西绝对 ...
- 《生命》第二集:Reptiles and Amphibians (爬行和两栖动物)
第二集也是一个个动物的片段,不过集中在爬行和两栖类动物上. 印度尼西亚的瀑布蟾蜍进化出神器强有力的脚,能够抓牢很多物体,是逃生的手段,同一环境下,卵石蟾蜍,能够缩紧全身肌肉,眼山坡下滑,是另一种逃生是 ...
- SpringBoot第二集:注解与配置(2020最新最易懂)
2020最新SpringBoot第二集:基础注解/基础配置(2020最新最易懂) 一.Eclipse安装SpringBoot插件 Eclipse实现SpringBoot开发,为便于项目的快速构建,需要 ...
- etcd简介及集群安装部署使用
目录 1. 简介 2. Linux下载安装 3. 单机模式启动 4. 指定各集群成员的方式配置集群 5. 使用discovery service的方式配置集群 6. 集群模式下客户端命令行 7. et ...
- etcd第二集
参考文章:https://github.com/coreos/etcd/blob/master/Documentation/v2/api.mdhttp://www.cnblogs.com/zhengr ...
- etcd第三集
简单说下golang的etcd接口例子.etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以... v2: https://github.com/coreos ...
- Go环境下,编译运行etcd与goreman集群管理(1)
Go环境下编译运行etcd与goreman管理 近几年了Go在比特币.区块链.云服务等相关重要领域贡献突出,作为IT行业的传承“活到老.学到光头”,保持学习心态. 周末放假,补充一二 主题:在Go环境 ...
- 高可用Kubernetes集群-3. etcd高可用集群
五.部署高可用etcd集群 etcd是key-value存储(同zookeeper),在整个kubernetes集群中处于中心数据库地位,以集群的方式部署,可有效避免单点故障. 这里采用静态配置的方式 ...
随机推荐
- Springboot 允许跨域访问
服务提供段Application.java中添加如下代码: @Beanpublic CorsFilter corsFilter() { UrlBasedCorsConfigurationSource ...
- c++11 tuple实现
实现一个简易版的c++11 tuple. 我使用的编译器是gcc,codeblocks13.12自带的,哪个版本我不熟gcc也没去查. 大致看了下他家的tuple实现,多继承,tuple之上还有2个辅 ...
- eclipse 安装配置
https://blog.csdn.net/jklinux/article/details/77861450 JAVA环境配置 https://jingyan.baidu.com/article/db ...
- C 栈实现队列节点的管理
栈预先存储节点,队列的malloc/free均有栈模拟,从而保证不频繁的开辟/是否节点内存. #include "com_is_buf.h" #include "com_ ...
- Scrapy实战篇(五)之爬取历史天气数据
本篇文章我们以抓取历史天气数据为例,简单说明数据抓取的两种方式: 1.一般简单或者较小量的数据需求,我们以requests(selenum)+beautiful的方式抓取数据 2.当我们需要的数据量较 ...
- 20165312 实验一 Java开发环境的熟悉
20165312 实验一 Java开发环境的熟悉 一.实验内容及步骤 (一)使用JDK编译.运行简单的Java程序 Ctrl+Shift+T打开终端 输入cd cxgg20165312/test进入目 ...
- 查看Linux内置命令和外部命令
1. [hl@localhost ~]$ which cd /bin/cd [hl@localhost ~]$ type cd cd is a shell builtin
- Vue组件间的参数传递
1.父组件与子组件传值 父组件传给子组件:子组件通过props方法接受数据: 子组件传给父组件: $emit 方法传递参数 2.非父子组件间的数据传递,兄弟组件传值 eventBus,就是创建一个事件 ...
- WPF canvas设置旋转角度和偏移位置
/// <summary> /// 设置旋转角度和位置 /// </summary> /// <param name="Angle">角度< ...
- python sqlparse 各种 token
https://blog.csdn.net/qq_39607437/article/details/79620383 import sqlparse def look(statement): prin ...