微服务可寻址性和服务注册表

提示

此内容摘自电子书《适用于容器化 .NET 应用程序的 .NET 微服务体系结构》,可在 .NET 文档上获取,也可作为免费可下载的 PDF 脱机阅读。

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

每个微服务都有一个唯一名称 (URL),用于解析其位置。 无论微服务在哪里运行,都需是可寻址的。 如果必须考虑哪一台计算机正在运行某个特定微服务,事情可能很快就不那么好办了。 按照 DNS 解析特定计算机 URL 的相同方式,微服务需要有唯一名称,以便可发现其当前位置。 微服务需要可寻址的名称,使其独立于运行于其中的基础结构。 此方法意味着服务部署方式与服务发现方式之间存在交互,因为此处需要一个服务注册表。 同样,如果计算机出现故障,注册表服务须能够指出服务的运行位置。

服务注册表模式是发现服务的一个关键部分。 注册表是包含服务实例的网络位置的数据库。 服务注册表需保持高度可用且是最新状态。 客户端可缓存从服务注册表获得的网络位置。 但是,该信息最终也会过时,客户端便无法再发现服务实例。 因此,服务注册表包含了一个服务器群集,使用复制协议来维护一致性。

在某些微服务部署环境中(称为集群,将在后面章节中介绍),服务发现是内置的。 例如,Azure Kubernetes 服务 (AKS) 环境可以处理服务实例注册和注销。 它还可在每个群集主机(充当服务器端发现路由器角色)上运行一个代理。

其他资源