这是我的场景。分布式架构如何适用于动态和静态内容
我有地图平铺在服务器不同的缩放级别创造了数千个映射砖。目前这在一个EC2实例上运行。我想坚持使用AWS。
当前的工作流程 - 一种用于瓷砖请求时,nginx的检查,如果在高速缓存中存在瓷砖。如果该图块存在,它就会显示出来。如果它不存在,它会将请求传递到一个贴图创建脚本,该脚本既将新创建的贴图提供给用户,也将其缓存以供将来使用。当需要创建大量图块时,这开始陷入困境。
我想把它移到一个更分散的架构,其中从s3提供贴图,如果它们不存在,它们会通过任意数量的芹菜任务呈现并创建贴图并将其缓存到s3。
我inital的想法是建立ELB对于事物的瓷砖创建侧和S3的小块高速缓存。问题是如何检查s3中是否存在拼贴,然后将其发送给ELB以进行渲染。 我试着在ELB前面设置nginx,用try_files
指令来检查s3。尽管我可以在s3中代理磁贴,但这并不奏效。
我的问题是这样的用例通常在AWS架构中如何管理?一个请求进入,对存储位置进行检查,如果它不存在,它将被创建并返回。
谢谢。
请求的图块已经被渲染和存储的可能性是多少?看起来答案似乎对解决方案的可行性和效率有影响。 –
取决于缩放级别和空间位置。我们预先缓存低级别磁贴,因此z0-12被缓存并可用作静态资产。当一个请求进入更高的缩放级别时,图块的创建将被启动并存储以供将来使用。这样,经常访问的区域就已经被缓存了。我现在遇到的问题是单个机器上的高速缓存会导致所有内容枯竭,并且无法提供静态磁贴。 – james