【问题标题】:system_auth replication in CassandraCassandra 中的 system_auth 复制
【发布时间】:2017-02-24 19:18:03
【问题描述】:

我正在尝试在 Cassandra 上配置身份验证。似乎由于用于 system_auth 的复制策略,它无法将用户凭据复制到集群中的所有节点,所以我最终在一个节点上获得了不正确的凭据,并在另一个节点上获得了成功的连接。

This 是相关问题。那里的人说您必须确保凭据始终在所有节点上。

怎么做?那里提供的选项说您必须更改密钥空间以使复制因子等于集群中的节点数量,然后在每个节点上运行修复。如果您希望您的 cassandra 具有动态可扩展性,那么需要完成大量工作。如果我今天添加 1 个节点,另一天添加 1 个节点,更改密钥空间复制,然后继续手动重新启动节点,这将导致某种混乱。

谷歌搜索的时间实际上导致了稍微提到EverywhereStrategy,但我在它提到的文档中没有看到任何可用的地方。那么,如果您不能确定您的用户实际出现在节点上,那么人们如何配置 API 以使用 Cassandra 身份验证,那么您将其指定为联系点?

显然,谈论真正的规模时,您可以在不重新启动每个节点的情况下更改集群的大小。

【问题讨论】:

  • 为什么你认为你必须重启你的节点?
  • 修改和修复后仍然不让我登录。只有重新启动节点才能应用更改。

标签: spring authentication cassandra replication scalability


【解决方案1】:

当您在 Cassandra 中启用身份验证时,您已将 system_auth 密钥空间 replication_factor 增加到 N(节点总数)并运行完整修复,但您不需要重新启动节点添加新节点后。

如果修复需要更多时间,那么您可以优化修复,例如仅修复 system_auth 密钥空间

nodetool repair system_auth

(或)

nodetool repair -pr system_auth

根据 Cassandra,应定期进行全面维修。有关维修的更多详细信息,请参阅以下链接:

http://www.datastax.com/dev/blog/repair-in-cassandra

https://www.pythian.com/blog/effective-anti-entropy-repair-cassandra/

http://docs.datastax.com/en/archived/cassandra/2.2/cassandra/tools/toolsRepair.html

回答您的问题:

问题:如果您不能确定您的用户实际出现在节点上,那么人们如何配置 API 以使用 Cassandra 身份验证,那么您将其指定为联系点? p>

回答:我正在使用我的 Spring 项目中的 Cassandra 2.2 和 Astyanax thrift API,使用它们我能够有效地处理 Cassandra 身份验证。指定您使用的 Cassandra 版本以及连接 CQL 驱动程序或 Astyanax thrift API 的驱动程序?

问题:显然,谈到真正的规模,你可以在不重启每个节点的情况下改变集群的大小。

回答:是的,您可以在不重新启动节点的情况下扩展 Cassandra 集群,请查看 Cassandra 2.2 版本的 datastax 文档: http://docs.datastax.com/en/archived/cassandra/2.2/cassandra/operations/opsAddNodeToCluster.html

查看您正在使用的版本的 datastax 文档。

【讨论】:

  • 修复不让我连接到新节点,直到我真正重新启动它。 COSS 3.9 是我的发行版。考虑 api - 我尝试了基本的 cqlsh。重新调整集群对我来说不是问题,实际上能够通过用户凭据创建新的 API 服务器可访问的新联系点。暂时我使用“一致性所有”并在添加新节点时重新创建用户。
  • 使用一致性 all 将使协调节点在所有副本都响应后才响应。如果任何一个副本没有响应,操作将失败。所以这可能是没有连接到新节点的原因。尝试使用 QUORUM 级别一致性,要了解有关一致性级别的更多信息,请查看docs.datastax.com/en/archived/cassandra/2.0/cassandra/dml/…
  • 好点,谢谢。然而,这并不能解决问题,似乎更像是一个黑客:(
  • 添加新节点时,是否加入了集群?您可以使用 nodetool status 检查这一点,如果新节点没有加入集群,那么 cassandra.yaml 文件中的配置可能存在一些问题,您能否分享您的节点的种子和端点 snitch 配置
  • 好的,当你增加复制因子时,你需要复制复制因子中设置的数据,所以在增加复制因子后尝试nodetool rebuild。这里有一些帖子可能对您有所帮助stackoverflow.com/questions/17602125/…
猜你喜欢
  • 2021-06-28
  • 1970-01-01
  • 2017-06-15
  • 2014-11-11
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
相关资源
最近更新 更多