Назад | Перейти на главную страницу

Как исключить запросы из нежелательных источников

Сценарий:

Клиент покупает наши аналитические услуги и включает наш аналитический SDK в свое мобильное приложение. Пользователи, скачавшие приложение, начнут присылать нам много данных. Когда клиент перестает платить за нашу аналитику, все данные продолжают поступать, и это влияет на нашу пропускную способность и затрудняет обработку запросов.

Мы можем легко остановить отправку данных всем SDK, но это будет окончательно, поэтому, если клиент решит продлить услугу, ему придется повторно загрузить SDK, что потребует времени и усилий с его стороны. Мы также можем снизить количество вызовов до 1 в сутки, но с большим количеством клиентов это приведет к появлению большого количества бесполезных вызовов данных.

Есть ли способ спроектировать архитектуру сервера таким образом, чтобы, когда клиент перестанет оплачивать наши услуги, все входящие вызовы из его приложений были исключены и не влияли на пропускную способность входящего сервера и обработку запросов?

Некоторые громоздкие решения: предоставить каждому клиенту определенный субдомен или порт. Затем удалите поддомен или порт после того, как он перестанет использовать службу (ограничено и все еще влияет на обработку запросов)

Спасибо за помощь.

Я бы использовал для этого DNS.

Если домен вашей компании wemonitorstuffforyou.com и приложение подписывающих клиентов называется subscribingclientsapp.

Настройте поддомен под названием subscribingclientsapp.wemonitorstuffforyou.com для клиентского приложения, которое будет использоваться при отправке ваших данных.

В будущем, если этот клиент не сможет продолжить работу с вашим сервисом, вы можете перенаправить поддомен в другое место. Если в будущем клиент решит перезапустить ваши службы, вы просто перенастраиваете указатель поддомена.

Если в URI есть какое-либо специфическое для клиента значение, вы можете фильтровать и отклонять нежелательные запросы на уровне брандмауэра с помощью iptables.