cassandra知识备忘

1.数据分布在集群各节点,可以通过设置replicate来保存多个数据副本避免单点故障

2.通过点对点gossip协议同步各节点的位置信息和状态信息,每秒一次,每次与至多3个节点同步(似乎是这样的,不确定)。同步的信息包括以下:
heartbeat:心跳信息,由generation和version组成。generation每次系统启动都加1,用于区分重启前后的状态
ApplicationState:用于表示系统状态,存储系统的负载信息等
intState:维护节点自身数据的全局version,并封装HeartBeat和ApplicationState
每个节点都实现了IEndPointStateChangeSubscriber接口的,它负责处理接收到的消息,该接口包含onjoin、onChange、onAlive、onDead方法

3.可以用where条件来查询,但是仅限primary key的字段和有索引的字段,并且顺序要和primary key字段一样,例如primary key是((A,B),C,D),那么用的时候可以是where后面用到A、B也可以用A、B、C,但是不能是A、B、D

4.然后手动指定(conf/cassandra.yaml) initial_token值,启动后发现Token值并非读取这个配置。应该是头一次启动计算后写入到了System空间里了(大概这个就是system空间吧 /var/lib/cassandra/data/system/*)。那么删除数据,把配置文件修改一下(auto_bootstrap: false (Add this setting only
when initializing a clean node with no data.) )然后启动。

5.是不是单个seed意味着单点故障?
即便没有seed节点,集群也可以运行和重启,但是不能再往集群里增加节点。还是推荐在生产系统中配置多个种子节点。

6.一个节点宕掉了,其他节点会尝试和它联系。如果只是网络断了,节点在网络恢复后可以和其他节点重新建立联系,但是如果是节点因故障挂了,需要管理员去解决掉问题然后使之上线,可能还需要repair一下数据(hintedhandoff有时间限制,默认三小时,超过此时间前面的数据会不断的被覆盖掉。必须要手动repair)。我是这么理解的。

7.不支持范围查询

8.auto_bootstrap
(Default: true) This setting has been removed from default configuration. It causes new (non-seed) nodes migrate the right data to themselves automatically. When initializing a fresh cluster without data, add auto_bootstrap: false.

9.官网文档https://docs.datastax.com/en/cassandra/3.0/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值