<div dir="ltr"><div dir="ltr"><div>Hello Frank,<br></div><div><br></div><div>If you're looking at imposing some amount of fairness besides a rate limit, aequitas might be useful for you:<br><br><a href="https://github.com/g-andrade/aequitas">https://github.com/g-andrade/aequitas</a><br><br></div><div>It attempts to detect outliers in consumers of resources and throttle them (in your use case, these could be IP addresses performing an unusually large number of requests.) It can also enforce a collective rate limit.<br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, 21 Sep 2018 at 07:40, Frank Muller <<a href="mailto:frank.muller.erl@gmail.com">frank.muller.erl@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Hi guys</div><div dir="auto"><br></div><div dir="auto">We have an HTTP web service based Cowboy which is receiving more and more traffic.</div><div dir="auto"><br></div><div dir="auto">We would like to implement a throttling mechanism per IP address to limit how many request/sec the same IP address can make.</div><div dir="auto"><br></div><div dir="auto">Is there any library out there for that?</div><div dir="auto">Or any (simple yet efficient) algorithm to implement?</div><div dir="auto"><br></div><div dir="auto">Ideas & feedabacks are very welcome. </div><div dir="auto"><br></div><div dir="auto">Thanks in advance.</div><div dir="auto"><br></div><div dir="auto">/Frank</div>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Guilherme<br></div></div></div></div></div></div>