微服务的 DNS 查询

DNS lookup for microservices

简单的问题:假设我有几个后端微服务,它们只被应用软件访问过,最好的做法是:

  1. 将应用软件直接指向一个IP地址?或者
  2. 为服务分配子域?

我的假设是 (1) 避免 DNS 查找延迟,而 (2) 如果 IP 发生变化,则更容易更新系统。还有其他影响吗?

分配子域或直接使用 IP 地址访问不是可扩展的方法。

我建议,将您的客户端应用程序软件指向一个 API 网关,这将是这些微服务的单一入口点,并且应该有一个服务发现机制,以便 API 网关可以访问这些单独的微服务。

请参考以下示例图

  1. 客户端应用程序从特定服务请求数据并且它到达 API 网关
  2. API 网关向发现服务器请求该特定服务的最新可达地址
  3. 发现服务正在返回最新的可达地址
  4. API 网关使用从发现服务器获得的地址来访问客户端请求的资源的特定服务。
  5. 所有微服务都应在发现服务器启动时注册。