如何自定义一个服务端缓存

情况是这样的,公司主服务器在海外,但是现在国内有一部分服务需要用到海外的主服务。海外主服务目前提供rest api 。
由于国内需要频繁访问国外的主服务,故想做一层缓存。但是需要保证数据的正确性。请问有没有人做过类似的。

阅读 4.3k
4 个回答

你想到了缓存,那么代表需要访问的这部分数据是可以接受延迟的,那么可以建立一个“代理层”,所有的请求转到代理层,由代理层向远程服务器发送请求,并由代理层统一执行缓存管理。

但是需要注意的是,缓存会引起延迟,如果所需要的服务的正确性是建立在数据的即时性基础之上的,那么这些服务就不能这么做了。

故想做一层缓存。但是需要保证数据的正确性。

完全正确是不可能的。除非那边服务有相应的“通知”。

if hasCache:
    return cache

不就这样么。

这需要看你能不能改主服务器了。如果可以就开个keep alive的连接,主服务器改动了就同意你,你在去获取,然后修改本地的数据。另外,要考虑到特殊的网络环境,http连接可能随时会断

如果不能的话就直接隔一段时间查询一次主服务器,然后检验当前文件的hash和缓存文件的hash是否一致。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题