【问题标题】:spring boot application in cluster集群中的spring boot应用程序
【发布时间】:2016-01-02 00:38:17
【问题描述】:

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

由于 spring boot 为应用程序创建了一个 .jar 文件。 我想在不同的服务器上集群这个特定的应用程序。假设我构建了一个 jar 文件并运行了一个项目,然后它应该从定义的服务器数量以集群模式运行,并且应该能够满足最终用户的需求。

我的 jar 将仅驻留在一台服务器上,但它将跨多个服务器集群。当最终用户从我的 Spring Boot 应用程序调用 Web 服务时,他永远不知道从哪里调用它。

集群背后的原因是假设任何服务器在未来出现故障,最终用户仍然能够从另一台服务器访问 Web 服务。但我不知道如何使它成簇。

谁能告诉我这方面的见解?

【问题讨论】:

    标签: java spring-boot cluster-computing distributed-computing embedded-tomcat-7


    【解决方案1】:

    如果你想让它集群化,你只需在多个服务器上运行你的 Spring Boot 应用程序(当然,JAR 必须存在于这些服务器上,否则你无法运行它)。然后,您可以在应用服务器前面放置一个负载均衡器来分配负载。

    【讨论】:

    • 您好,谢谢您的回复。您能否分享任何解释此过程的此类文档。
    • 提到的项目太多了,根据你的要求,哪一个适合我的要求
    • 您没有详细说明您的要求,所以无法回答。此问题也超出了本网站的范围。如果您的代码有特定问题,您可以提出要求。但是,此网站不适用于一般性问题。
    • 其实我只是想集群一个应用程序以获得高可用性。
    【解决方案2】:

    如果您要公开的所有服务都是无状态的,那么您只需要在节点前面使用负载均衡器即可。 apache 或 nginx,如果您的服务是有状态的“存储任何状态 [会话,将数据存储在 db]”,那么您必须使用分布式缓存或内存数据网格:

    1. 对于会话,您可以使用 spring-session 项目,该项目可以使用 rails 来存储会话。
    2. 要在 DB 中存储数据,您需要自行对 DB 进行集群,并且可以在 DB 层之上使用分布式缓存,例如 Hazelcast。

    【讨论】:

    • 请分享任何类似架构的 git hub 链接。
    【解决方案3】:

    看看 Spring Cloud,他们使用了一些 netflix 开放软件和亚马逊一起为微服务创建了 12 要素应用程序。 理想情况下,您需要一个负载均衡器、服务注册表来帮助您实现多个 Spring Boot 实例。我相信你必须添加一个名为 eureka 的依赖项。 检查以下链接

    Spring cloud

    【讨论】:

      【解决方案4】:

      您可以将其部署在 Cloud Foundry 中并使用自动缩放功能来增加您的应用程序实例。

      【讨论】:

        猜你喜欢
        • 2016-02-29
        • 1970-01-01
        • 2020-05-06
        • 2023-03-11
        • 2015-10-06
        • 2020-03-07
        • 1970-01-01
        • 1970-01-01
        • 2020-04-04
        相关资源
        最近更新 更多