大数据技术之etcd proxy功能简介
沉沙 2019-02-26 来源 : 阅读 1628 评论 0

摘要:本篇文章探讨了大数据技术之etcd proxy功能简介,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了大数据技术之etcd proxy功能简介,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

大数据技术之etcd proxy功能简介

<


一、etcd proxy概述
etcd提供了proxy功能,即代理功能,etcd可以代理的方式来运行。
etcd代理可以运行在每一台主机,在这种代理模式下,etcd的作用就是一个反向代理,把客户端的etcd请求转发到真正的etcd集群。这种方式既加强了集群的弹性,又不会降低集群的写的性能。
etcd proxy支持2种运行模式:readwrite和readonly,缺省的是readwrite,即proxy会将所有的读写请求都转发给etcd集群;readonly模式下,只转发读请求,写请求将会返回http 501错误。
二、etcd proxy参数
启动etcd代理主要有3个参数:proxy、listen-client-urls、initial-cluster(或discovery)。
proxy指的是代理的模式,on是readwrite模式,readonly是只读模式。
listen-client-urls指的是代理的监听地址。
initial-cluster(或discovery)指的是请求将转发到在此url发现的etcd集群。discovery指的是使用服务发现方式搭建的集群url。
启动命令示例:
./etcd –proxy on  –listen-client-urls //0.0.0.0:22379   –initial-cluster myetcd1=//0.0.0.0:12380 –data-dir /home/cmp/temp/proxy
三、注意事项
1、proxy只支持API v2,不支持v3;
2、在服务发现集群模式下,多启动的etcd节点将会自动降级成读写模式的代理;
3、代理不会自动变成etcd集群节点,如要加入集群需要手工进行如下操作:
etcd add命令将proxy节点加入集群、停止proxy进程或服务、删除proxy数据目录、使用正确的参数配置重新启动etcd进程或服务。
四、代理实例操作演示
1、先启动一个简单etcd集群
./etcd –name myetcd1 –listen-client-urls //0.0.0.0:12379 –advertise-client-urls //0.0.0.0:12379 –listen-peer-urls //0.0.0.0:12380 –initial-advertise-peer-urls //0.0.0.0:12380 –initial-cluster myetcd1=//0.0.0.0:12380 –data-dir /home/cmp/temp/myetcd1 &
2、再启动一个proxy节点
[root@cmp temp]# ./etcd –proxy on –listen-client-urls //0.0.0.0:22379 –initial-cluster myetcd1=//0.0.0.0:12380 –data-dir /home/cmp/temp/proxy &
[2] 27591
[root@cmp temp]# 2018-05-26 01:17:07.783930 I | etcdmain: etcd Version: 3.3.2
2018-05-26 01:17:07.783958 I | etcdmain: Git SHA: c9d46ab37
2018-05-26 01:17:07.783960 I | etcdmain: Go Version: go1.9.4
2018-05-26 01:17:07.783962 I | etcdmain: Go OS/Arch: linux/amd64
2018-05-26 01:17:07.783965 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
2018-05-26 01:17:07.783971 I | etcdmain: advertising using detected default host “192.168.100.52”
2018-05-26 01:17:07.783976 N | etcdmain: proxy: this proxy supports v2 API only!
2018-05-26 01:17:07.784047 I | etcdmain: proxy: using peer urls [//0.0.0.0:12380]
2018-05-26 01:17:07.785364 I | etcdmain: proxy: listening for client requests on //0.0.0.0:22379
2018-05-26 01:17:07.785416 E | etcdmain: forgot to set Type=notify in systemd service file?
2018-05-26 01:17:07.785421 I | proxy/httpproxy: endpoints found [“//0.0.0.0:12379”]
从启动信息看,proxy已经成功找到了etcd集群地址,代理的监听端口22379。
3、查看etcd集群信息
[root@cmp temp]# ./etcdctl –endpoints //0.0.0.0:12379 member list
eb06dc1bc141ff4f: name=myetcd1 peerURLs=//0.0.0.0:12380 clientURLs=//0.0.0.0:12379 isLeader=true
etcd集群中只有一个leader成员。
4、通过代理进行key-value操作
[root@cmp temp]# ./etcdctl –endpoints //127.0.0.1:22379 set key1 xxxxx
xxxxx
[root@cmp temp]# ./etcdctl –endpoints //127.0.0.1:22379 get key1
xxxxx
API v2命令可以成功通过代理读写数据。
[root@cmp temp]# ETCDCTL_API=3 ./etcdctl –endpoints=//127.0.0.1:12379 put key2 sssssssssss
OK
[root@cmp temp]# ETCDCTL_API=3 ./etcdctl –endpoints=//127.0.0.1:22379 get key2
Error: context deadline exceeded
直接访问集群时,API v3命令成功将key值写入,但是通过proxy读取时,命令直接报错。
     

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程