java - ModCluster 配置在负载已满时丢弃请求

标签 java jboss7.x mod-cluster

我有一个公开 REST 的 Java 应用程序。

我有一个主人和两个奴隶。 (jboss7.1.1)

Apache-modcluster 负责负载平衡。

我的应用程序中维护着队列,当没有消费者时,队列有时会被填满。因此,我得到了 OutOfMemory 并且从属节点出现故障。

apache modcluster 中是否有任何配置来检查负载并阻止传入请求,尽管只是路由?

或者有什么不同的建议吗?

最佳答案

据我所知,您只能根据负载路由请求(使用 LoadMetric),而不能阻止它们

我建议你应该设计你的API,当你的队列已满并且jboss节点无法服务请求时返回不同的响应代码(可能是509或503),然后你可以指示API使用者在之后重试如果遇到这些响应之一,则超时

可以使用 mod_security 之类的东西来“速率限制”apache(请参阅: https://johnleach.co.uk/words/1073/rate-limiting-with-apache-and-mod-security ),但是我认为从应用程序代码中控制它会更好

关于java - ModCluster 配置在负载已满时丢弃请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33910586/

相关文章:

java - "VPNAPIs"类的正确命名是什么

java - TestNG - 构造函数上的@Test

node.js - 使用 mod_cluster willdfly 将 url apache 重写为 nodeJS 时出现问题

jboss - Wildfly 9 负载平衡

java - 带着 Spring 的烦恼 Swing

java - 上传formdata到远程tomcat服务器时multipart为null

jboss7.x - Jboss EAP 6.4 模块资源根路径

jboss - ClassNotFoundException 引用 JBoss AS 7 中的 hornetq 特定内容

jboss7.x - 使用 HornetQ 清空 JBOSS 7 中的 jms 队列