Mongodb 如何使用NoSQL(Cassandra)实现客户端身份验证解决方案?
我目前正在考虑如何使用NoSQL解决方案为web应用程序实现身份验证。我在此遇到的问题是,在大多数NoSQL解决方案(例如Cassandra、MongoDB)中,可能都延迟了写入。例如,我们在节点A上写入,但不能保证写入同时出现在节点B上。这与NoSQL解决方案背后的方法是合乎逻辑的 现在有一个想法是,您不进行二次读取(因此所有内容都经过主控)。这可能适用于MongoDB(实际上有一个主节点),但不适用于Cassandra(所有节点都相等)。但是,我们的应用程序在世界各地的几个独立点运行,因此我们需要多主机功能 目前我还不知道Cassandra的解决方案,我可以更新数据并确保后续读取(对所有节点)都有更改。那么,如果身份验证请求(read)可以并行出现在多个节点上,那么如何在这些NoSQL解决方案的基础上构建身份验证呢Mongodb 如何使用NoSQL(Cassandra)实现客户端身份验证解决方案?,mongodb,cassandra,nosql,Mongodb,Cassandra,Nosql,我目前正在考虑如何使用NoSQL解决方案为web应用程序实现身份验证。我在此遇到的问题是,在大多数NoSQL解决方案(例如Cassandra、MongoDB)中,可能都延迟了写入。例如,我们在节点A上写入,但不能保证写入同时出现在节点B上。这与NoSQL解决方案背后的方法是合乎逻辑的 现在有一个想法是,您不进行二次读取(因此所有内容都经过主控)。这可能适用于MongoDB(实际上有一个主节点),但不适用于Cassandra(所有节点都相等)。但是,我们的应用程序在世界各地的几个独立点运行,因此我
谢谢你的帮助 关于Apache Cassandra:
- ANY:确保写入操作已写入至少1个节点,包括HintedHandoff收件人
- 第一:在响应客户机之前,确保已将写操作写入至少1个副本的提交日志和内存表
- 仲裁:在响应客户端之前,确保已将写操作写入N/2+1副本
- 本地仲裁:确保已将写操作写入本地数据中心内的/2+1节点(需要NetworkTopologyStrategy)
- 每个仲裁:确保写入已写入每个数据中心的/2+1节点(需要NetworkTopologyStrategy)
- 全部:在响应客户端之前,确保已将写操作写入所有N个副本。任何无响应的副本都将使操作失败
- 任何:不支持。你可能想要一个
- 一:将返回第一个副本返回的记录以进行响应。一致性检查始终在后台线程中进行,以修复使用ConsistenceLevel.ONE时的任何一致性问题。这意味着即使最初读取的值较旧,后续调用也将具有正确的数据。(这称为ReadRepair)
- 仲裁:将查询所有副本,并在至少报告了大多数副本(N/2+1)后返回具有最新时间戳的记录。同样,将在后台检查剩余的复制副本
- LOCAL_QUORUM:在本地数据中心内的大多数副本回复后,返回带有最新时间戳的记录
- EACH_QUORUM:在每个数据中心内的大多数副本回复后,返回带有最新时间戳的记录
- ALL:在所有副本回复后,将查询所有副本并返回带有最新时间戳的记录。任何无响应的副本都将使操作失败李>