我有一个暴露REST的Java应用程序。
我有一个主人和两个奴隶。 (jboss7.1.1)
Apache-modcluster负责负载平衡。
我的应用程序中维护了队列,当没有消费者时,有时会填满这些队列。因此,我得到OutOfMemory并且从属节点关闭。
apache modcluster中是否有任何配置来检查负载和阻止传入的请求,尽管只是路由?
或任何不同的建议?
答案 0 :(得分:1)
据我所知,你只能根据负载路由请求(使用LoadMetric),而不是阻止它们
我建议您设计API以在队列已满并且jboss节点无法为请求提供服务时返回不同的响应代码(可能是509或503),然后您可以指示API使用者再次尝试如果他们遇到其中一个回复,则超时
可以“限制”' apache使用类似mod_security的东西(参见:https://johnleach.co.uk/words/1073/rate-limiting-with-apache-and-mod-security),但我认为从你的应用程序代码中控制它会更好