Jersey 2.x Restlets - 应用治理控制(例如对restlet资源允许的请求数量的限制)

时间:2015-03-20 20:11:53

标签: restlet jersey-2.0

我一直在阅读Jersey 2.17用户指南,了解在公开的RESTLet资源上应用治理限制的可能性。我特别感兴趣的是对特定客户端消费者的特定Jersey RESTLet资源的传入请求应用限制(例如:我希望每30秒允许来自任何特定源的10个请求)。

如果有人根据他们在原生API功能方面的经验,是否有可行的方法,请告诉我。提前谢谢!

1 个答案:

答案 0 :(得分:1)

使用Restlet实现此目的的方法是使用APISpark extension

这个类似的问题应该回答你的问题: Limit request on a Restlet resource with APISpark restlet extension

你可以做这样的事情:

FirewallRule rule = new PeriodicFirewallCounterRule(60, TimeUnit.SECONDS, new IpAddressCountingPolicy());
((PeriodicFirewallCounterRule)rule).addHandler(new RateLimitationHandler(new UniqueLimitPolicy(10)));
FirewallFilter firewallFiler = new FirewallFilter(getContext(), list(rule));
firewallFiler.setNext(router);

限制对应用的Restlet服务器资源的访问。我希望这有助于或至少给你一个提示。