最佳参考:
https://www.cnblogs.com/cjsblog/p/12863749.html
教程:https://www.w3cschool.cn/cassandra/cassandra_introduction.html
Apache Cassandra 是一个大规模可扩展的分布式开源NoSQL数据库。
- Cassandra使用了gossip协议
Apache Cassandra 使用 Gossip 协议在多个关键方面来实现节点之间的通信和状态信息的传播。以下是一些主要的应用场景:1. 节点发现
新节点加入:当一个新节点加入集群时,它会通过 Gossip 协议与已有节点交换信息,以了解集群的状态、其他节点的信息和数据分布。
2. 节点状态监测
健康检查:Gossip 协议用于节点之间定期交换心跳信号,确保各个节点的在线状态。如果某个节点出现故障或失去连接,其他节点会及时得知并更新它们的视图。
3. 数据一致性
数据版本信息:在 Gossip 过程中,节点还会交换关于数据版本的信息。这有助于确定数据的一致性,特别是在存在网络分区或节点故障的情况下。
4. 节点负载均衡
负载信息共享:节点可以通过 Gossip 协议共享其负载情况,以便系统能够更好地进行负载均衡,优化请求的处理。
5. 配置和元数据传播
集群配置更新:如配置更改、数据模型变更等信息也通过 Gossip 协议在节点间传播,确保每个节点都能获得最新的集群配置。
总结
Gossip 协议是 Cassandra 的一项核心功能,提供了一种高效、可扩展的方式来管理和维护分布式集群中的节点信息,从而增强了集群的可靠性和动态性。
- Cassandra是分布式的,去中心化的。高可用性和高可伸缩性
- Cassandra中使用了gossip,但每个节点,并不是保存全量数据。而是通过分区等手段,分布式存储。
- 采用列式存储, sstableo数据结构。
- 用JAVA实现。
- Cassandra 是一个为高可用性和水平扩展而设计的 NoSQL 数据库。并不适用于大规模计算。不支持JOIN。
- Cassandra是云原生和微服务化场景中最好的NoSQL数据库。(有这么一种说法)