当前位置: 首页 > 知识库问答 >
问题:

使用单个服务的多个实例管理spring微服务中的请求

唐威
2023-03-14

我有一个java项目,我正试图扩大我的项目,所以想旋转单个微服务的3个实例。

但我有个问题

解释一下

当用户登录时,从用户界面,每10秒一个api请求(针对特定用户)进入后端,该请求给出了Spring批处理作业的状态(对于已登录的特定用户,正在运行或未运行)。这仅适用于1个实例。

但是当我有 3 个实例(实例 1、2

假设10秒的第一个请求到达实例1,并且登录用户的作业正在运行-它返回作业正在运行。-正确的第二个请求在20秒到达实例2,因为实例2中没有作业正在运行(实例1中作业正在运行)它返回没有作业正在运行-不正确的第三个请求在30秒到达实例3,因为实例3中没有作业正在运行(实例3中作业正在运行)它返回没有作业正在运行-不正确

在实例1中的作业结束之前,我如何确保获得“作业正在运行”状态。

我正在使用spring微服务

请帮帮忙。

预先感谢

需要让作业一直运行,直到特定用户的作业在实例1中完成,针对每个api请求

共有1个答案

商正诚
2023-03-14

我假设您使用的是Spring Batch,它在内存作业存储库中。

如果您想扩展,您真的应该使用一个单独的数据库来保存这些作业的元数据。

配置和部署数据库,添加dataSource,确保jobRepository使用该dataSource。然后,所有服务器都将返回相同的值。

如果做不到这一点,您至少应该确保您的负载平衡器启用了粘性会话。

 类似资料:
  • 这更多的是一个系统设计问题。 让我们假设我有一个微服务体系结构,我有X个实例(用于负载平衡对服务的HTTP请求)。但是,也是Kafka主题的消费者。如何避免将同一消息处理X次(X是的实例数)<如果处理是幂等的,至少一次就可以了。它不需要是,但不能是。 服务A可以是订单服务。它生成关于用户向订单主题下单的消息。 服务B可以是支付服务。它使用订单主题中的消息向用户收费。 支付订单可能是幂等操作。但是,

  • 本文向大家介绍Spring Cloud多个微服务之间调用代码实例,包括了Spring Cloud多个微服务之间调用代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring Cloud多个微服务之间调用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 现在又一个学生微服务 user 和 学校微服务 school,如果u

  • 我有一个Spring批处理作业,它可能在多个服务器上运行。我有一个监听器,可以防止作业的多个实例在一台服务器上同时运行。但是,我要确保该作业不能同时在多台服务器上运行。 我已经找遍了,但没有找到解决这个问题的办法

  • 我遇到了一个问题,如何使用Netflix Archaius作为多个Spring Boot微服务的配置服务器。以前,当我在使用Spring Boot构建的多服务项目中应用Eureka和Spring Cloud Config Server时,每个microservie都将通过Eureka服务的发现功能从Spring Cloud Config Server获得自己的.properties文件。但是现在我

  • 问题内容: 我们有以下设置。 STM(Stingrey Traffic Manager)进行负载平衡+会话粘性 Weblogic的“集群” 由第三方工具处理的身份验证 因此,我不必担心有关水平缩放/运行应用程序多个实例的会话。STM / Weblogic集群确保后续请求到达同一托管服务器。 我们目前拥有的是一个整体应用程序,并且我们正在尝试转向微服务。同样,我们也不会离开当前的基础架构(即STM

  • 问题内容: 我已经开发了两个Springboot michroservices exservice1和service2。具有service1依赖性的service2微服务。 我在service2 pom文件中添加了service1的依赖关系,并在运行service2时在eclipse中可以正常工作。但是,当我在Jenkins中部署并为service1创建项目(Jenkins Job)并以maven