我正面临设计问题,我希望减少API服务器的延迟,因为它根据传递的参数对请求的文件进行一些繁重的处理。
此服务器需要将处理过的文件提供给许多http客户端。请注意,这些动态内容是原始文件名和其他参数的结果。 在任何单一时间点,可能会发生许多http客户端原始文件名和其他参数完全匹配。因此,为了节省冗余,这个处理必须完成一次。
我目前正在使用基于Redis的分布式锁来实现这一目标。
现在为了降低带宽成本;我处理这些文件并将它们上传到CDN。并最终将重定向请求中的已处理最终URL传递给所有感兴趣的各方,即http客户端。
基于一些阅读,我发现nsq.io可以通过为文件和参数的每个唯一组合创建动态主题来解决这个问题。但http客户端如何以非阻塞方式使用结果。请注意,我无法控制HTTP客户端,即我无法在客户端更改任何内容以解决此问题。