我的任务是构建一个流程来补偿我们的 LDAP 系统上的复制延迟。目前,有 1 个写服务器和 4 个读服务器。将条目写入写入服务器后,系统上最多可能有 4 秒的延迟,然后才会将条目复制到读取服务器。因此,如果我调用更新记录的服务“A”,然后立即点击应该读取该记录的服务“B”,则数据将是陈旧的。
为了解决这个问题,我计划构建一个缓存 Web 服务,以便没有应用程序直接与数据库交互,而是通过缓存服务。该服务会将所有创建、更新和删除存储在缓存中(大概是一个List<ModelObject>
)。CRUD - R 条目需要在缓存中至少保留四秒钟。然后,当服务“B”尝试读取时,缓存服务将在对数据库执行读取操作之前检查缓存。
所以,我的问题是两部分。1)这是一个可行的解决方案,如果不是,你看到什么问题?2) 我将如何对 WCF 服务中的缓存进行维护。换句话说,有没有办法启动一个后台工作线程,从缓存中清除 4 秒前的条目?