【问题标题】:How Springboot manages beans in distributed system?Spring Boot 如何在分布式系统中管理 bean?
【发布时间】:2020-01-31 08:29:40
【问题描述】:

假设我在 Spring Boot 中有一个应用程序。该应用程序的多个实例将在分布式系统中运行,以处理来自不同用户的大量请求。 Spring 将在应用程序上下文中创建/管理其 bean。有几个应用程序实例将运行应用程序上下文。如果我们在这个应用程序前面有一个负载均衡器,它会在每个实例上分配请求,那么 spring 将如何管理 bean。

【问题讨论】:

  • 分布式系统中的每个节点都是一个单独的应用实例。每个实例都有自己的 bean 池,它们之间没有共享。
  • 每个单独的应用实例都有自己的应用程序上下文,它将负责 bean 管理。如何分发网络请求与 bean 创建无关。

标签: java spring-boot distributed-system


【解决方案1】:

在您的应用程序实例前面单独使用负载平衡器,Spring Boot 应用程序将不会相互感知。 实例之间不会有任何 bean 管理,每个实例都将维护自己的应用程序上下文和托管 bean。 您可以将实例显式连接在一起,以将同一数据库用作数据源或持久会话 (server.session.persistent=true),这样当负载均衡器路由到另一个节点时会话不会丢失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2018-12-19
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多