Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AWS、Spring Boot、Tomcat:会话复制_Java_Amazon Web Services_Spring Mvc_Tomcat_Spring Boot - Fatal编程技术网

Java AWS、Spring Boot、Tomcat:会话复制

Java AWS、Spring Boot、Tomcat:会话复制,java,amazon-web-services,spring-mvc,tomcat,spring-boot,Java,Amazon Web Services,Spring Mvc,Tomcat,Spring Boot,我有一个spring启动应用程序,它使用嵌入式tomcat。该应用程序托管在多个EC2实例上,如果需要,这些实例会自动缩放,其中一些实例可能会被终止/重新启动。因此,实际上有3个应用程序实例正在运行,请求从负载平衡器路由到这些实例中的任何一个 我正在尝试在我的应用程序上跟踪用户会话。我从使用tomcatHttpSession实现容器级会话管理开始。但它无法跨实例跟踪会话。通过研究,我知道我需要会话复制之类的东西 我的应用程序没有运行tomcat集群,它有3个独立的API实例,它们之间根本不通信。

我有一个
spring启动应用程序
,它使用
嵌入式tomcat
。该应用程序托管在多个
EC2
实例上,如果需要,这些实例会自动缩放,其中一些实例可能会被终止/重新启动。因此,实际上有3个应用程序实例正在运行,请求从负载平衡器路由到这些实例中的任何一个

我正在尝试在我的应用程序上跟踪用户会话。我从使用tomcat
HttpSession
实现容器级会话管理开始。但它无法跨实例跟踪会话。通过研究,我知道我需要会话复制之类的东西

我的应用程序没有运行tomcat集群,它有3个独立的API实例,它们之间根本不通信。我不打算改变这一点,也不确定使用AWS是否可行,因为它不鼓励为此目的进行多播通信

另外,我不想仅仅为了这个目的而设置/管理一个单独的数据库(比如
redis with spring session
),因为我只需要
session id
来进行日志记录,而且我需要以轻量级的方式进行


有没有其他方法可以跨实例管理会话?或者出于我的目的,最好只实现一些自定义代码,以检查在前端和后端之间来回传递的会话id/令牌。

目标是从应用程序服务器外部化会话,以便您可以自动缩放、重新启动、负载平衡等,而不用担心中断用户的会话

老实说,我推荐使用Spring堆栈的AWS。我已经使用过无数次了,它很容易实现。您可以利用为您管理Redis集群的服务器(就像RDS为关系数据库所做的那样)


您可以使用S3、Dynamo等后台存储编写自己的Spring会话定制实现,但这真的比Redis实现更好吗?我建议使用阻力最小的路径。

使用经济高效的tomcat集群怎么样?