【发布时间】:2019-06-07 17:35:43
【问题描述】:
我即将提高缓存重系统的效率,该系统具有以下属性/架构:
该系统有 2 个组件,一个后端实例和多个前端实例,分布在远程数据中心。
后端生成数据并将其写入到复制到多个数据中心的关系数据库。
前端通过从数据库读取数据并提供服务来处理客户端请求(基于常见的 Web 流量)。数据在过期前会在本地缓存中存储一个小时,并且必须再次检索。
(缓存的驱逐策略是基于 LRU 的)。
我想提一下,上面的实现有两个问题:
事实证明,许多数据库访问是多余的,因为底层数据实际上并没有改变。 另一方面,在缓存 TTL 过去之前不会反映更改,从而导致过时问题。
您能否建议解决这两个问题的解决方案?
如果数据存储在 nosql db(如 cassandra)而不是经典数据库中,是否应该更改解决方案?
【问题讨论】:
标签: java caching responsive-design architecture microservices