我正在微服务架构中构建应用程序。所以我在不同的微服务上运行不同的商业模式。
微服务正在使用图形和文档数据库。
我需要做的是,我需要在更改对象时保留有关对象的所有审核日志。 有几种方法可以做到这一点,我想到了两个:
- 只要对象发生变化,就会将审核日志存储在每个数据库中。
- 不要将其本地化,而是将其设置到一个中央存储库,在那里我们可以看到整个应用程序的所有审计都在后面 场景应用程序由微服务提供,但在前面这是 只为用户和我们提供一个应用程序。弹性搜索会 用于长期储存的目的?或者我们有其他的 解决方案?
醇>
我必须遵循哪些最佳做法。我的目标到底是什么时候由谁改变了对象。
干杯!
答案 0 :(得分:1)
一般建议不要将ES用作权威数据存储。如果您希望审计数据的99.99%可靠性将其存储在其他位置,并在需要其搜索功能时在ES中编制索引。
根据我的经验,ES非常有弹性,但我记得,与众所周知的关系数据库或Cassandra / HDFS相比,它的存储空间并不那么精确,我不会在那里存储重要数据。
另外请记住ES索引不是很灵活,如果你想大幅度重新缩放你的集群或改变字段映射,你可能需要重新索引所有内容。较新版本的ES提供“Reindex API”,仍然是它的弱点。