Cassandra system_auth在不更改复制系数的情况下进行复制,那么为什么要更改它呢?

Cassandra system_auth在不更改复制系数的情况下进行复制,那么为什么要更改它呢?,cassandra,Cassandra,我有一个PasswordAuthenticatorlogin,user=cassandra,带有system\u authRF=1和2个非种子节点。当我更改密码时,它传播到非种子节点,即使RF=1。那么为什么要改变射频呢(我问的原因是:我注意到如果在其他节点启动之前将其更改为3-->我无法登录:仲裁错误,因此这是一个引导问题) 如果不进行更改,可能会出现两个问题: 在多节点集群中,如果负责用户/角色数据的节点崩溃,您将无法登录 在多DC集群中,如果尝试使用“本地”数据中心与应用程序连接,则只能连

我有一个
PasswordAuthenticator
login,user=
cassandra
,带有
system\u auth
RF=1和2个非种子节点。当我更改密码时,它传播到非种子节点,即使RF=1。那么为什么要改变射频呢<代码>(我问的原因是:我注意到如果在其他节点启动之前将其更改为3-->我无法登录:仲裁错误,因此这是一个引导问题)


如果不进行更改,可能会出现两个问题:

  • 在多节点集群中,如果负责用户/角色数据的节点崩溃,您将无法登录
  • 在多DC集群中,如果尝试使用“本地”数据中心与应用程序连接,则只能连接到DC中包含用户/角色数据的节点。这是因为
    SimpleStrategy
    不支持DC。不更改它也将只在集群中存储一个复制副本,该复制副本将仅在单个DC中。在其他DC上的登录尝试将失败
  • 简言之,我建议:

    • 切勿使用
      SimpleStrategy
      。它对生产MDHA(多数据中心高可用性)没有用处,那么为什么要用它构建一个较低的环境呢
    • 将RF on
      system\u auth
      设置为节点数,但不超过3个
    • 创建一个额外的超级用户,并更改cassandra/cassandra用户的密码…不再使用它。默认情况下,cassandra/cassandra用户会触发cqlsh中的一些特殊内容,使其在
      QUORUM
      下运行。如果节点崩溃,您不希望出现额外的问题,这为您打开了大门

    下面是一个相关的答案,应该会有所帮助:

    如果不更改,可能会出现两个问题:

  • 在多节点集群中,如果负责用户/角色数据的节点崩溃,您将无法登录
  • 在多DC集群中,如果尝试使用“本地”数据中心与应用程序连接,则只能连接到DC中包含用户/角色数据的节点。这是因为
    SimpleStrategy
    不支持DC。不更改它也将只在集群中存储一个复制副本,该复制副本将仅在单个DC中。在其他DC上的登录尝试将失败
  • 简言之,我建议:

    • 切勿使用
      SimpleStrategy
      。它对生产MDHA(多数据中心高可用性)没有用处,那么为什么要用它构建一个较低的环境呢
    • 将RF on
      system\u auth
      设置为节点数,但不超过3个
    • 创建一个额外的超级用户,并更改cassandra/cassandra用户的密码…不再使用它。默认情况下,cassandra/cassandra用户会触发cqlsh中的一些特殊内容,使其在
      QUORUM
      下运行。如果节点崩溃,您不希望出现额外的问题,这为您打开了大门
    以下是一个相关的答案,应该会有所帮助:

    cassandra@cqlsh:system_auth> SELECT * FROM system_schema.keyspaces;
    
     keyspace_name      | durable_writes | replication
    --------------------+----------------+---------------------------------------------------------------------------------------
            system_auth |           True |   {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '1'}