如何使用Etcdctl与Etcd——CoreOS的分布式键-值存储

docker容器之etcd安装 6.election为1000ms,该参数的作用是重新投票的超时时间,如果follow在该时间间隔没有收到心跳包,会触发重新投票,默认为1000ms。5.heartbeat为100ms,该参数的作用是leader多久发送一次心跳到followers,默认值是100ms。/etc目录是整个Linux系统的中心,其中包含所有系统管理和维护方面的配置文件,所以etcd的配置也放在这里。7.snapshot count为10000,该参数的作用是指定有多少事务被提交时,触发截取快照保存到磁盘。 阅读详情

提供:ZStack云计算

系列教程

本教程为CoreOS上手指南系列九篇中的第四篇。

内容介绍

作为CoreOS的实现根基之一,etcd能够为我们提供一套全局分布式键-值存储机制。此服务可由各CoreOS设备使用,从而构建起一套集群并作为全局可访问数据的存储平台。

在本教程中,我们将探讨etcd守护程序、etcdctl工具以及用于对其加以控制的HTTP/JSON API。

先决条件

要完成本教程,大家需要参阅在DigitalOcean上设置CoreOS集群建立起一套CoreOS集群,其中包含三套服务器:

  • coreos-1
  • coreos-2
  • coreos-3

完成之后,即可进一步遵循本教程中的各个步骤。

Etcd集群发现模式

etcd的一项根本性作用在于将多台独立设备构建为单一集群。在这一过程中,CoreOS会在引导时检查cloud-config文件内提供的发现地址。

此发现服务可通过https://discovery.etcd.io进行访问。访问其/new页面能够获取一份新令牌。接下来,我们可以使用此令牌帮助设备发现其它集群内节点。令牌内容如下:

https://discovery.etcd.io/dcadc5d4d42328488ecdcd7afae5f57c

大家必须为每套新集群提供新令牌。其中包括使用可能拥有相同IP地址的节点进行集群重构的情况。否则,etcd实例会无法正确识别使用相同IP的节点,因此导致功能失效。

在浏览器中查看此发现地址,大家会获得一个JSON对象,其负责描述该已知设备。初次运行时,其中不包含任何节点:

{"action":"get","node":{"key":"/_etcd/registry/dcadc5d4d42328488ecdcd7afae5f57c","dir":true,"modifiedIndex":102511104,"createdIndex":102511104}}

而在集群引导完成后,大家将能够看到更多信息:

{"action":"get","node":{"key":"/_etcd/registry/1edee33e6b03e75d9428eacf0ff94fda","dir":true,"nodes":[{"key":"/_etcd/registry/1edee33e6b03e75d9428eacf0ff94fda/2ddbdb7c872b4bc59dd1969ac166501e","value":"http://10.132.252.38:7001","expiration":"2014-09-19T13:41:26.912303668Z","ttl":598881,"modifiedIndex":102453704,"createdIndex":102453704},{"key":"/_etcd/registry/1edee33e6b03e75d9428eacf0ff94fda/921a7241c31a499a97d43f785108b17c","value":"http://10.132.248.118:7001","expiration":"2014-09-19T13:41:29.602508981Z","ttl":598884,"modifiedIndex":102453736,"createdIndex":102453736},{"key":"/_etcd/registry/1edee33e6b03e75d9428eacf0ff94fda/27987f5eaac243f88ca6823b47012c5b","value":"http://10.132.248.121:7001","expiration":"2014-09-19T13:41:41.817958205Z","ttl":598896,"modifiedIndex":102453860,"createdIndex":102453860}],"modifiedIndex":101632353,"createdIndex":101632353}}

如果大家需要找到集群的发现URL,则可在任意成员设备上执行以下命令。相关信息将从/run层级下进行检索:

cat /run/systemd/system/etcd.service.d/20-cloudinit.conf

[Service]Environment="ETCD_ADDR=10.132.248.118:4001"Environment="ETCD_DISCOVERY=https://discovery.etcd.io/dcadc5d4d42328488ecdcd7afae5f57c"Environment="ETCD_NAME=921a7241c31a499a97d43f785108b17c"Environment="ETCD_PEER_ADDR=10.132.248.118:7001"

URL被存储在ETCD_DISCOVERY条目之下。

当设备在引导过程中运行etcd,其会检查此URL的信息,同时提交自身信息并查询其它节点成员。集群中的首个节点自然会率先查询其它节点,并借此证实自身属于集群主节点。

后续各设备也会联系发现URL。它们获取到的信息为其它设备已经提交完成的内容。在此之后,它们会选择其中一台设备并直接接入,并借此获取集群各成员的运行状态列表。这类数据可通过Raft一致性算法进行复制与分发。

各设备的相关数据并保存在etcd下的某个隐藏目录当中。大家可以使用以下命令查看etcd所了解的各设备信息:

etcdctl ls /_etcd/machines --recursive

/_etcd/machines/2ddbdb7c872b4bc59dd1969ac166501e
/_etcd/machines/921a7241c31a499a97d43f785108b17c
/_etcd/machines/27987f5eaac243f88ca6823b47012c5b

etcd发送至各新集群成员的细节信息被包含在这些键当中。大家可以使用etcdctl以查看其各对应值:

etcdctl get /_etcd/machines/2ddbdb7c872b4bc59dd1969ac166501e

etcd=http%3A%2F%2F10.132.252.38%3A4001&raft=http%3A%2F%2F10.132.252.38%3A7001

我们将在下面的etcdctl部分对此进行深入说明。

Etcdctl使用

etcd的交互方式分为两种,通过HTTP/JSON API以及通过客户端——例如etcdctl工具。在这里,我们首先来看etcdctl。

查看键与目录

我们先来看看etcdctl中目前存储着哪些内容:

etcdctl ls /

/coreos.com

如大家所见,只有一条结果。现在,我们还无法断定其属于目录还是键。大家可以get该节点进行确认:

etcdctl get /coreos.com

/coreos.com: is a directory

为了避免手动递归流程,我们可以要求etcdctl列出其完整的可见信息结构:

etcdctl ls / --recursive

/coreos.com
/coreos.com/updateengine
/coreos.com/updateengine/rebootlock
/coreos.com/updateengine/rebootlock/semaphore

可以看到,初始/coreos.com节点中包含大量目录。在最终端点查询信息即可看到数据的实际内容:

etcdctl get /coreos.com/updateengine/rebootlock/semaphore

{"semaphore":1,"max":1,"holders":null}

这些信息对我们没什么作用。我们可以使用-o扩展获取更多与其相关的元数据。其属于全局选项,因此必须放在get命令之前:

etcdctl -o extended get /coreos.com/updateengine/rebootlock/semaphore

Key: /coreos.com/updateengine/rebootlock/semaphore
Created-Index: 6
Modified-Index: 6
TTL: 0
Etcd-Index: 170387
Raft-Index: 444099
Raft-Term: 8

{"semaphore":1,"max":1,"holders":null}
设定键与创建节点

使用mkdir命令创建一个新目录:

etcdctl mkdir /example

使用mk命令生成键:

etcdctl mk /example/key data

data

这条命令只适用于该键尚不存在的情况。要查询已经创建完成的键的值,则:

etcdctl get /example/key

data

要更新现有键,使用update命令:

etcdctl update /example/key turtles

turtles

updatedir命令只适用于设置有TTL,或者说有效时长的目录。其能够更新TTL时间。大家可以使用–ttl #参数为目录或键设定TTL,其中#代表的是有效时长,以秒为单位:

etcdctl mkdir /here/you/go --ttl 120

接下来,大家可以使用updatedir更新该TTL:

etcdctl updatedir /here/you/go --ttl 500

为了变更现有键的值,或者在其不存在时创建新键,使用set命令。大家可以将其视为mk与update命令的结合:

etcdctl set /example/key new

new

其中可包含不存在的路径。其路径组成部分可进行动态创建:

etcdctl set /a/b/c here

here

要对目录实现同样的“若不存在则创建”功能,可使用setdir命令:

etcdctl setdir /x/y/z

注意:setdir命令目前尚未实装。在目前的build中,其直接照搬updatedir命令,且如果目录不存在则会运行失败。目前GitHub中已经有在公开讨论其解决办法。

移除条目

要移除已有键,可以使用rm或者rmdir命令。

其中rm命令用于移除一条键:

etcdctl rm /a/b/c

其可用于确保只递归删除某一目录及其下各子目录:

etcdctl rm /a --recursive

要仅移除某个空目录或者某条键,则使用rmdir命令:

etcdctl rmdir /x/y/z

其可确保只移除目录结构下的特定端点。

观察变化

大家可以留意特定键或者完整目录的全部变化。使用etcdctl命令会导致其挂起,直到所关注的事件执行完成。

要观察特定键,则直接使用此命令且不加任何标记:

etcdctl watch /example/hello

要停止观察,按下CTRL-C。如果观察过程中发现了变化,则返回新值。

要观察完整的目录结构,则使用–recursive标记:

etcdctl watch --recursive /example

大家可以看到其如何利用简单的循环结构不断监测各值状态:

whiletrue; do etcdctl watch --recursive /example; done

如果大家希望在检测到变化的同时执行命令,则使用exec-watch命令:

etcdctl exec-watch --recursive  /example -- echo"hello"

这样当目录中的值发生变化时,屏幕上会显示“hello”字样。

隐藏值

不会立即显示的为etcd当中隐藏的目录结构。这些目录或键以下划线作为开头。

其不会被常规etcdctl工具所列出,大家必须了解需要查找的对象才能将其找到。

例如,某个隐藏目录名为/_coreos.com,其中包含与fleet相关的内部信息。大家可以这样进行查找:

etcdctl ls --recursive /_coreos.com 

/_coreos.com/fleet
/_coreos.com/fleet/states
/_coreos.com/fleet/states/apache@6666.service
/_coreos.com/fleet/states/apache@6666.service/2ddbdb7c872b4bc59dd1969ac166501e
/_coreos.com/fleet/states/apache@7777.service
/_coreos.com/fleet/states/apache@7777.service/921a7241c31a499a97d43f785108b17c
. . .

另一目录结构则位于/_etcd之内:

etcdctl ls --recursive /_etcd

/_etcd/machines
/_etcd/machines/27987f5eaac243f88ca6823b47012c5b
/_etcd/machines/2ddbdb7c872b4bc59dd1969ac166501e
/_etcd/machines/921a7241c31a499a97d43f785108b17c
/_etcd/config

这些功能与其它条目类似,惟一的区别在于它们不会在普通列举时被显示。大家可以在键或目录名称中以下划线开头加以创建。

Etcd HTTP/JSON API使用方法

另一种与etcd交互的方式则是使用HTTP/JSON API。

要访问该API,大家可以使用curl等简单的HTTP命令。大家也可以添加-L标记以遵循任何传回的重新定向。在集群之内,大家可以使用本地127.0.0.1接口及端口4001来完成大部分查询。

注意:要在Docker容器内接入etcd,必须使用http://172.17.42.1:4001地址。其可用于应用根据注册信息对自身配置进行更新。

我们可以在任意主机设备上访问http://127.0.0.1:4001/v2/keys/以前往普通键空间。例如,要获取顶级键/目录,输入:

curl -L http://127.0.0.1:4001/v2/keys/

{"action":"get","node":{"key":"/","dir":true,"nodes":[{"key":"/coreos.com","dir":true,"modifiedIndex":6,"createdIndex":6},{"key":"/services","dir":true,"modifiedIndex":333,"createdIndex":333}]}}

请求中的/为必须使用,如果不添加此符号则命令无法正确解析。

大家可以利用普通HTTP变量设置或者检索各值。

要修改这些操作的具体行为,大家可以利用?flag=value语法在请求末尾传递标记。多条标记之间以&符号隔开。

例如,要递归列出全部键,可以:

curl -L http://127.0.0.1:4001/v2/keys/?recursive=true

{"action":"get","node":{"key":"/","dir":true,"nodes":[{"key":"/coreos.com","dir":true,"nodes":[{"key":"/coreos.com/updateengine","dir":true,"nodes":[{"key":"/coreos.com/updateengine/rebootlock","dir":true,"nodes":[{"key":"/coreos.com/updateengine/rebootlock/semaphore","value":"{\"semaphore\":1,\"max\":1,\"holders\":null}","modifiedIndex":6,"createdIndex":6}],"modifiedIndex":6,"createdIndex":6}],"modifiedIndex":6,"createdIndex":6}],"modifiedIndex":6,"createdIndex":6}. . .

另一部分可在普通键空间外访问的实用信息为版本信息,可使用以下命令访问:

curl -L http://127.0.0.1:4001/version

etcd 0.4.6

大家可以查看各集群主节点与其它各从节点间的关系,具体为:

curl -L http://127.0.0.1:4001/v2/stats/leader

{"leader":"921a7241c31a499a97d43f785108b17c","followers":{"27987f5eaac243f88ca6823b47012c5b":{"latency":{"current":1.607038,"average":1.3762888642395448,"standardDeviation":1.4404313533578545,"minimum":0.471432,"maximum":322.728852},"counts":{"fail":0,"success":98718}},"2ddbdb7c872b4bc59dd1969ac166501e":{"latency":{"current":1.584985,"average":1.1554367141497013,"standardDeviation":0.6872303198242179,"minimum":0.427485,"maximum":31.959235},"counts":{"fail":0,"success":98723}}}}

我们也可以使用类似的操作对当前所在设备的状态进行检测:

curl -L http://127.0.0.1:4001/v2/stats/self

{"name":"921a7241c31a499a97d43f785108b17c","state":"leader","startTime":"2014-09-11T16:42:03.035382298Z","leaderInfo":{"leader":"921a7241c31a499a97d43f785108b17c","uptime":"1h19m11.469872568s","startTime":"2014-09-12T19:47:25.242151859Z"},"recvAppendRequestCnt":1944480,"sendAppendRequestCnt":201817,"sendPkgRate":40.403374523779064,"sendBandwidthRate":3315.096879676072}

要查看已经执行的操作的状态,则:

curl -L http://127.0.0.1:4001/v2/stats/store

{"getsSuccess":78823,"getsFail":14,"setsSuccess":121370,"setsFail":4,"deleteSuccess":28,"deleteFail":32,"updateSuccess":20468,"updateFail":4,"createSuccess":39,"createFail":102340,"compareAndSwapSuccess":51169,"compareAndSwapFail":0,"compareAndDeleteSuccess":0,"compareAndDeleteFail":0,"expireCount":3,"watchers":6}

当然,这里列举的只是其中一部分可用于通过API控制etcd的操作。

Etcd配置

etcd服务可通过多种不同方式进行配置。首先是在cloud-config文件内添加参数,并在节点引导时加以应用。在引导部分的教程内,大家的文件内容应如下所示:

#cloud-config

coreos:
  etcd:
discovery: https://discovery.etcd.io/<token>
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
. . .

要查看当前可用选项,可使用-h标记配合etcd:

etcd -h

要将这些选项添加至cloud-config中,大家只需要取消值中的破折号与独立键,并用冒号替代等号。即-peer-addr=<host:port> 调整为peer-addr: <host:port>。

通过读取cloud-config文件,CoreOS会将其翻译为stub单元文件中的环境变量,并利用其启动该服务。

另一种etcd设置调整方式为通过API。其使用端口7001而非4001。

例如,大家可以通过以下命令获取部分当前配置值:

curl -L http://127.0.0.1:7001/v2/admin/config

{"activeSize":9,"removeDelay":1800,"syncInterval":5}

而后将新的JSON作为数据载荷,同时配合PUT操作实现值变更:

curl -L http://127.0.0.1:7001/v2/admin/config -XPUT -d'{"activeSize":9,"removeDelay":1800,"syncInterval":5}'

{"activeSize":9,"removeDelay":1800,"syncInterval":5}

要获取设备列表,则可前往/v2/admin/machines端点:

curl -L http://127.0.0.1:7001/v2/admin/machines

[{"name":"27987f5eaac243f88ca6823b47012c5b","state":"follower","clientURL":"http://10.132.248.121:4001","peerURL":"http://10.132.248.121:7001"},{"name":"2ddbdb7c872b4bc59dd1969ac166501e","state":"follower","clientURL":"http://10.132.252.38:4001","peerURL":"http://10.132.252.38:7001"},{"name":"921a7241c31a499a97d43f785108b17c","state":"leader","clientURL":"http://10.132.248.118:4001","peerURL":"http://10.132.248.118:7001"}]

我们可以利用DELETE方法对集群内的设备进行强制移除。

总结

如大家所见,我们可以利用etcd存储或者检索集群内各设备上的信息。通过这种方式,我们可以同步数据并为服务提供查找配置数据及连接信息所必需的位置。

这种作法特别适合用于构建分布式系统,因为我们可以提供一套简单端点,并保证其适用于集群内的任意位置。通过发挥这一优势,我们的服务将能够以动态方式实现自我配置。

本文来源自DigitalOcean Community。英文原文:How To Use Etcdctl and Etcd, CoreOS’s Distributed Key-Value Store By Justin Ellingwood

翻译:diradw

域控制器开发避坑实录:从硬件设计到软件集成的5个关键挑战 本文深入剖析了域控制器开发中的5大关键挑战,从硬件选型到软件集成,涵盖智能驾驶芯片选择、实时性优化、AUTOSAR架构适配等核心问题。通过实战案例和数据对比,为工程师提供避坑指南,助力提升开发效率和系统可靠性。 阅读详情

相关推荐

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析

本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。

weixin_30505225的博客 512

etcd v2 v3 api http协议调用 curl版本问题 postman的使用总结

不知道是postman版本问题还是curl版本问题,理论上服务器上的curl版本应该不影响客户端的调用 postman7.0 选择raw模式,对应--date-raw模式就是不行,后升级为postman8.0, 服务端curl升级最新版7.74后,貌似就可以调用成功了;具体没分析是centos的cur版本问题还是postman版本问题; etcd网上流程的http请求都是v2版本,目前都是3.4.14版本了,因此对初学者箱采用http调用来说,看网上流程的v2接口调用就会一脸懵逼,报not found,

王森的博客 3317

Qt中输出中文出现乱码(win10系统下)

当我刚开始在win10下使用Qt Creator(4.3.0版本)时,遇到过这么个问题:当程序输出中文时,中文会乱码,程序本身的中文未乱码。 乱码截图如下: 我查阅了很多资料,最后在自己的不断的尝试下,解决了乱码问题。进入主题,具体如何解决乱码? ① 首先,我们先设置一下,可以直观在Qt界面上看到文件的编码方式: 点击工具(tool)->选项(option)->文本编辑器->显示->Diplayfileencoding,将其勾选上,点击apply,即可,截图如下...

请叫我皮皮虾的博客 5201

【云原生 | 47】etcdctl客户端的使用方法详解

etcdctl是Etcd官方提供的命令行客户端,它支持一些基于HTTP API封装好的命令,供用户直接跟Etcd服务打交道,而无需基于HTTP API的方式。当然,这些命令跟HTTP API实际上是对应的,最终效果上并无不同之处。

小鹏linux的博客 3万+

HPE磁盘阵列管理04——MSA事件

本文介绍了HPE MSA存储系统的事件处理机制,重点分析了常见磁盘故障事件及其解决方案。文章首先定义了MSA事件的五个严重级别(严重、错误、警告、信息和解决),然后详细列举了多个典型事件案例(如事件1、3、6、8、172等),包括每种事件的触发条件、对系统的影响以及具体修复步骤。针对磁盘故障场景,文章提供了更换磁盘、重建磁盘组、取消隔离等操作建议,并强调应及时配置备用磁盘以降低数据风险。最后指出更详细的事件说明可参考《MSA事件描述参考指南》,并提供了HPE官方手册下载链接。全文为技术人员处理MSA存储故障

istrangeboy&begin zero的博客 1123

基于ESP32-P4的低成本旋转式激光雷达系统设计

激光雷达(LiDAR)作为机器人环境感知的核心传感器,其本质是融合光学测距、机电控制与实时数据处理的嵌入式系统。理解时间飞行(ToF)原理与机械旋转耦合机制,是实现高精度点云采集的基础;而系统级误差源——如计时抖动、电机惯性、信号串扰和温漂——直接决定实际建图鲁棒性。在资源受限场景下,选用RISC-V双核MCU(如ESP32-P4)可兼顾实时控制与网络服务能力,通过硬件时间戳捕获、S型加减速轨迹规划、旋转变压器供电及双Bank OTA等工程手段,有效平衡分辨率、帧率与稳定性。本文围绕360°旋转式激光雷达的

weixin_36231030的博客 435

ETCD命令集合

本文由刘艺凌整理完成ETCD 命令 存储: curl http://127.0.0.1:4001/v2/keys/testkey -XPUT -d value='testvalue' curl -s http://127.0.0.1:4001/v2/keys/message2 -XPUT -d value='hello etcd' -d ttl=5 获取: curl ht

凌风探梅的专栏 1600

从DMD芯片到3D视觉革命:揭秘DLP工业投影光机的核心技术

本文深入解析了DMD芯片在DLP工业投影光机中的核心技术应用,揭示了其如何通过3D结构光技术实现微米级精度。从DMD芯片的机械设计到工业级光机的特殊优化,再到光固化3D打印和系统集成,展现了DLP技术在工业自动化和智能制造中的革命性作用。

weixin_29048775的博客 518

ETCD简介与使用

最近在工作中后端业务需要与etcd数据库进行数据交互,ETCD——高可用的分布式键值(key-value)数据库,由GO语言实现。 以下简单介绍下在这次业务实现中学习的ETCD的基本用法(入门小白级), 下载安装 单机实例安装,即stardard alone形式的安装,这种方式安装后,etcd的client和etcd的server均在同一台机器,便于练习。 etcdgithub仓库的r...

SanJiK的博客 1278

【软考高项】【计算专题】- 3 - 进度类 - 双代号网络图

共需压缩 20 天。在双代号网络图中,工作一般使用箭线表示,任意一条箭线都需要占用时间、消耗资源,工作名称写在箭线的上方,而消耗的时间则写在箭线的下方或者工作后面。反映的是前后工作的交接点,节点中的编号可以任意编写,但应保证后续工作的节点比前面节点的编号大,即上图图中的1⃣️4⃣️ 即表示 B 活动和 D 活动间有依赖关系,D 活动的开始,依赖 B 活动的结束。B活动完成了一半, 各计划的实际支出为A活动6500元, B活动1000元, C活动280元, D。

欢迎来到我的博客,一起探索代码里的世界! 4566

Andrej Karpathy:人工智能的未来发展挑战

《Andrej Karpathy:人工智能的未来发展挑战》 关键词:(1) 人工智能,(2) 发展挑战,(3) 数据隐私,(4) 伦理道德,(5) 可持续发展,(6) 技术创新,(7)

AI天才研究院 1971

etcd学习笔记 - 入门

Etcd本质上与一个NoSQL的数据库系统也有几分神似,但更准确的说法说是一个高可用的键值存储系统。与一般的NoSQL数据库不同,Etcd在设计的初衷主要用于是共享配置和服务发现,它的灵感来自于ZooKeeper和Doozer。其名称来源于unix的“/etc”文件夹和分布式系统(“D”istributesystem)的D,组合在一起表示etcd是用于存储分布式配置的信息存储服务。#支持的选项包括#--ttl'0'该键值的超时时间(单位为秒),不配置(默认为0)则永不超时。...

成长之路 812

关于如何在matlab中导入并翻译Hypemesh导出的大型刚度矩阵txt文本

如何将它翻译成matlab可以使用的矩阵变量,并参与运算。 由于这个大型刚度矩阵125万x125万≈1e12。matlab甚至其他计算软件无法保存这个大的一个矩阵文件。而这个刚度矩阵作为稀疏矩阵其中非零元素的数目只有有500多万。采用sparse稀疏矩阵技术是可以保存。 这里简单介绍一下这个Hypemesh导出的大型刚度矩阵txt文本。如图DMIG开头的标识符是换行符,后面两列是表示这条非零元素在刚度矩阵中列数的信息。我们已经将左边字母和符号等批量删除,得到了右边textread函数可以...

wenyusuran的专栏 1795

Docker(十四)Etcd 项目

etcd 是 CoreOS 团队发起的一个管理配置信息和服务发现(Service Discovery)的项目,在这一章里面,我们将基于 etcd 3.x 版本介绍该项目的目标,安装和使用,以及实现的技术。

.正函数.的博客 2684

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[CoreOS 转载] CoreOS实践指南(五):分布式数据存储Etcd(上)

转载:http://www.youkuaiyun.com/article/2015-01-22/2823659 摘要:在“漫步云端:CoreOS实践指南”系列的前几篇,分别介绍了如何架设CoreOS集群,系统服务管家Systemd和集群的指挥所Fleet,本篇将介绍CoreOS生态中连接各个节点通信和支撑集群服务协同运作的模块Etcd。 注:本文首发于优快云,转载请标明出处。 【编者按】作为一个操...

weixin_34248487的博客 166

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ETCD 基本介绍与常见命令的使用

ETCD 基本介绍与常见命令的使用

Sahara_Savage 2442

一文吃透 Etcd 分布式键值存储:集群部署、节点运维、快照备份恢复实战

本文全面介绍了 ETCD 分布式键值存储系统,涵盖其核心概念、特点、应用场景,以及详细的部署与运维实践。内容包括单节点与多节点集群部署、集群节点增删操作、etcdctl 命令使用、Kubernetes 数据查询,以及数据的物理与逻辑备份恢复方法。通过具体配置示例和操作命令,为读者提供了从入门到实践的完整指南。

2602_95508776的博客 332

etcd分布式键值存储服务

etcd分布式键值存储服务 Etcd服务 master管理节点上安装 1.etcd定义 centos团队于2013年6月发起的开源项目,目标构建一个高可用的分布式键值(key-value)数据库(类似redis),基于Go语言实现。在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。CoreOS项目就希望基于etcd来解决这一问题 使用etcd来存储网络配置,解决容器互联互通问题 2.etcd键值管理 在键的组织上etcd采用了层次化的空间结构(类似于文件系统中目

河静 409

etcd相关知识整理归纳 —— 筑梦之路

Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于 Go 语言实现。名字由来,它源于两个方面,unix的“/etc”文件夹和分布式系统(“D”istribute system)的D,组合在一起表示etcd是用于存储分布式配置的信息存储服务。

筑梦之路 1864

ETCD实战

简介 etcd介绍 详情见腾讯文档:https://docs.qq.com/doc/DTndrQXdXYUxUU09O?opendocxfrom=admin: etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。 类似项目有zookeeper和consul。 etcd具有以下特点: 完全复制:集群中的每个节点都可以使用完整的存档 高可用性:Etcd可用于避免硬件的单点故障或网络问题 一致性:每次读取都会返回跨多主机的最新写入 简单:包括一个

kuokay的博客 948

CoreOS实践指南(五):分布式数据存储Etcd(上)

为什么80%的码农都做不了架构师?>>> ...

weixin_34044273的博客 190

Etcd 基本入门

Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用。

TonyWu的博客 1480

Etcd 使用入门

etcd简介 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。 etcd作为服务发现系统,有以下的特点: 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单 安全:支持SSL证书验证 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作 可靠:采用raft算法,实现分布式系统数据的可用性和一致性 etcd项目地址:h

笔记 570

etcd mysql集群_Etcd 高可用分布式键值数据库

Etcd 高可用分布式键值数据库1, Etcd简介etcd是CoreOS团队于2016年6月发起的开源项目,他的目标是构建一个高可用的分布式键值(key_value)数据库。Etcd内部采用raft协议作为一致性算法,Etcd是基于Go语言实现的。目前很火的kubernetes等项目都用到etcd组件作为一个高可用分布式键值存储。etcd作为服务发现系统,有以下特点:简单: 安装配置简单,而且提供...

weixin_39538789的博客 454

CoreOS 学习指南(一)

随着越来越多的应用程序向云端迁移并使用服务器虚拟化,快速部署用户应用和服务并确保其可靠性,借助合适的服务器部署服务并保证 SLA,变得尤为必要。特别是当这些服务具有动态特性时,情况更加复杂,这要求这些服务能够在一组节点上自动化配置和自动扩展。用户应用的编排不仅限于在正确的服务器或虚拟机上部署服务,更要扩展到提供跨这些服务的网络连接,从而实现基础设施即服务IaaS计算、网络和存储是云服务商在提供 IaaS 时必须管理的三大资源。目前,已有多种机制以更抽象的方式处理这些需求。

龙哥盟 1207
上一篇: 如何使用fleet与fleetctl管理CoreOS集群
下一篇: 如何利用fleet单元文件为CoreOS集群创建高灵活性服务
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值