【问题标题】:How to load balance among SpringBoot instancesSpringBoot实例之间如何进行负载均衡
【发布时间】:2018-03-06 23:28:08
【问题描述】:

我有这个 AngularJS 应用程序,它使用用 SpringBoot 编写的后端 REST API。 我想使用 SpringBoot 在不同的端口上运行这个后端 API 的几个实例。 如何在这些 SpringBoot 实例之间进行负载平衡?

我尝试使用 Apache,但它似乎不起作用:

ProxyRequests off
<Proxy balancer://mycluster>
    BalancerMember http://54.152.52.248:9999/restApi/v1 loadfactor=5
    BalancerMember http://54.152.52.248:9898/restApi/v1 loadfactor=5
    # Set counting algorithm to more evenly distribute work:
    ProxySet lbmethod=byrequests
</Proxy>

<Location /balancer-manager>
    SetHandler balancer-manager
</Location>

ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/

平衡器成员对应两个 Java 进程,不同的端口。 我在上面要做的是定义上下文 /balance-manager ,它将由代理处理,而代理又将请求分发给这些平衡器成员;如果我能证明这发生了,我可以继续进行粘性会话之类的。

目标是让 angular rest 客户端向这个单一的 balancer-manager/some_service/some_parameters/ 请求,并且这个代理会进行适当的重定向,我不相信上面会发生这种情况。

如果这可行的话有什么想法吗?

谢谢。

【问题讨论】:

  • 这和 AngularJS 有什么关系?
  • 你看过 Hystrix 吗?

标签: apache spring-boot load-balancing


【解决方案1】:

您可以使用 Spring Cloud Netflix 尝试 API Gateway 模式。 Zuul 和 Ribbon 充当代理和负载均衡器,将请求分发到不同的应用实例。

API Gateway Pattern Spring Cloud Netflix

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多