【发布时间】:2021-07-04 08:59:18
【问题描述】:
我有两个 Spring Boot 微服务(微服务 A)实例和一个负载均衡器。 Spring boot 应用程序在 AWS Fargate 中运行,具有 2 个所需任务(微服务 A 的 2 个实例)。
如果我请求微服务 A,负载均衡器会在第一次请求时将我引导至微服务 A 实例 1。 下一个请求将负载均衡到微服务 A 实例 2。这会在以后的每个请求中交替进行。
在微服务 A 上,我有一个具有 List<String> 属性的 Spring Service。在每次请求时,我都会在此列表中添加一些内容。
该列表保存在内存中,我不想将此列表放入数据库中。
在我的情况下,每个进一步的请求都会交替填充微服务 A 实例 1 和微服务 A 实例 2 的列表。但是我想在以后的每个请求中只填写一个 List,这样我的 List 输入就不会分布在我的微服务实例中。
所以我的问题是:
有没有办法在这两个微服务实例之间共享一个 List?
我是否必须在他们之间建立某种沟通,或者是否有更好的解决方案?还是我必须配置我的负载均衡器? 一个解决方案是将其存储在数据库中。但这会产生很多数据库调用,我想防止这种情况发生,因为代码的目的是防止数据库调用。
【问题讨论】:
标签: amazon-web-services spring-boot amazon-ecs aws-fargate