设想:
客户购买我们的分析服务,并将我们的分析 SDK 包含在其移动应用中。下载该应用的用户将开始向我们发送大量数据。当客户停止为我们的分析付费时,所有数据仍会继续发送,这会影响我们的带宽并使我们的请求处理变得混乱。
我们可以轻松阻止所有 SDK 发送数据,但这是最终决定,因此如果客户决定续订服务,他将不得不重新上传 SDK,这需要花费时间和精力。我们还可以将调用次数降低到每 24 小时 1 次,但对于大量客户来说,这仍然会造成大量无用的数据调用。
有没有一种方法可以设计服务器架构,以便当客户停止支付我们的服务费用时,来自其应用程序的所有来电都将被排除,并且不会影响传入服务器带宽和请求处理?
一些繁琐的解决方案:为每个客户提供特定的子域名或端口。然后在客户停止使用服务后删除子域名或端口(受限且仍然影响请求处理)
感谢帮助。
答案1
我将为此使用 DNS。
如果您的业务领域是wemonitorstuffforyou.com
,并且订阅客户的应用程序被称为subscribingclientsapp
。
subscribingclientsapp.wemonitorstuffforyou.com
配置客户端应用程序在发送数据时使用的子域。
将来如果该客户无法继续使用您的服务,您可以将子域名重定向到其他地方。如果客户将来决定重新启动您的服务,您只需重新配置子域名指向即可。
答案2
如果 URI 中有任何客户特定值,您可以使用 iptables 在防火墙级别过滤和拒绝不需要的请求。