我的系统使用一堆微服务来处理一个项目,我计划创建一个有状态微服务来保存该项目的最新状态。在该服务中,我计划将所有项目状态存储在可靠的字典中,并且每当访问项目时都会更新该项目的“上次访问”字段。
我的要求是,我只想将最近使用的项目存储在可靠的集合中,并且需要将长时间不访问的项目移动到外部存储(例如azure表存储),
并且外部存储和可靠集合需要同步。
这意味着所有项目都应该在外部存储中,并且最近使用的项目应该在可靠的收集中。
这是为了减少可靠收集的开销。
就像可靠集合充当缓存一样。
实施上述解决方案是最佳实践吗?
枚举可靠集合是一个好习惯吗?
如果可靠字典旨在充当缓存,那么我并没有真正看到将未使用的项目卸载到 Azure 存储的意义。如果它是缓存,我希望清除未使用的项目,并且调用者需要返回到缓存中已过期的任何内容的真相来源。但听起来您希望《可靠词典》成为最新的事实来源。所以我认为你必须首先决定你是否真的在构建一个缓存,或者一个可以将数据从内存中分页的真实数据存储源。听起来更像是后者。
在任何一种情况下,都可以按照您所描述的方式完成,但保持它们一致同步并不容易,因为您没有跨可靠字典和外部存储的事务。
枚举集合很好,但这是一项昂贵的操作,因此我不建议对热路径(例如用户请求路径)中的大量数据执行此操作。按照预定的方式定期进行就可以了。
您需要将数据卸载到外部存储吗?可以卸载到本地磁盘吗? Reliable Collections 很快就会自动将状态卸载到磁盘。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)