有哪些网站是静态网站,小红书seo排名优化,东营建设有限公司,中企动力为什么留不住人导览 前言Q#xff1a;基于容器云如何实现高可用的配置中心一、etcd入门1. 简介2. 特点 二、etcd实践1. 安装etcd镜像2. 创建etcd集群2.1 etcd-node12.2 etcd-node22.3 etcd-node3 3. 启动etcd集群 结语系列回顾 前言
Docker#xff0c;一个宠儿#xff0c;一个云原生领域的… 导览 前言Q基于容器云如何实现高可用的配置中心一、etcd入门1. 简介2. 特点 二、etcd实践1. 安装etcd镜像2. 创建etcd集群2.1 etcd-node12.2 etcd-node22.3 etcd-node3 3. 启动etcd集群 结语系列回顾 前言
Docker一个宠儿一个云原生领域的“容器健将”博主自开设玩转Docker系列后从7月到本月已足足持续更新了3个月。通过循序渐进、由浅入深的方式以十五篇“精美实干”的Docker实践文章为各位有兴趣、需帮助的盆友/同学提供了一定的示范或指南。
经过这个系列的创作博主深切地感受到知识的整合与传递过程不是堆砌拼凑更不是左拉右拽。正如你在提交一个方案时如果没有明确的论题、论据那么大概率是一次无效的思考。 总之还是一句话理论联系实际是“技术ren”的看家本领。
话不多言归正传最近有粉丝又找博主了询问什么时候更博啊…甚为惭愧。因为博主虽然主攻Java领域但是周边也得涉猎。为积极响应粉丝盆友的号召玩转Docker系列今日再续新篇。那么该谈点什么呢咱们边走边聊Let’s go~ Q基于容器云如何实现高可用的配置中心
先抛个问题给各位当业务从单体或单节点切换到集群服务模式时你最该考虑的是什么呢 甲说我打包一次可以随处部署这正是Docker可以解决的妙极了 乙说业务模块切换为微服务实现高可用好想法 丙说集中发布、集中部署、集中运维好主意 其他人怎么说咱们先不谈了。以上甲乙丙的想法也可能是我们的想法博主在这里不做评价但是必须考虑的指标一定是配置中心支持高可用。
当前我们以微服务模式构建业务以容器化思维部署应用那么中心轴是什么毫无疑问一定是配置中心。配置中心至少发挥了以下3个作用
服务注册服务状态发布与订阅服务发现
行文至此各位盆友脑海中有没有闪现出一个“名人”动物园管理员——ZooKeeper。在博主的历史文章中已对这位管理员做了较为详细的介绍这里不再赘述可以回去查找。今天我们看看另外一个活跃于云平台PaaS的服务发现配置中心——etcd 吧。
一、etcd入门
1. 简介
什么是etcd etcdis a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. It gracefully handles leader elections during network partitions and can tolerate machine failure, even in the leader node。 一句话总结etcd是一个高度一致的分布式key-value存储仓库支持集群共享访问并且可以优雅的实现集群内的选举避免宕机。 它的名称由来也很有意思是 etcunix/linux的/etc目录 ddistribute系统。简单理解就是一个支持分布式的“文件目录”。
2. 特点
根据官方提供的文档材料博主进行简单描述以供大家参考 总结一下即以下8个字
简单调用简单安全支持SSL机制快速读写效率高可信分布一致性强
二、etcd实践
对它有一个简单的认知后博主先带着各位亲自体验一下咱走着聊~
1. 安装etcd镜像
docker pull bitnami/etcd:3效果如下
2. 创建etcd集群
博主准备3个主机用于模拟创建真实的etcd集群每个节点定义如下
节点名称节点IP端口etcd-node110.11.12.44:2380etcd-node210.11.12.45:2380etcd-node310.11.12.46:2380
同时为便于管理博主选择采用docker compose进行容器编排以下是每个节点的docker-compose.yml基础配置内容。
2.1 etcd-node1
services:etcd-node1:image: bitnami/etcd:3container_name: etcd-node1environment:- TZAsia/Shanghai- ETCD_NAMEetcd-node1- ETCD_DATA_DIR/bitnami/etcd/data- ALLOW_NONE_AUTHENTICATIONyes- ETCD_ADVERTISE_CLIENT_URLShttp://10.11.12.44:2379- ETCD_INITIAL_ADVERTISE_PEER_URLShttp://10.11.12.44:2380- ETCD_LISTEN_PEER_URLShttp://0.0.0.0:2380- ETCD_INITIAL_CLUSTER_TOKENetcd-cluster- ETCD_INITIAL_CLUSTERetcd-node1http://10.11.12.44:2380,etcd-node2http://10.11.12.45:2380,etcd-node3http://10.11.12.46:2380- ETCD_INITIAL_CLUSTER_STATEnewrestart: alwaysports:- 2380:2380- 2379:2379volumes:- /app/etcd/data:/bitnami/etcd/data2.2 etcd-node2
services:etcd-node2:image: bitnami/etcd:3container_name: etcd-node2environment:- TZAsia/Shanghai- ETCD_NAMEetcd-node2- ETCD_DATA_DIR/bitnami/etcd/data- ALLOW_NONE_AUTHENTICATIONyes- ETCD_ADVERTISE_CLIENT_URLShttp://10.11.12.45:2379- ETCD_INITIAL_ADVERTISE_PEER_URLShttp://10.11.12.45:2380- ETCD_LISTEN_PEER_URLShttp://0.0.0.0:2380- ETCD_INITIAL_CLUSTER_TOKENetcd-cluster- ETCD_INITIAL_CLUSTERetcd-node1http://10.11.12.44:2380,etcd-node2http://10.11.12.45:2380,etcd-node3http://10.11.12.46:2380- ETCD_INITIAL_CLUSTER_STATEnewrestart: alwaysports:- 2380:2380- 2379:2379volumes:- /app/etcd/data:/bitnami/etcd/data2.3 etcd-node3
services:etcd-node3:image: bitnami/etcd:3container_name: etcd-node3environment:- TZAsia/Shanghai- ETCD_NAMEetcd-node3- ETCD_DATA_DIR/bitnami/etcd/data- ALLOW_NONE_AUTHENTICATIONyes- ETCD_ADVERTISE_CLIENT_URLShttp://10.11.12.46:2379- ETCD_INITIAL_ADVERTISE_PEER_URLShttp://10.11.12.46:2380- ETCD_LISTEN_PEER_URLShttp://0.0.0.0:2380- ETCD_INITIAL_CLUSTER_TOKENetcd-cluster- ETCD_INITIAL_CLUSTERetcd-node1http://10.11.12.44:2380,etcd-node2http://10.11.12.45:2380,etcd-node3http://10.11.12.46:2380- ETCD_INITIAL_CLUSTER_STATEnewrestart: alwaysports:- 2380:2380- 2379:2379volumes:- /app/etcd/data:/bitnami/etcd/data3. 启动etcd集群
启动集群很简单分别在每个节点中执行如下命令
# 后台启动
docker compose up -d
# 查看
docker compose ps效果如下 至此一个基于docker的etcd集群创建完成了。
结语
这是一篇极简的etcd学习教程重在实践。etcd是容器云中常用的分布式存储工具在高可用高可靠等安全服务的前提下 它能够为业务服务提供极高的数据稳定性和可靠性。
走过的、路过的盆友们点点赞收收藏并加以指导以备不时之需哈~
系列回顾 微服务实战系列之玩转Docker十五 微服务实战系列之玩转Docker十四 微服务实战系列之玩转Docker十三 微服务实战系列之玩转Docker十二 微服务实战系列之玩转Docker十一 微服务实战系列之玩转Docker十 微服务实战系列之玩转Docker九 微服务实战系列之玩转Docker八 微服务实战系列之玩转Docker七 微服务实战系列之玩转Docker六 微服务实战系列之玩转Docker五 微服务实战系列之玩转Docker四 微服务实战系列之玩转Docker三 微服务实战系列之玩转Docker二 微服务实战系列之玩转Docker一 微服务实战系列之云原生