解析 spring 中微服务实例的 IP 地址可以 [jhipster]

Resolve IP Address of microservice instance in spring could [jhipster]

我正在使用 Jhipster 创建一个简单的微服务架构,基本上我有一个 Eureka 注册表 运行,向其注册了一堆微服务实例。

有些微服务需要与其他微服务通信或查询一些数据,但每个微服务都有一个动态IP地址,是否可以使用实例名来解析IP并做请求?

您可以使用服务器端负载平衡模式。 Netflix Zuul 作为 API 网关为您提供这种平衡(使用 Netflix Ribbon 作为负载平衡器)。 在你的情况下:创建 Zuul µservice(不要忘记注释@EnableZuulProxy)并在 Eureka 中注册它。

完成这些步骤后,您将能够通过 Zuul µservice 地址调用在 Eureka 中注册的 µservice 实例,而无需知道它们在客户端的地址。

这已经由 JHipster Eureka 架构提供。

  • 微服务(Eureka 客户端)向注册表(Eureka 服务器)注册。
  • 然后,每个将 eureka.client.fetch-registry 属性 设置为 true 的微服务都会配置其 Ribbon 实例,并可以使用服务名称 URL 连接到其他注册服务,例如 http://<service name>/api/something 使用 RestTemplateFeignClient

你没有说你选择了哪种身份验证,这个文档是针对 UAA 的,它甚至可能对普通的 JWT 有帮助:https://www.jhipster.tech/using-uaa/#inter-service-communication