Сценарий:
Клиент покупает наши аналитические услуги и включает наш аналитический SDK в свое мобильное приложение. Пользователи, скачавшие приложение, начнут присылать нам много данных. Когда клиент перестает платить за нашу аналитику, все данные продолжают поступать, и это влияет на нашу пропускную способность и затрудняет обработку запросов.
Мы можем легко остановить отправку данных всем SDK, но это будет окончательно, поэтому, если клиент решит продлить услугу, ему придется повторно загрузить SDK, что потребует времени и усилий с его стороны. Мы также можем снизить количество вызовов до 1 в сутки, но с большим количеством клиентов это приведет к появлению большого количества бесполезных вызовов данных.
Есть ли способ спроектировать архитектуру сервера таким образом, чтобы, когда клиент перестанет оплачивать наши услуги, все входящие вызовы из его приложений были исключены и не влияли на пропускную способность входящего сервера и обработку запросов?
Некоторые громоздкие решения: предоставить каждому клиенту определенный субдомен или порт. Затем удалите поддомен или порт после того, как он перестанет использовать службу (ограничено и все еще влияет на обработку запросов)
Спасибо за помощь.
Я бы использовал для этого DNS.
Если домен вашей компании wemonitorstuffforyou.com
и приложение подписывающих клиентов называется subscribingclientsapp
.
Настройте поддомен под названием subscribingclientsapp.wemonitorstuffforyou.com
для клиентского приложения, которое будет использоваться при отправке ваших данных.
В будущем, если этот клиент не сможет продолжить работу с вашим сервисом, вы можете перенаправить поддомен в другое место. Если в будущем клиент решит перезапустить ваши службы, вы просто перенастраиваете указатель поддомена.
Если в URI есть какое-либо специфическое для клиента значение, вы можете фильтровать и отклонять нежелательные запросы на уровне брандмауэра с помощью iptables.