购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 路由模式

路由模式负责处理希望消费微服务的客户端应用程序如何发现服务的位置并路由到服务。在基于云的应用程序中,可能会运行成百上千个微服务实例。要强制执行安全和内容策略,需要抽象这些服务的物理IP地址,并为服务调用提供单个入口点。如何做到这一点?以下模式将回答这个问题:

服务发现 ——通过服务发现及其关键特性服务注册表,可以让微服务变成可发现的,这样客户端应用程序就可以发现它们,而无须将服务的位置硬编码到它们的应用程序中。如何做到这一点?我们将在第6章对此进行解释。请记住,服务发现是内部服务,而不是面向客户端的服务。注意,在本书中,我们使用的是Netflix Eureka服务发现,但也有其他服务注册表,如etcd、Consul和Apache ZooKeeper。此外,有些系统没有显式的服务注册中心。相反,它们使用了一种被称为 服务网格 (service mesh)的服务间通信基础设施。

服务路由 ——通过API网关,可以为所有服务提供单个入口点,以便将安全策略和路由规则统一应用于微服务应用程序中的多个服务和服务实例。如何做到这一点?使用Spring Cloud API Gateway能做到,第8章中会对此进行解释。

图1-12展示了服务发现和服务路由之间如何看起来像是具有硬编码的事件顺序(首先是服务路由,然后是服务发现)。然而,这两种模式并不是彼此依赖的。例如,我们可以实现没有服务路由的服务发现,也可以实现没有服务发现的服务路由(尽管它的实现更加困难)。

图1-12 服务发现和服务路由是所有大规模微服务应用程序的关键部分 jF9+mElhF0EoNgkxt5ey09Ylxq54LsGIEO6areW9Nh8uBDE14EG2NixhVleIhu3m

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开