《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》—2.3etcd典型应用场景举例
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所示的是一个服务发现与注册的基本原理图。
图2-3 服务发现与注册原理图
1. etcd提供微服务注册与发现
下面来看一个使用etcd进行服务注册与发现的具体应用场景。
随着Docker容器的流行,多种微服务共同协作,构成功能相对强大的架构的案例越来越多。动态且透明化地添加这些服务的需求也变得日益强烈。服务发现机制可用于在etcd中注册某个服务名字的目录,并在该目录下存储可用的服务节点的IP。在使用服务的过程中,只要从服务目录下查找可用的服务节点进行使用即可,这样通过etcd就做到了各微服务之间的自动添加与协同。
图2-4 etcd提供微服务注册与发现
2. etcd使得PaaS平台应用多实例与实例故障重启透明化
另一个典型的应用是利用etcd在PaaS平台中应用多实例,以及实例故障重启透明化。
PaaS平台中的应用一般都有多个实例,通过域名,系统不仅可以透明地对多个实例进行访问,还可以实现负载均衡。但是应用的某个实例随时都有可能会发生故障重启,这时就需要动态地配置域名解析路由中的信息。etcd的服务发现功能可以轻松解决这个动态配置的问题(如图2-5所示)。
图2-5 etcd使得PaaS平台应用实例与实例故障重启透明化
- 点赞
- 收藏
- 关注作者
评论(0)