【问题标题】:How to get load balanced access to different microservices ( Using ribbon, Springboot)如何获得对不同微服务的负载均衡访问(使用功能区、Springboot)
【发布时间】:2019-08-13 06:21:17
【问题描述】:

考虑一个场景:MasterApp( microservice 1)需要调用AssistApp( Microservice 2)获取数据集AtertiaryApp ( microservice 3)获取数据集B。 每个`微服务(2和3)都有3个需要负载平衡的实例(功能区被用于客户端负载平衡)。 你能告诉我我应该如何准备application.properties。我不能将所有 6 个实例都放在服务器的属性列表下。

我已经在google(Dzone,nginx,github和其他论坛中的spring示例)搜索了一段时间,但我无法找到这个场景的结论。

【问题讨论】:

  • 应该选择eureka或consul等服务注册中心。
  • 我使用的是 eurkea,但是在做 poc 时,我在网上查看的所有示例都在属性文件中登记服务器列表,所以我很困惑。后来正如@Chaojiang建议的那样,我不需要知道uri和端口号。

标签: microservices spring-cloud netflix-ribbon


【解决方案1】:

一般情况下,您不应在 application.properties 中配置任何内容。 我认为您的application.properties 中已经有一个参数spring.application.name。而且,您已将您的应用程序注册到 Eureka。

那么你的电话应该是:

restTemplate.getForObject("http://SERVICE_NAME/xx/yy")

您不需要关心您的 3 个实例 ip/port,只需将它们保持相同的应用程序名称即可。

另外,你应该考虑Feign,它会更符合你的要求。

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 2021-01-10
    • 2015-02-11
    • 1970-01-01
    • 2022-01-24
    • 2019-04-28
    • 1970-01-01
    • 2021-03-17
    • 2021-09-24
    相关资源
    最近更新 更多