[用户在YugabyteDB社区板上发布的问题]
我用的是YCQL和yugabyte的cql司机。另外,为了测试目的,我正在码头上运行ycql。最初,当我检查数据库的一致性级别时,它显示为仲裁。当我通过cql驱动程序连接并将一致性设置为1并创建会话时,我可以看到一致性是一致的。
在go的代码中,我目前正在像下面这样配置gocql
hosts := getHosts(config.Hosts)
cluster := gocql.NewCluster(hosts...)
cluster.Consistency = gocql.One
session, err := cluster.CreateSession()这就是我运行yugabytedb的方式:
docker run --name test-yugabyte -d -p2021:7000 -p2010:9000 -p2023:5433 -p2011:9042 -v ~/yb_data:/home/yugabyte/var yugabytedb/yugabyte:latest bin/yugabyted start --daemon=false然后执行到容器中,运行ycqlsh以获得db cli,然后运行consistency。
ycqlsh> consistency;
Current consistency level is QUORUM.我仍然认为一致性是法定人数。
这有什么不同?有人能给我指出正确的文档或解释内部是如何发生的吗?
发布于 2022-04-08 10:49:49
在Go会话中设置的一致性级别与在ycqlsh中设置的CL无关。每个会话都是一个单独的会话,可以有自己的CL。
尽管我们支持CQL语言,但我们是一个非常一致的数据库。有一些高级用例,如从读副本中读取,需要将CL设置为一个,否则默认情况下我们的写入和读取是仲裁的。
https://stackoverflow.com/questions/71795707
复制相似问题