У меня есть веб-сервис CGI/Fast CGI на основе Perl и вы хотите ограничить количество клиентов по IP-адресу, чтобы остановить агрессивных клиентов, вызывая слишком много работы.Как я могу реализовать ограничение скорости на стороне сервера для веб-службы Perl?
Я искал код и нашел Algorithm::TokenBucket в CPAN, но это касается запросов клиентов; он не имеет настойчивости и не имеет конфигурации для каждого пользователя, поэтому он не очень полезен для ограничения скорости на стороне сервера.
Я ищу предложения для чего-то, что уже существует, в противном случае мне нужно будет свернуть свое собственное, основываясь на некоторой простой настойчивости, такой как привязка к DB_File для IP-адреса и некоторое пакетное задание, которое выполняет управление маркерами.
У меня был Cache :: FastMmap истекает запись до истечения срока их действия и до того, как кеш заполнен (все страницы). Имея это в виду, я бы использовал BDB вместо этого, и вручную истекал устаревшие записи. – jrockway
Ну, я решил использовать Cache :: FastMmap для обеспечения производительности и одновременного доступа, а потому, что ограничение * строгого ограничения скорости не требовалось. Последнее, кажется, применяется здесь, я не знаю о первом. – kixx