etcd (Key/Value 存储系统) v3.4.6 源码下载

来源:脚本之家  责任编辑:小易  

使用Redis实现分布式锁最简单的方案是使用命令SETNX。SETNX(SET if Not eXist)的使用方式为:SETNX key value,只在键key不存在的情况下,将键key的值设置为value,若键key存在,则SETNX不做任何动作。SETNX在设置成功时返回,设置失败时返回0。当要获取锁时,直接使用SETNX获取锁,当要释放锁时,使用DEL命令删除掉对应的键key即可。上面这种方案有一个致命问题,就是某个线程在获取锁之后由于某些异常因素(比如宕机)而不能正常的执行解锁操作,那么这个锁就永远释放不掉了。为此,我们可以为这个锁加上一个超时时间。第一时间我们会联想到Redis的EXPIRE命令(EXPIRE key seconds)。但是这里我们不能使用EXPIRE来实现分布式锁,因为它与SETNX一起是两个操作,在这两个操作之间可能会发生异常,从而还是达不到预期的结果对此,正确的姿势应该是使用“SET key value[EX seconds][PX milliseconds][NX|XX]”这个命令。从 Redis 2.6.12 版本开始,SET 命令的行为可以通过一系列参数来修改:EX seconds:将键的过期时间设置为 seconds 秒。执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value。PX milliseconds:将键的过期时间设置为 milliseconds 毫秒。执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value。NX:只在键不存在时,才对键进行设置操作。执行 SET key value NX 的效果等同于执行 SETNX key value。XX:只在键已经存在时,才对键进行设置操作。履行 SET key value PX milliseconds 的后果同等于履行 PSETEX key milliseconds value。NX:只在键不存在时,才对键停止设置操纵。履行 SET key value NX 的后果同等于履行 SETNX key value。XX:只在键曾经存在时,才对键停止设置操纵。举例,咱们须要创立一个散布式锁,而且设置过时时光为10s,那末能够履行以下下令:这里我们一眼就可以看出问题来:GET和DEL是两个分开的操作,在GET执行之后且在DEL执行之前的间隙是可能会发生异常的。如果我们只要保证解锁的代码是原子性的就能解决问题了。这里我们引入了一种新的方式,就是Lua脚本,解锁的时候还是使用DEL命令来解锁。修改之后的方案看上去很完美,但实际上还是会有问题。试想一下,某线程A获取了锁并且设置了过期时间为10s,然后在执行业务逻辑的时候耗费了15s,此时线程A获取的锁早已被Redis的过期机制自动释放了。在线程A获取锁并经过10s之后,改锁可能已经被其它线程获取到了。当线程A执行完业务逻辑准备解锁(DEL key)的时候,有可能删除掉的是其它线程已经获取到的锁,总的来说Redis 分布式锁不是那么万无一失的www.zgxue.com防采集请勿采集本网。

源码大小:9.76MB 源码语言:简体中文 源码类型:国产软件 源码授权:免费软件 更新时间:2020-03-30 16:24:20 源码类别:其它源码 源码官网: 官方网址 网友评分:源码评分 应用平台:Windows平台

etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。etcd 的灵感来自于 ZooKeeper 和 Doozer,侧重于:

ETCD_KEY_FILE=\" ETCD_CLIENT_CERT_AUTH=\"false ETCD_TRUSTED_CA_FILE=\" ETCD_AUTO_TLS=\"false ETCD_PEER_CERT_FILE=\" ETCD_PEER_KEY_FILE=\" ETCD_PEER_CLIENT_CERT_AUTH=\"false ETCD_PEER_TRUSTED_CA_

简单:支持 curl 方式的用户 API (HTTP+JSON)

安全:可选 SSL 客户端证书认证

快速:单实例可达每秒 1000 次写操作

可靠:使用 Raft 实现分布式

etcd  更新日志:

稳定的认证API

缩短延迟高达2倍

功能测试仪表盘

v3版本API和新的存储引擎

开始使用etcd v3版本 API

下载地址如下:

四五互联移动下载

群英网络电信下载

巨牛网络电信下载

创梦网络电信下载

酷云中国网通下载

亿恩科技电信下载

万达网络电信下载

徐州枫信网通下载

360集群电信下载

酷云中国电信下载

云彩网络双线下载

腾正科技电信下载

微子网络电信下载

一种方案为Haproxy+etcd+confd,采用松散式的组织结构,但各个组件之间的通讯是非常严密的,且扩展性更强,定制也更加灵活。一、架构优势约定由Haproxy+etcd+confd+Docker构建的基础服务平台简称“HECD”架构,整合了多种开源组件,看似松散的结构,事实上已经是一个有机的整体,它们互相联系、互相作用,是Docker生态圈中最理想的组合之一,具有以下优势:自动、实时发现及无感知服务刷新;支持任意多台Docker主宿机;支持多种APP接入且打散至不分主宿机;采用Etcd存储信息,集群支持可靠性高;采用Confd配置引擎,支持各类接入层,如Nginx;支持负载均衡、故障迁移;具备资源弹性,伸缩自如(通过生成、销毁容器实现);二、架构说明在HECD架构中,首先管理员操作Docker Client,除了提交容器(Container)启动与停止指令外,还通过REST-API方式向Etcd(K/V)存储组件注册容器信息,包括容器名称、主宿机IP、映射端口等。Confd配置组件会定时查询Etcd组件获取最新的容器信息,根据定义好的配置模板生成Haproxy配置文件Haproxy.cfg,并且自动reload haproxy服务。用户在访问业务服务时,完全没有感知后端APP的上线、下线、切换及迁移,达到了自动发现、高可用的目的。详细架构图见图1-1。图1-1 平台架构图为了方便大家理解各组件间的关系,通过图1-2进行架构流程梳理,首先管理员通过Shell或API操作容器,下一步将容器信息注册到Etcd组件,Confd组件会定时查询Etcd,获取已经注册到Etcd中容器信息,最后通过Confd的模板引擎生成Haproxy配置,整个流程结束。图1-2架构流程图了解架构流程后,我们逐一对流程中各组件进行详细介绍。1、Etcd介绍Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。简单:curl 方式的用户 API(HTTP+JSON)安全:可选 SSL 客户端证书认证快速:单实例可达每秒 1000 次写操作可靠:使用 Raft 实现分布式2、Confd介绍Confd是一个轻量级的配置管理工具。通过查询Etcd,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。3、Haproxy介绍HAProxy是提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。(来源百科)三、架构部署平台环境基于Centos6.5+Docker1.2构建,其中Etcd的版本为etcd version 0.5.0-alpha,Confd版本为confd 0.6.2,Haproxy版本为HA-Proxy version 1.4.24。下面对平台的运行环境、安装部署、组件说明等进行详细说明,环境设备角色表如下:1、组件安装1.1 Docker安装SSH终端登录192.168.1.22服务器,执行以下命令:yum-y install docker-ioservice docker startchkconfig docker on 1.2 Haproxy、confd安装SSH终端登录192.168.1.20服务器,执行以下命令:1、haproxyyum –y install haproxy2、confdwgethttps://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64mv confd/usr/local/bin/confdchmod+x/usr/local/bin/confdusr/local/bin/confd-versionconfd 0.6.2 1.3 Etcd安装SSH终端登录192.168.1.21服务器,执行以下命令:yum-y install golangmkdir-p/home/install&cd/home/installgit clonehttps://github.com/coreos/etcdcd etcdbuildcp bin/etcd/bin/etcdbin/etcd-versionetcd version 0.5.0-alpha 2、组件配置 2.1 Etcd配置由于etcd是一个轻量级的K/V存储平台,启动时指定相关参数即可,无需配置。bin/etcd-peer-addr 192.168.1.21:7001-addr 192.168.1.21:4001-data-dir/data/etcd-peer-bind-addr 0.0.0.0:7001-bind-addr 0.0.0.0:4001&由于etcd具备多机支持,参数“-peer-addr”指定与其它节点通讯的地址;参数“-addr”指定服务监听地址;参数“-data-dir”为指定数据存储目录。由于etcd是通过REST-API方式进行交互,常见操作如下:1)设置(set)key操作curl-L http://192.168.1.21:4001/v2/keys/mykey-XPUT -d value="this is awesome"{"action":"set内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 用docker搭建一个高可用可扩展的服务支撑系统怎么做
  • 大家所推崇的 Redis 分布式锁,真的可以万无一失吗?
  • springboot 的多个@Configuration配置类如何控制加载顺序
  • 怎么写一个脚本可以往etcd里存储键值对
  • kubernetes 的master节点挂了对整个集群有什么影响
  • 如何进行docker的集群管理
  • 网站首页源码下载asp源码php源码.net源码jsp源码软件开发脚本下载js框架网站地图网页游戏黑客源码数据库类其它源码整站系统博客程序留言聊天企业网站新闻文章ajax相关搜索链接文件管理交友会员上传下载投票调查框架模板整站系统新闻文章留言聊天博客系统贺卡图片ajax相关文件管理问答系统社区论坛上传下载整站系统控件组件新闻文章主机域名计数统计小偷采集电子商务学校班级 社区论坛上传下载投票调查blog程序留言聊天整站系统社区论坛上传下载投票调查数据管理jsp其它c#源码易语言源码delphi源码vb源码java源码其它菜单导航tab标签焦 点 图在线客服css特效相册代码flash特效批处理其它jqueryextjsprototypemootoolsajax/javascript其它框架主页源码下载其它源码鸿鹄智能云cms站群系统源码 v1.2.2飞天素材网后台管理框架模板 v1.0在线生成抽象话的网页源码最新运营版双端影视app白菜,番茄香蕉lulube影视app原生双端apicloud非黄瓜直播盒子html象棋游戏源码etcdckplayer 超酷视频播放器(支持flv,f4v,mp4,rtmp)vx bulid2020.ckplayer 超酷视频播放器(支持flv,f4v,mp4,rtmp)vx bulid2020.下载my97日期控件 datepicker 4.1 正式版my97日期控件 datepicker 4.1 正式版下载精美淘宝客单页面 zblog模板 v1.0 精美淘宝客单页面 zblog模板 v1.0 下载 蝙蝠在线考试系统源码 v2.2.6 蝙蝠在线考试系统源码 v2.2.6下载qvod快播电影插件 for discuz 7.0qvod快播电影插件 for discuz 7.0下载jquery v3.4.1 免费版jquery v3.4.1 免费版下载jquery easyui v1.9.0jquery easyui v1.9.0下载网页播放器_支持lrc歌词同步及列表拖动的网页mp3播放器源码网页播放器_支持lrc歌词同步及列表拖动的网页mp3播放器源码下载cairo 1.16.0 开源2d向量图形绘图库cairo 1.16.0 开源2d向量图形绘图库下载找不到分享码?鸿鹄智能云cms站群系统源码 v1.2.2飞天素材网后台管理框架模板 v1.0在线生成抽象话的网页源码最新运营版双端影视app白菜,番茄香蕉lulube影视app原生双端apicloud非黄瓜直播盒子html象棋游戏源码o泡易支付免授权源码 附当面支付教程警用车辆监控系统后台管理模板 v1.0经典蓝白色搭配的飞天后台管理模板 v1.0最新6合1游戏口红机源码带商城版加视频教程上拉加载分页内容代码(移动端) v1.0分享码的获取方法迅雷winrar v5微信小程序androidasp源码生活购物php源码asp.net源码jsp源码软件开发移动开发网页游戏黑客源码数据库类网页编辑器其它源码ant design(阿里前端设计语言/react框架实现) v4.1.1 官方版鸿鹄智能云cms站群系统源码 v1.2.2飞天素材网后台管理框架模板 v1.0ruby 动态编程语言 v2.7.1etcd (key/value 存储系统) v3.4.6在线生成抽象话的网页源码scrapy web爬虫框架 v2.0.1ckplayer 超酷视频播放器(支持flv,f4v,mp4,rtmp)vx bulid2020.最新运营版双端影视app白菜,番茄香蕉lulube影视app原生双端apiclhtml象棋游戏源码chrome
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved