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

ModCluster configuration to discard request when load is full

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

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

A​​pache-modcluster 负责负载平衡。

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

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

或者有什么不同的建议?

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

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

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