首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行时暂时关闭/关闭REST API?

问如何在运行时暂时关闭/关闭REST API?
EN

Stack Overflow用户
提问于 2020-08-14 18:11:01
回答 2查看 115关注 0票数 0

我正在开发一个REST服务,它主要提供两个API: PUT请求和GET请求。在灾难恢复期间,服务将处于无法接受新的PUT请求,但仍可以为GET请求提供响应的状态。我正在研究如何在运行时临时禁用/失败传入的PUT API调用(通过返回500或200以外的任何值),同时服务正在积极地进行灾难恢复。该服务在负载均衡器后面的一组主机上运行,并启用了自动伸缩功能。需要在运行该服务的所有主机上临时禁用PUT API请求。

我读过com关于在运行时更新配置的文章:java update properties file run time,但它看起来需要手动更新每个主机上的属性文件,如果我们有大量主机运行服务,这可能不是最优的。

想知道是否有其他方法来实现这一点。提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-17 14:50:36

大多数情况下,负载均衡器被放置在防火墙之后。如果您有权访问防火墙,则可以在启动灾难恢复之前设置一项任务,以便在防火墙中设置规则并阻止使用防火墙与目标服务或方法进行任何连接。灾难恢复完成后,设置丢弃规则和允许连接的任务。

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 15:12:12

这是Redis或任何其他消息代理的典型用例。

因此,您可以在Redis服务中创建一个通道。如果您的API进入灾备状态,则会有东西发布消息。API的所有实例都订阅该通道并接收消息,然后将其缓存到某个位置。在路由中添加一个中间件,用于检查每个请求的缓存值,如果应用程序处于灾难恢复状态,则返回错误。然后,当您的应用程序不再处于灾难恢复状态时,向Redis通道发送一条消息,使所有服务器清除缓存中的值。

这种解决方案具有快速、干净、简单、可靠的特点。更改应用程序配置并不是您想在运行时尝试做的事情。配置应该是稳定的。这不是状态。

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

https://stackoverflow.com/questions/63410802

复制
相关文章

相似问题

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