首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于火灾和遗忘模型的弹簧云网关过滤厂

用于火灾和遗忘模型的弹簧云网关过滤厂
EN

Stack Overflow用户
提问于 2020-04-19 02:40:33
回答 1查看 149关注 0票数 1

我正在探索Spring 过滤器工厂,它可以接受请求并将成功的http状态返回给调用者。然后,根据过滤器工厂的配置将其转发到目的地。

代码语言:javascript
复制
caller ---> Spring Cloud Gateway
      <--- Request accepted 
           Spring Cloud Gateway  ---> Destination

春季医生中,我没有找到任何解决方案。是否有任何现有的过滤工厂来实现这一模式?如果没有,那么有什么建议如何解决这个问题?

注意:我们之所以想中断Spring的通信,是因为目标服务器的响应时间非常长,呼叫者不能等待这么长的时间。

如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-04-19 03:50:20

因此,一般来说,解决方案可能是下一个。您需要将调用重定向到某个端点,该端点会将请求提交给未来处理等。这部分可以使用JMS方法实现,可以是任何实现,如ActiveMQ、RabbitMQ等。您应该根据需要和期望选择代理。

当请求来自网关时,您在端点上重定向,简单地将消息放在队列上,则另一个服务将侦听来自这些队列的消息并对其进行处理。

另一种方法是使用sprint批处理作业来处理某些逻辑等。当客户端通过网关进行调用时,网关将将请求转发到微服务端点,然后将请求存储在数据库中,并返回client 202。然后通过cron过程逻辑使用批处理作业。

使用第一种方法的好处是失去了微服务之间的耦合、异步处理和易于扩展。

使用spring批处理作业或任何调度程序,缩放都会遇到困难,因为您需要在多个实例中同时只运行一个作业。要解决这个问题,您可以使用调度锁库。

在请求被接受时处理重试策略的情况下,MOM(面向消息的中间件)在事务失败时会更容易一些重试配置。

使用spring批处理作业,您需要管理数据库中的请求状态,而不运行状态为“已处理”的请求等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61298881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档