集群中的spring boot应用程序

问题描述 投票:4回答:4

我正在开发一个spring boot应用程序。

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

我的jar只驻留在一台服务器上,但它将聚集在多台服务器上。当最终用户从我的春季启动应用程序调用Web服务时,他永远不知道从哪里调用它。

集群背后的原因是假设任何服务器将来发生故障,最终用户仍然可以从另一台服务器访问Web服务。但我不知道如何使它聚集。

任何人都可以告诉我这方面的见解吗?

java spring-boot cluster-computing distributed-computing embedded-tomcat-7
4个回答
3
投票

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


3
投票

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

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

3
投票

看看Spring云,他们使用了一些netflix开放软件和amazons来为微服务创建12个因子应用程序。理想情况下,您需要一个负载均衡器,服务注册表,可以帮助您实现多个弹簧启动实例。我相信你必须添加一个名为eureka的依赖项。请查看以下链接

Spring cloud


0
投票

您可以将其部署在云代工厂中,并使用自动缩放功能来增加应用程序实例。

© www.soinside.com 2019 - 2024. All rights reserved.