《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》—2.3etcd典型应用场景举例

举报
华章计算机 发表于 2019/06/03 13:03:19 2019/06/03
【摘要】 本书摘自《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》一文中的第2章,第2.3.1节,作者是华为云容器服务团队、杜军等编著。

       2.3 etcd典型应用场景举例

       正如前文介绍的那样,etcd的定位是通用的一致性key/value存储,但也有服务发现和共享配置的功能。因此,典型的etcd应用场景包括但不限于分布式数据库、服务注册与发现、分布式锁、分布式消息队列、分布式系统选主等。etcd的定位是通用的一致性key/value存储,同时也面向服务注册与发现的应用场景。本节将对etcd的一些典型应用场景进行简单概括。

       2.3.1 服务注册与发现

       服务发现(Service Discovery)要解决的是分布式系统中最常见的问题之一,即在同一个分布式集群中的进程或服务如何才能找到对方并建立连接。

       从本质上说,服务发现就是要了解集群中是否有进程在监听UDP或者TCP端口,并且通过名字就可以进行查找和链接。

       要解决服务发现的问题,需要具备如下三个条件。

       1)一个强一致性、高可用的服务存储目录。而基于Raft算法的etcd天生就是这样一个强一致性、高可用的服务存储目录。

       2)一种注册服务和健康服务健康状况的机制。用户可以在etcd中注册服务,并且对注册的服务配置key TTL,定时保持服务的心跳以达到监控健康状态的效果。

       3)一种查找和连接服务的机制。在etcd指定的主题下注册的服务业能在对应的主题下查找到。为了确保连接,我们可以在各个服务机器上都部署一个代理模式的etcd,这样就可以确保访问etcd集群的服务都能够互相连接。

       如图2-3所示的是一个服务发现与注册的基本原理图。

image.png

图2-3 服务发现与注册原理图

       1. etcd提供微服务注册与发现

       下面来看一个使用etcd进行服务注册与发现的具体应用场景。

       随着Docker容器的流行,多种微服务共同协作,构成功能相对强大的架构的案例越来越多。动态且透明化地添加这些服务的需求也变得日益强烈。服务发现机制可用于在etcd中注册某个服务名字的目录,并在该目录下存储可用的服务节点的IP。在使用服务的过程中,只要从服务目录下查找可用的服务节点进行使用即可,这样通过etcd就做到了各微服务之间的自动添加与协同。

image.png

图2-4 etcd提供微服务注册与发现

       2. etcd使得PaaS平台应用多实例与实例故障重启透明化

       另一个典型的应用是利用etcd在PaaS平台中应用多实例,以及实例故障重启透明化。

       PaaS平台中的应用一般都有多个实例,通过域名,系统不仅可以透明地对多个实例进行访问,还可以实现负载均衡。但是应用的某个实例随时都有可能会发生故障重启,这时就需要动态地配置域名解析路由中的信息。etcd的服务发现功能可以轻松解决这个动态配置的问题(如图2-5所示)。

image.png

图2-5 etcd使得PaaS平台应用实例与实例故障重启透明化


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。