Docker环境部署
seed 节点
docker run --name scylla -d scylladb/scylla
- 添加其他节点
-
docker run --name scylla-node2 -d scylladb/scylla --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' scylla)" docker run --name scylla-node3 -d scylladb/scylla --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' scylla)"
- 查看状态
docker exec -it scylla nodetool status
数据访问
- 数据操作,使用cqlsh工具(创建
KEYSPACE
录入数据)
创建表写入数据
docker exec -it scylla cqlsh
CREATE KEYSPACE demoapp WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 1};
CREATE TABLE demoapp.users (id int PRIMARY KEY ,name text);
INSERT INTO demoapp.users (id,name) VALUES (1,'zhangsan')
INSERT INTO demoapp.users (id,name) VALUES (2,'lishi')
INSERT INTO demoapp.users (id,name) VALUES (3,'wangwu')
select * from demoapp.users;
效果
高可用测试
修改副本数
ALTER KEYSPACE demoapp WITH replication = {'class': 'SimpleStrategy','replication_factor':3};
nodetool repair (修改副本数之后要执行repair操作,否则可能出现数据不一致)
ALTER KEYSPACE demoapp WITH replication = {'class': 'SimpleStrategy','replication_factor':1};
nodetool repair
副本为1的时候,当一致性级别是one的时候,down1个节点就不可用
副本数为2的时候,当一致性级别是one的时候3个节点可以down 1台。
副本数为3的时候,当一致性级别是one的时候3个节点可以down 2台。
调整一致性级别
CONSISTENCY QUORUM;
修改副本数
ALTER KEYSPACE demoapp WITH replication = {'class': 'SimpleStrategy','replication_factor':3};
nodetool repair
副本数为3的时候,当一致性级别是QUORUM的时候3个节点可以down 1台,down两个节点数据无法访问