我有一个在一组服务器上运行的Web服务.该网络服务进行一些内部处理,然后可以拨打外部服务来收取费用.
我想放入一些缓存,以便如果我收到相同的服务请求(这是保证发生的话),那么我不必重复处理,节省了处理时间/功耗,同时也节省了外部部分的成本的服务电话.
但是,当我遇到以下限制时,我正在努力找出如何管理缓存
>该服务正在多个Web服务器上运行,以实现高可用性和可扩展性
>请求可能需要5秒钟的时间来响应,但同时我可能已经收到了两个或三个其他相同的请求.
在分布式环境中工作时,如何执行其他服务调用,直到第一个响应(缓存中可用)才能执行.
我已经考虑在代理中建立一个前端代理模式并构建一个相同请求的队列,这样当第一个返回时,它也可以向其他方返回相同的响应.这是正确的模式,还是有更好的并发模式来处理这种情况?