集群机制

一致性哈希(数据一致性)

Token

Range

Partitoner

Gossip协议(流言,无中心获取领导者)

用于在环内节点之间传播状态信息

周期运行,每次在环中随机挑选一个对象节点,发起会话

每次会话传送三条消息

Phi增量故障检测算法

Snitch(机架感知)

复制策略

Cassandra的数据存储

  1) commit log: 保存对数据库的DML操作。记录的是操作动作,不是数据(redo)

    · 进行写操作时,首先要写commit log

    · 只有操作被写入 commit log 的数据,才算写入成功

    · 当发生掉电,实例崩溃等问题的时候,可以使用commit log 进行回复

  memtable:

    · 数据操作成功写入到 commit log后,就开始写入内存中的memtable

    · memtable中的数据达到一定阈值后,就开始写入硬盘中的 SSTable,然后内存中重新建立一个memtable接收下一批数据

    · 上述刷写过程是非阻塞的

    · 查询时先查询memtable

   SSTable:

    · 起源于Google的Bigtable

    · 墓碑: 删除数据并不是物理删除,实际上打删除标记,软删除

    · 压紧: 对用户透明,数据库自己控制。(墓碑打标记行删除 / 重建索引)

    · Bloomfilter(布隆过滤器):相比其他的数据结构,Bloom Filter再空间和时间方面都有巨大的优势,Bloom Filter存储空间和插入/查询时间都是常数。另外,Hash函数相互之间没有关系,方便由硬件并行实现,Bloom Filter不需要存储元素本身,再某些对保密要求非常严格的场合有优势。

  2) data:

  3) saved_caches:

集群配置

安装JAVA环境

部署Cassandra安装包

修改Cassandra配置文件,设置集群名

规划IP地址,设置作为seed的IP

决定snitch

Cassandra还可以支持多数据中心集群

修改其它可能的配置

启动Cassandra并加入集群

安装过程: 节点1

一、安装JAVA

二、设置JAVA_HOME环境变量

三、解压Cassandra安装包

四、创建/var/lib/cassandra和/var/log/cassandra目录并改变属主,如果目录已经存在先进行清理

五、修改配置文件 conf/cassandra.yaml

cluster_name: 'cluster01'

num_tokens: 256

seeds: "192.168.1.100"        --种子机

listen_address: 192.168.1.100

rpc_address: 192.168.1.100

rpc_port: 9160

rpc_keepalive: true

endpoint_snitch: SimpleSnitch  --假设所有服务器都在一个机架

六、启动Cassandra

安装过程:节点2

一、安装过程与节点1类似

二、修改配置文件略有不同

三、Seeds写节点1的IP

四、启动节点2

副本放置策略

简单策略

旧网络拓扑策略(机架感知设定)

网络拓扑策略 (用户自己设定)

  Snitch(指定机架结构)

    · Simple Snitch:通过IP地址判断

    · PropertyFileSnitch: 指定IP属于哪个数据中心,哪个机架

副本因子

  创建keyspace时候指定

  create keyspace excelsior with replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

  create keyspace "Excalibur" with replication = {'class':'NetworkTopologyStrategy','dc1':3,'dc2':2};

Cassandra 集群配置的更多相关文章

  1. 数据源管理 | 分布式NoSQL系统,Cassandra集群管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.Cassandra简介 1.基础描述 Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱 ...

  2. 基于docker创建Cassandra集群

    一.概述 简介 Cassandra是一个开源分布式NoSQL数据库系统. 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynam ...

  3. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  4. Redis 3.0 Cluster集群配置

    Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...

  5. MongoDB高可用集群配置的方案

    >>高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. ...

  6. MySQL Cluster 7.3.5 集群配置实例(入门篇)

    一.环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下: 节点分布情况: MGM:192.168.137. NDBD1:192.168.137 ...

  7. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  8. 关于ActiveMQ的几种集群配置

    ActiveMQ的几种集群配置. Queue consumer clusters 此集群让多个消费者同时消费一个队列,若某个消费者出问题无法消费信息,则未消费掉的消息将被发给其他正常的消费者,结构图如 ...

  9. solrCloud+tomcat+zookeeper集群配置

    solrcolud安装solrCloud+tomcat+zookeeper部署  转载请出自出处:http://eksliang.iteye.com/blog/2107002 http://eksli ...

随机推荐

  1. 剑指Offer总结——重建二叉树

    /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; ...

  2. XSS的简单过滤和绕过

    XSS的简单过滤和绕过 程序猿用一些函数将构成xss代码的一些关键字符给过滤了.但是,道高一尺魔高一丈,虽然过滤了,还是可以尝试进行过滤绕过,以达到XSS攻击的目的. 最简单的是输入<scrip ...

  3. tensorflow 2.0 技巧 | 自定义tf.keras.Model的坑

    自定义tf.keras.Model需要注意的点 model.save() subclass Model 是不能直接save的,save成.h5,但是能够save_weights,或者save_form ...

  4. 应用安全 - 社工 - By 大数据 - shodan - 汇总

    使用 | 命令 搜索语法 hostname: 搜索指定的主机或域名,例如 hostname:”google” port: 搜索指定的端口或服务,例如 port:”” country: 搜索指定的国家, ...

  5. cocos creator 3D | 拇指投篮 | 3D项目入门实战

    你的命中率是多少呢?文章底部试玩! 效果预览 配置环境: Cocos Creator 3D v1.0.1 玩法说明: 触摸屏幕,向上滑动投篮!注意篮板是会移动的哦!看看你的命中率是多少! 实现原理 为 ...

  6. redis主从+哨兵模式(借鉴)

    三台机器分布 192.168.189.129  //  master的角色 192.168.189.130  //  slave1的角色 192.168.189.131  //  salve2的角色 ...

  7. PTA(Basic Level)1061.判断题

    判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量.第二行给出 M ...

  8. [转帖]SUN/Oracle JDK还是OpenJDK?

    你安装的是 https://www.cnblogs.com/shoufeng/p/9719995.html 目录 1 如何查看你安装的JDK版本 1.1 要用到的命令行工具 1.2 查看JDK的版本 ...

  9. Springboot与springcloud

    1.什么是Spring Boot? 它简化了搭建Spring项目,自动配置Spring,简化maven配置,自带tomcat无需部署war包,创建独立的spring引用程序main方法运行: 2.Sp ...

  10. c++实现直接插入排序

    基本概念 直接插入排序是一种最简单的排序方法,排序过程为:先将第一个元素看作是只有一个元素的有序子表,然后从第二个元素开始,将待排序元素依次插入到前面有序的子表中,直到全部排序完毕.在整个过程中,前面 ...