摘要:本篇文章探讨了大数据技术之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知识库!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号