在我的一个项目中,我们选择使用Chronicle Map作为基础数据结构,以跨不同的托管服务器在不同的微服务之间存储和共享数据。
我们的想法是我们使用createOrPersist(File file)方法创建一个Chronicle Map Store,并将持久化的文件保存在网络存储中,当其中一个微服务执行PUT操作时,该条目将被持久化(同步)到持久化快速下载文件,然后另一个微服务可以稍后获取条目,获取PUT和GET操作可能需要几分钟的时间。
研究了该教程,我们了解到数据复制仅在Chronicle Map Enterprise版本中可用,我们正在使用开源版本。有人可以建议上述方法是否切实可行?
如果共享持久文件方法不能达到我们的期望,我们是否可以将历史记录地图与历史记录引擎结合使用来实现跨微服务的数据共享?
答案 0 :(得分:1)
编年史地图通过将整个文件映射到内存来工作。我不确定网络存储是否完全支持mmap
,但是即使支持,我还是怀疑这种设计在性能和复制一致性方面是否可以正常工作。
如果共享持久文件方法不能达到我们的预期,我们是否可以将历史记录地图与历史记录引擎结合使用以实现跨微服务的数据共享?
除非您自己编写和支持复制代码,否则实际上,我认为您必须为Chronicle Enterprise付费。如果您需要经过战争考验的,开源的,社区支持的复制键值存储,那么Redis Cluster之类的方法可能会更好,尽管它的效率可能不如Chronicle Map。