zoukankan      html  css  js  c++  java
  • 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"

  • 相关阅读:
    C#实现根据域名查询ip实例
    Ajax: 一个建立Web应用的新途径(转)
    CRC循环校验的具体算法(转)
    生成静态文件的新闻系统核心代码(.net C#)
    一个ajax的例子
    使用 JavaScript 实现 XMLHttpRequest,在IE,FireFox 上测试通过
    微软SQL Server 2005的30项顶尖特性(转)
    利用XMLHTTP无刷新自动实时更新数据(转)
    五子棋的核心算法(转)
    编写安全的SQL Server扩展存储过程(转)
  • 原文地址:https://www.cnblogs.com/wjx0912/p/6224956.html
Copyright © 2011-2022 走看看