【问题标题】:Spring boot load balancingSpring Boot 负载均衡
【发布时间】:2016-01-03 02:28:46
【问题描述】:

我正在开发一个 Spring Boot 应用程序。

我想知道如何在应用程序前面放置负载平衡器,以便在一定数量的服务器之间分配负载。

我搜索了一下,发现有一些 Netflix API,例如 EurekaHystrixRibbonArchaius将有助于完成老挝平衡工作。

但找不到这些术语如何帮助分配请求和平衡负载,同时为访问特定服务的所有用户提供高可靠性和可用性。

我正在考虑所有这些但找不到启动的入口点。 实际上我没有从哪里开始。

【问题讨论】:

  • 看看这个问题:stackoverflow.com/questions/31901054/…。你也应该熟悉spring-cloud
  • @ÁkosRatku 我会看到的。
  • @ÁkosRatku 我仍然不知道该怎么做
  • @ÁkosRatku 你能给我一个展示负载平衡概念的例子吗?
  • 你可以走 Netflix 的路,但如果你不传播它,你的 Zuul 代理最终将成为单点故障。如果你这样做,你确实有和以前一样的问题。如果您的应用程序不使用任何会话,那么您可以直接将任何负载均衡器放在前面并让它工作。如果您使用会话,则需要使您的应用程序同步此数据,例如通过使用弹簧会话。

标签: spring-boot cluster-computing netflix netflix-eureka netflix-feign


【解决方案1】:

您可以使用HAProxy

您可以使用自己的配置文件在您的服务器上运行它,例如:

global
   daemon
   maxconn 256

defaults
   mode tcp
   timeout connect 5000ms

listen http-in
   timeout client 180s
   timeout server 180s
   bind 127.0.0.1:80
   server server1 157.166.226.27:8080 maxconn 32 check
   server server2 157.166.226.28:8080 maxconn 32 check
   server server3 157.166.226.29:8080 maxconn 32 check
   server server4 157.166.226.30:8080 maxconn 32 check
   server server5 157.166.226.31:8080 maxconn 32 check
   server server6 157.166.226.32:8080 maxconn 32 check

这将允许每个到达本地主机端口 80 的 http 请求使用循环算法分布在列出的服务器上。有关详细信息,请参阅 HAProxy 文档。

【讨论】:

    【解决方案2】:

    了解您的应用程序提供 REST 服务,我建议您不要继续研究 Netflix API。这很棒,但对您的用例没有帮助。我建议您查看ha-proxynginxhttpd 以获得简单的负载平衡功能。好的部分是您不必考虑会话粘性,因为 REST 在默认情况下是无状态的。

    【讨论】:

    • 请看dzone.com/articles/externalizing-session-state 这是否与您的建议有关?
    • 是的,关于 nginx 部分。忘记春季会议。您正在公开不使用会话的 REST 服务。
    • 好的。我会去看看这个,让你知道。顺便说一句,感谢您的快速响应和您的努力:)
    猜你喜欢
    • 2017-01-10
    • 2021-01-10
    • 2017-03-24
    • 2015-07-26
    • 1970-01-01
    • 2018-07-06
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多