解析 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
使用 RestTemplate
或 FeignClient
你没有说你选择了哪种身份验证,这个文档是针对 UAA 的,它甚至可能对普通的 JWT 有帮助:https://www.jhipster.tech/using-uaa/#inter-service-communication
我正在使用 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
使用RestTemplate
或FeignClient
你没有说你选择了哪种身份验证,这个文档是针对 UAA 的,它甚至可能对普通的 JWT 有帮助:https://www.jhipster.tech/using-uaa/#inter-service-communication